class deleteFromMiddleTests(unittest.TestCase): def setUp(self): self.linked_list = SinglyLinkedList(SinglyLinkedNode(0)) for i in range(3): self.linked_list.append(SinglyLinkedNode(i+1)) def test_1(self): node = self.linked_list.head.child deleteFromMiddle(node) traversal = self.linked_list.traverse() self.assertEqual(len(traversal), 3) self.assertEqual(traversal, [0, 2, 3]) def test_2(self): node = self.linked_list.head.child.child deleteFromMiddle(node) traversal = self.linked_list.traverse() self.assertEqual(len(traversal), 3) self.assertEqual(traversal, [0, 1, 3]) def test_3(self): for _ in range(2): node = self.linked_list.head.child deleteFromMiddle(node) traversal = self.linked_list.traverse() self.assertEqual(len(traversal), 2) self.assertEqual(traversal, [0, 3]) def test_4(self): node = self.linked_list.head.child.child.child self.assertRaises(ValueError, deleteFromMiddle, node)
class deleteFromMiddleTests(unittest.TestCase): def setUp(self): self.linked_list = SinglyLinkedList(SinglyLinkedNode(0)) for i in range(3): self.linked_list.append(SinglyLinkedNode(i + 1)) def test_1(self): node = self.linked_list.head.child deleteFromMiddle(node) traversal = self.linked_list.traverse() self.assertEqual(len(traversal), 3) self.assertEqual(traversal, [0, 2, 3]) def test_2(self): node = self.linked_list.head.child.child deleteFromMiddle(node) traversal = self.linked_list.traverse() self.assertEqual(len(traversal), 3) self.assertEqual(traversal, [0, 1, 3]) def test_3(self): for _ in range(2): node = self.linked_list.head.child deleteFromMiddle(node) traversal = self.linked_list.traverse() self.assertEqual(len(traversal), 2) self.assertEqual(traversal, [0, 3]) def test_4(self): node = self.linked_list.head.child.child.child self.assertRaises(ValueError, deleteFromMiddle, node)
def test_2(self): linked_list = SinglyLinkedList() values = [10, 9, 8, 7, 6, 5, 4, 3, 2, 1] for value in values: linked_list.append(SinglyLinkedNode(value)) partition(linked_list, 10) traversal = linked_list.traverse() self.assertEqual(traversal, [9, 8, 7, 6, 5, 4, 3, 2, 1, 10])
def test_problem(self): linked_list = SinglyLinkedList(SinglyLinkedNode(-1)) for i in range(100): linked_list.append(SinglyLinkedNode(i)) linked_list.append(SinglyLinkedNode(i)) for i in range(100): linked_list.append(SinglyLinkedNode(0)) deduplicate(linked_list) self.assertEqual(linked_list.traverse(), [-1] + range(100))
def test_1(self): linked_list = SinglyLinkedList() values = [3, 5, 8, 5, 10, 2, 1] for value in values: linked_list.append(SinglyLinkedNode(value)) partition(linked_list, 5) traversal = linked_list.traverse() self.assertEqual(set(traversal[:3]), set([1, 2, 3])) self.assertEqual(set(traversal[3:]), set([5, 8, 10])) self.assertEqual(len(traversal), 7)
def test_1(self): linked_list = SinglyLinkedList() values = [3, 5, 8, 5, 10, 2, 1] for value in values: linked_list.append(SinglyLinkedNode(value)) partition(linked_list, 5) traversal = linked_list.traverse() self.assertEqual(set(traversal[:3]), set([1,2,3])) self.assertEqual(set(traversal[3:]), set([5, 8, 10])) self.assertEqual(len(traversal), 7)