def test_delete_in_tail(self): list1 = LinkedList().create_list([12, 10, 14, 12, 55, 10, 5]) list1.delete(5) self.assertEqual(list1.get_all(), [12, 10, 14, 12, 55, 10]) self.assertEqual(list1.get_head(), list1.find_all(12)[0]) self.assertEqual(list1.get_tail(), list1.find_all(10)[1])
def test_delete_multi_from_1el(self): list1 = LinkedList().create_list([5]) list1.delete(5, True) self.assertEqual(list1.get_all(), []) self.assertEqual(list1.len(), 0) self.assertEqual(list1.get_head(), None) self.assertEqual(list1.get_tail(), None)
def test_delete_multi_in_tail(self): list1 = LinkedList().create_list([12, 43, 14, 12, 5, 5]) list1.delete(5, True) self.assertEqual(list1.get_all(), [12, 43, 14, 12]) self.assertEqual(list1.len(), 4) self.assertEqual(list1.get_head().value, 12) self.assertEqual(list1.get_tail().value, 12)
def test_delete_multi_in_head_and_body(self): list1 = LinkedList().create_list([12, 43, 14, 12, 5, 5]) list1.delete(12, True) self.assertEqual(list1.get_all(), [43, 14, 5, 5]) self.assertEqual(list1.len(), 4) self.assertEqual(list1.get_head().value, 43) self.assertEqual(list1.get_tail().value, 5)
def test_delete_in_head(self): list1 = LinkedList().create_list([55, 12, 43, 10, 14, 12, 55, 10, 5]) list1.delete(55) self.assertEqual(list1.get_all(), [12, 43, 10, 14, 12, 55, 10, 5]) self.assertEqual(list1.len(), 8) self.assertEqual(list1.get_head(), list1.find(12)) self.assertEqual(list1.get_tail(), list1.find(5))
def test_delet_from_list_with_one_node(self): s_list_example = LinkedList() s_list_example.add_in_tail(Node(2)) s_list_example.delete(2, all=True) self.assertEqual(s_list_example.len(), 0) self.assertEqual(s_list_example.head, None) self.assertEqual(s_list_example.tail, None)
def test_delete_from_list_with_all_equal_nodes(self): s_list_example = LinkedList() for i in range(20): s_list_example.add_in_tail(Node(2)) s_list_example.delete(2, all=True) self.assertEqual(s_list_example.len(), 0) self.assertEqual(s_list_example.head, None) self.assertEqual(s_list_example.tail, None)
def test_delete_from_1el(self): list4 = LinkedList() n1 = Node(55) list4.add_in_tail(n1) list4.delete(55) self.assertEqual(list4.get_all(), []) self.assertEqual(list4.get_head(), None) self.assertEqual(list4.get_tail(), None)
def test_delete_from_short_list(self): s_list_example = LinkedList() s_list_example.add_in_tail(Node(5)) s_list_example.add_in_tail(Node(1)) s_list_example.add_in_tail(Node(6)) s_list_example.add_in_tail(Node(8)) s_list_example.add_in_tail(Node(11)) s_list_example.add_in_tail(Node(77)) s_list_example.delete(5) self.assertEqual(s_list_example.head.value, 1)
def test_delete_multi_wrong(self): list1 = LinkedList().create_list([12, 10, 14, 12, 55, 10]) list1.delete(77, True) self.assertEqual(list1.get_all(), [12, 10, 14, 12, 55, 10]) self.assertEqual(list1.get_head(), list1.find_all(12)[0]) self.assertEqual(list1.get_tail(), list1.find_all(10)[1]) list1.delete(None, True) self.assertEqual(list1.get_all(), [12, 10, 14, 12, 55, 10]) self.assertEqual(list1.len(), 6) self.assertEqual(list1.get_head(), list1.find_all(12)[0]) self.assertEqual(list1.get_tail(), list1.find_all(10)[1])
def test_delete_multi_from_empty(self): list1 = LinkedList() list1.delete(5, True) self.assertEqual(list1.get_all(), []) self.assertEqual(list1.len(), 0) self.assertEqual(list1.get_head(), None) self.assertEqual(list1.get_tail(), None) list1.delete(None, True) self.assertEqual(list1.get_all(), []) self.assertEqual(list1.len(), 0) self.assertEqual(list1.get_head(), None) self.assertEqual(list1.get_tail(), None)
class TestStringMethods(unittest.TestCase): def setUp(self): # Set up Nodes e1 = Node(1) e2 = Node(2) e3 = Node(3) # Start setting up a LinkedList self.ll = LinkedList(e1) self.ll.append(e2) self.ll.append(e3) def test_get_linkedlist_value(self): """ Test linkedlist value between 1 and 3, should return value from 1 to 3 """ self.assertEqual(self.ll.head.value, 1) self.assertEqual(self.ll.head.next.value, 2) self.assertEqual(self.ll.head.next.next.value, 3) def test_node_not_in_list(self): self.assertEqual(self.ll.head.next.next.next, None) def test_get_position_value(self): """ get_position will return the element at a certain position. """ self.assertEqual(self.ll.get_position(1).value, 1) self.assertEqual(self.ll.get_position(2).value, 2) self.assertEqual(self.ll.get_position(3).value, 3) def test_insert_position(self): """ insert function will add an element to a particular spot in the list. Assume the first position is "1". Inserting at position 3 means between the 2nd and 3rd elements. """ e4 = Node(4) self.ll.insert(e4, 3) self.assertEqual(self.ll.get_position(3).value, 4) def test_delete_value(self): """ delete will delete the first element with that particular value. """ self.ll.delete(1) self.assertEqual(self.ll.get_position(1).value, 2) self.assertEqual(self.ll.get_position(2).value, 3)
def test_delete(self): print('Test: delete on an empty list') linked_list = LinkedList(None) linked_list.delete('a') assert_equal(linked_list.get_all_data(), []) print('Test: delete a None') head = Node(10) linked_list = LinkedList(head) linked_list.delete(None) assert_equal(linked_list.get_all_data(), [10]) print('Test: delete general case with matches') head = Node(10) linked_list = LinkedList(head) linked_list.insert_to_front('a') linked_list.insert_to_front('bc') linked_list.delete('a') assert_equal(linked_list.get_all_data(), ['bc', 10]) print('Test: delete general case with no matches') linked_list.delete('aa') assert_equal(linked_list.get_all_data(), ['bc', 10]) print('Success: test_delete\n')