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
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
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