def test_delete_middle_node(self): linked_list = LinkedList([1, 1, 2, 3, 4]) node = linked_list.find(2) linked_list.delete_middle_node(node) self.assertEqual("1 -> 1 -> 3 -> 4", linked_list.__repr__())
def test_kth_to_last_returns_none_if_value_does_not_exist(self): linked_list = LinkedList([1, 1, 2, 3, 4]) expected_node = None actual_node = linked_list.get_kth_to_last(10) self.assertEqual(expected_node, actual_node)
def test_print_kth_to_last(self): linked_list = LinkedList([1, 1, 2, 3, 4]) linked_list.print_kth_to_last(linked_list.head, 3)
def test_kth_to_last_returns_correct_value(self): linked_list = LinkedList([1, 1, 2, 3, 4]) expected_node = Node(3) actual_node = linked_list.get_kth_to_last(2) self.assertEqual(expected_node, actual_node)
def test_delete_empty_linked_list_raises_exception(self): linked_list = LinkedList() with self.assertRaises(Exception) as context: linked_list.delete_node(1) self.assertTrue("Linked List is empty!" in str(context.exception))
def test_remove_dups_no_buffer(self): linked_list = LinkedList([1, 1, 2, 3, 4]) linked_list.remove_duplicates_with_runner() linked_list_repr = linked_list.__repr__() expected_repr = "1 -> 2 -> 3 -> 4" self.assertEqual(expected_repr, linked_list_repr)
def test_remove_dups(self): linked_list = LinkedList([1, 2, 2, 4]) linked_list.remove_duplicates() linked_list_repr = linked_list.__repr__() expected_repr = "1 -> 2 -> 4" self.assertEqual(expected_repr, linked_list_repr)
def test_delete_last_node_changes_reference(self): linked_list = LinkedList([1, 2, 3, 4]) linked_list.delete_node(4) expected = LinkedList([1, 2, 3]) self.assertEqual(expected, linked_list)
def test_delete_last_node_returns_deleted_node(self): linked_list = LinkedList([1, 2, 3, 4]) deleted_node = linked_list.delete_node(4) self.assertEqual(deleted_node.data, 4)
def test_delete_head_node_changes_reference(self): linked_list = LinkedList([1, 2, 3, 4]) linked_list.delete_node(1) expected = LinkedList([2, 3, 4]) self.assertEqual(linked_list, expected)