def test_delete(self):
        dll = DoublyLinkedList(['A', 'B', 'C'])
        dll.delete('A')
        assert dll.head.data == 'B'  # new head
        assert dll.tail.data == 'C'  # unchanged
        assert dll.head.previous == None
        assert dll.tail.next == None
        assert dll.head.next is dll.tail
        assert dll.head is dll.tail.previous
        assert dll.size == 2

        dll.delete('C')
        assert dll.head.data == 'B'  # unchanged
        assert dll.tail.data == 'B'  # new tail
        assert dll.head.next == None
        assert dll.tail.next == None
        assert dll.head.previous == None
        assert dll.tail.previous == None
        assert dll.size == 1

        dll.delete('B')
        assert dll.head is None  # new head
        assert dll.tail is None  # new head
        assert dll.size == 0
        
        with self.assertRaises(ValueError):
            dll.delete('X')  # item not in list
示例#2
0
    def test_length(self):
        ll = DoublyLinkedList()
        assert ll.length() == 0
        # append and prepend operations increase length
        ll.append('B')
        assert ll.length() == 1
        ll.prepend('A')
        assert ll.length() == 2
        ll.append('C')
        assert ll.length() == 3
        # delete operations decrease length
        # assert(ll) == DoublyLinkedList(['A', 'B', 'C'])

        assert(ll.head.data) == 'A'
        assert(ll.head.prev) == None
        assert(ll.head.next.prev.data) == 'A'
        assert(ll.tail.data) == 'C'
        assert(ll.tail.prev.data) == 'B'
        assert(ll.tail.next) == None


        ll.delete('B')
        assert ll.length() == 2
        ll.delete('C')
        assert ll.length() == 1
        ll.delete('A')
        assert ll.length() == 0
示例#3
0
 def test_delete(self):
     ll = DoublyLinkedList(['A', 'B', 'C'])
     ll.delete('A')
     assert ll.head.data == 'B'  # new head
     assert ll.tail.data == 'C'  # unchanged
     assert ll.size == 2
     ll.delete('C')
     assert ll.head.data == 'B'  # unchanged
     assert ll.tail.data == 'B'  # new tail
     assert ll.size == 1
     ll.delete('B')
     assert ll.head is None  # new head
     assert ll.tail is None  # new head
     assert ll.size == 0
     with self.assertRaises(ValueError):
         ll.delete('X')  # item not in list
 def test_size(self):
     dll = DoublyLinkedList()
     assert dll.size == 0
     # append and prepend operations increment size
     dll.append('B')
     assert dll.size == 1
     dll.prepend('A')
     assert dll.size == 2
     dll.append('C')
     assert dll.size == 3
     # delete operations decrement size
     dll.delete('B')
     assert dll.size == 2
     dll.delete('C')
     assert dll.size == 1
     dll.delete('A')
     assert dll.size == 0
 def test_length(self):
     dll = DoublyLinkedList()
     assert dll.length() == 0
     # append and prepend operations increase length
     dll.append('B')
     assert dll.length() == 1
     dll.prepend('A')
     assert dll.length() == 2
     dll.append('C')
     assert dll.length() == 3
     # delete operations decrease length
     dll.delete('B')
     assert dll.length() == 2
     dll.delete('C')
     assert dll.length() == 1
     dll.delete('A')
     assert dll.length() == 0