From 7a266135111c9cf43523508d41714540fccbafba Mon Sep 17 00:00:00 2001 From: dholmes4 <dholmes4@huskers.unl.edu> Date: Thu, 27 Mar 2025 16:34:10 -0500 Subject: [PATCH] Replace TestDequesDifferentially.py --- .../TestDequesDifferentially.py | 96 +++++++++++++++++++ 1 file changed, 96 insertions(+) diff --git a/lab - linked list lab/TestDequesDifferentially.py b/lab - linked list lab/TestDequesDifferentially.py index 62a201d..c285b98 100644 --- a/lab - linked list lab/TestDequesDifferentially.py +++ b/lab - linked list lab/TestDequesDifferentially.py @@ -7,9 +7,105 @@ Your test should exercise the deques in a variety of situations, including situations where they have been modified on both sides. Verify that the two implementations agree on your test cases. """ +from collections import deque from unittest import TestCase from linked_list_example import doubly_linked_node from linked_list_example import LinkedDeque class TestDequesDifferentially(TestCase): + def test_is_empty_true(self): + linked_deque = LinkedDeque() + + self.assertEqual( linked_deque.is_empty(), True) + + def test_is_empty_false(self): + linked_deque = LinkedDeque() + linked_deque.add_back(1) + + self.assertEqual( linked_deque.is_empty(), False) + + def test_add_3_elements_front_only(self): + linked_deque = LinkedDeque() + linked_deque.add_front(1) + linked_deque.add_front(2) + linked_deque.add_front(3) + + """ + none + 1 + 2 1 + 3 2 1 + """ + + self.assertEqual( linked_deque.remove_front(), 3) + self.assertEqual( linked_deque.remove_front(), 2) + self.assertEqual( linked_deque.remove_front(), 1) + + def test_add_3_elements_back_only(self): + linked_deque = LinkedDeque() + linked_deque.add_back(1) + linked_deque.add_back(2) + linked_deque.add_back(3) + """ + none + 1 + 1 2 + 1 2 3 + """ + + self.assertEqual( linked_deque.remove_back(), 3) + self.assertEqual( linked_deque.remove_back(), 2) + self.assertEqual( linked_deque.remove_back(), 1) + + def test_add_elements_like_ping_pong(self): + linked_deque = LinkedDeque() + linked_deque.add_front("f1") + linked_deque.add_back("b1") + linked_deque.add_front("f2") + linked_deque.add_back("b2") + linked_deque.add_front("f3") + linked_deque.add_back("b3") + + """ + none + f1 + f1 b1 + f2 f1 b1 + f2 f1 b1 b2 + f3 f2 b1 b2 + f3 f2 b1 b2 b3 + """ + + self.assertEqual( linked_deque.remove_front(), "f3") + self.assertEqual( linked_deque.remove_back(), "b3") + self.assertEqual( linked_deque.remove_front(), "f2") + self.assertEqual( linked_deque.remove_back(), "b2") + self.assertEqual( linked_deque.remove_front(), "f1") + self.assertEqual( linked_deque.remove_back(), "b1") + + def test_compare_array_ADT_and_linked_ADT(self): + array_deque = deque() + linked_deque = LinkedDeque() + + array_deque.append("b1") + array_deque.appendleft("f1") + array_deque.append("b2") + array_deque.appendleft("f2") + array_deque.append("b3") + array_deque.appendleft("f3") + + linked_deque.add_front("f1") + linked_deque.add_back("b1") + linked_deque.add_front("f2") + linked_deque.add_back("b2") + linked_deque.add_front("f3") + linked_deque.add_back("b3") + + self.assertEqual( array_deque.popleft(), linked_deque.remove_front() ) + self.assertEqual( array_deque.pop(), linked_deque.remove_back() ) + self.assertEqual( array_deque.popleft(), linked_deque.remove_front() ) + self.assertEqual( array_deque.pop(), linked_deque.remove_back() ) + self.assertEqual( array_deque.popleft(), linked_deque.remove_front() ) + self.assertEqual( array_deque.pop(), linked_deque.remove_back() ) + -- GitLab