Skip to content
Snippets Groups Projects
Commit 7a266135 authored by Duncan Holmes's avatar Duncan Holmes
Browse files

Replace TestDequesDifferentially.py

parent 12a880e0
No related branches found
No related tags found
No related merge requests found
...@@ -7,9 +7,105 @@ Your test should exercise the deques in a variety of situations, ...@@ -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. including situations where they have been modified on both sides.
Verify that the two implementations agree on your test cases. Verify that the two implementations agree on your test cases.
""" """
from collections import deque
from unittest import TestCase from unittest import TestCase
from linked_list_example import doubly_linked_node from linked_list_example import doubly_linked_node
from linked_list_example import LinkedDeque from linked_list_example import LinkedDeque
class TestDequesDifferentially(TestCase): 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() )
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment