Exemplo n.º 1
0
    def test_insert(self):
        """
        Tests the insert(index, data) method
        """
        dll = DoublyLinkedList()

        # test out of bounds
        self.assertIsNone(dll.insert(-1, 'data'))
        self.assertIsNone(dll.insert(1, 'data'))

        # test inserting at index zero in open list (should use unshift(data))
        dll.insert(0, 'node zero')
        self.assertEqual(dll.length, 1)
        self.assertEqual(dll.head.data, 'node zero')

        dll.clear()
        dll.push(0)  # index 0
        dll.push(1)  # index 1
        dll.push(2)  # index 2

        # insert at index 1
        expected_list = [0, 'insert one', 1, 2]
        self.assertIsInstance(dll.insert(1, 'insert one'), DoublyLinkedList)
        self.assertEqual(dll.length, 4)
        self.assertEqual(dll.to_list(), expected_list)

        # insert at tail, index 4
        expected_list = [0, 'insert one', 1, 2, 'insert tail']
        self.assertIsInstance(dll.insert(4, 'insert tail'), DoublyLinkedList)
        self.assertEqual(dll.length, 5)
        self.assertEqual(dll.to_list(), expected_list)
Exemplo n.º 2
0
 def test_clear(self):
     """
     Tests the clear() method
     """
     dll = DoublyLinkedList()
     dll.push('node one')
     dll.push('node two')
     dll.push('node three')
     self.assertEqual(dll.length, 3)
     self.assertIsInstance(dll.clear(), DoublyLinkedList)
     self.assertEqual(dll.length, 0)
     self.assertIsNone(dll.head)
     self.assertIsNone(dll.tail)