def test_first_item(self): test_list = DoublyLinkedList() test_list.insert_front(5) test_list.insert_front(9) pop = test_list.pop_front() self.assertEqual(9, pop, "first item did not insert correctly")
def test_pop_from_front(self): test_list = DoublyLinkedList() test_list.insert_front(5) test_list.insert_front(7) test_list.insert_front(9) front_pop = test_list.pop_front() node = test_list.pop_front() self.assertEqual( 7, node._node_value, "First item isn't the second item before pop from front")
def test_pop_back(self): #Arrange double_linked = DoublyLinkedList() double_linked.insert_front(1) double_linked.insert_front(2) #Act double_linked.pop_back() #Assert self.assertEqual(None, double_linked.first_node.next_node, "pop_back did not return correct node value")
def test_insert_front(self): #Arrange double_linked = DoublyLinkedList() #Act double_linked.insert_front(1) double_linked.insert_front(2) double_linked.insert_front(3) #Assert self.assertEqual(3, double_linked.first_node.value, "The value returned is not correct") self.assertEqual(None, double_linked.first_node.prev_node, "The value returned is not correct")
def test_pop_front(self): #Arrange double_linked = DoublyLinkedList() double_linked.insert_front(1) double_linked.insert_front(2) double_linked.insert_front(3) #Act double_linked.pop_front() #Assert self.assertEqual(2, double_linked.first_node.value, "pop_front did not return the correct node value") self.assertEqual(None, double_linked.first_node.prev_node, "pop_front did not return the correct node value")
class TestDoublyLinkedList(unittest.TestCase): def setUp(self): self.items = DoublyLinkedList() # test for empty linked list def test_empty_list(self): self.assertEqual(self.items.head, None) self.assertEqual(self.items.tail, None) # Tests forbidden operations like removal in a empty linked list def test_forbidden_operations_on_empty_linked_list(self): self.assertEqual(self.items.size, 0) with self.assertRaises(RuntimeError): self.items.remove_back() with self.assertRaises(RuntimeError): self.items.remove_front() def test_delete_nonexistent_item(self): self.items.insert_back('A') self.items.insert_front('B') with self.assertRaises(RuntimeError): self.items.remove('Z') def test_insert_back(self): self.items.insert_back('Z') self.assertEqual(self.items.size, 1) self.assertEqual(self.items.remove_back(), 'Z') self.items.insert_back('Y') self.items.insert_back('T') self.items.insert_back('E') self.assertEqual(self.items.remove_front(), 'Y') def test_insert_front(self): self.items.insert_front('A') self.assertEqual(self.items.size, 1) self.assertEqual(self.items.remove_front(), 'A') self.items.insert_front('B') self.items.insert_front('C') self.items.insert_front('D') self.assertEqual(self.items.remove_back(), "B") self.assertEqual(self.items.remove_front(), "D") def test_remove(self): with self.assertRaises(RuntimeError): self.items.remove('T') self.items.insert_front('T') self.items.insert_back('R') self.items.insert_after('R', 'Y') self.items.remove('R') self.assertEqual(self.items.size, 2) self.assertEqual(self.items.remove_back(), 'Y') self.assertEqual(self.items.size, 1) self.items.remove_front() self.assertEqual(self.items.size, 0) with self.assertRaises(RuntimeError): self.items.remove_front() # when only one node is there def test_single_node_case(self): self.items.insert_front(1) self.items.remove_front() self.assertEqual(self.items.head, self.items.tail)
from data_structures.doubly_linked_list import DoublyLinkedList # creating a doubly linked list animals = DoublyLinkedList() print('Adding a few elements on the front...') animals.insert_front('Cow') animals.insert_front('Tiger') animals.display() print('\nAdding a few elements on the back...') animals.insert_back('Lion') animals.insert_back('Wolf') animals.display() print('\nAdding an item after Lion') animals.insert_after('Lion', 'Lioness') animals.display() print('\nRemoving a few items from beginning..') animals.remove_front() animals.remove_front() animals.display() print('\nRemoving Lioness from the list') animals.remove('Lioness') animals.display() print('\nRemoving a few items from the back') animals.remove_back() animals.remove_back()