class TestDLL(unittest.TestCase): def setUp(self): self.dll = DoublyLinkedList() def test_get_next(self): self.dll.append(5) self.dll.append(1) self.dll.append(2) self.dll.append(3) self.assertEqual(self.dll.index(1).get_next().value, 2) def test_get_prev(self): self.dll.append(5) self.dll.append(1) self.dll.append(2) self.dll.append(3) self.assertEqual(self.dll.index(2).get_prev().value, 1) def test_print_reverse(self): self.dll.append(5) self.dll.append(1) self.dll.append(2) self.dll.append(3) self.assertEqual(self.dll.print_reverse(), "3->2->1->5") def test_print(self): self.dll.append(5) self.dll.append(1) self.dll.append(2) self.dll.append(3) self.assertEqual(self.dll.pprint(), "5->1->2->3") def test_add_at_index(self): self.dll.append(5) self.dll.append(1) self.dll.append(2) self.dll.append(3) self.assertEqual(self.dll.add_at_index(2, 4).get_prev().value, 1) def test_reduce_to_unique(self): self.dll.append(5) self.dll.append(1) self.dll.append(2) self.dll.append(2) self.assertEqual(self.dll.reduce_to_unique(), "5->1->2")
def test_add_delete_get(self): dl = DoublyLinkedList() dl.add_at_index(0, 1) eq_(dl.get(0), 1) eq_(dl.get(1), -1) dl.add_at_index(1, 10) eq_(dl.get(1), 10) dl.add_at_index(1, 100) eq_(dl.get(0), 1) eq_(dl.get(1), 100) eq_(dl.get(2), 10) dl.delete_at_index(1) eq_(dl.get(0), 1) eq_(dl.get(1), 10) dl.delete_at_index(0) eq_(dl.get(0), 10) dl.add_at_index(0, 20) dl.delete_at_index(1) eq_(dl.get(0), 20) dl.delete_at_index(0) eq_(dl.get(0), -1)