def test_walk(self): linked_list = DoublyLinkedList() linked_list.add(2) linked_list.add(4) linked_list.add(25) linked_list.add(20) linked_list.add(12) self.assertEqual(linked_list.walk(), [2, 4, 25, 20, 12])
def test_remove_item_not_in_list(self): linked_list = DoublyLinkedList() linked_list.add(2) linked_list.add(4) linked_list.add(25) linked_list.add(20) linked_list.add(12) self.assertEqual(linked_list.remove(0), False) self.assertEqual(linked_list.walk(), [2, 4, 25, 20, 12])
def test_remove_from_middle(self): linked_list = DoublyLinkedList() linked_list.add(2) linked_list.add(4) linked_list.add(25) linked_list.add(20) linked_list.add(12) self.assertEqual(linked_list.remove(25), True) self.assertEqual(linked_list.head.next.next.previous.value, 4) self.assertEqual(linked_list.walk(), [2, 4, 20, 12])
def test_remove_from_tail(self): linked_list = DoublyLinkedList() linked_list.add(2) linked_list.add(4) linked_list.add(25) linked_list.add(20) linked_list.add(12) self.assertEqual(linked_list.remove(12), True) self.assertEqual(linked_list.tail.next, None) self.assertEqual(linked_list.walk(), [2, 4, 25, 20])
def test_remove_from_head(self): linked_list = DoublyLinkedList() linked_list.add(2) linked_list.add(4) linked_list.add(25) linked_list.add(20) linked_list.add(12) self.assertEqual(linked_list.remove(2), True) self.assertEqual(linked_list.head.previous, None) self.assertEqual(linked_list.walk(), [4, 25, 20, 12])
def test_walk_list_empty(self): linked_list = DoublyLinkedList() self.assertEqual(linked_list.walk(), [])
from doubly_linked_list.doubly_linked_list import DoublyLinkedList linked_list = DoublyLinkedList() linked_list.add(2) linked_list.add(4) linked_list.add(25) linked_list.add(20) linked_list.add(12) print(linked_list.walk()) linked_list.remove(20) print(linked_list.walk()) print(linked_list.head.next.value, linked_list.tail.previous.value)