def test_contains(self): '''Contains test''' dll = double_linked_list.DoubleLinkedList() for name in TestDoubleLinkedList.names: dll.push(name) self.assertEqual(dll.contains('Louise Belcher'), True) # end element self.assertEqual(dll.contains('Gene Belcher'), True) # middle element self.assertEqual(dll.contains('Bob Belcher'), True) # start element self.assertEqual(dll.contains('Bob'), False) # wrong element
def test_delete(self): '''Delete test''' dll = double_linked_list.DoubleLinkedList() for name in TestDoubleLinkedList.names: dll.push(name) dll.delete('Louise Belcher') # end element self.assertEqual(dll.last_elem(), 'Gene Belcher') dll.delete('Bob Belcher') # start element self.assertEqual(dll.first_elem(), 'Linda Belcher')
def test_unshift_shift(self): '''Unshift/shift tests''' dll = double_linked_list.DoubleLinkedList() for name in TestDoubleLinkedList.names: dll.unshift(name) self.assertEqual(dll.first_elem(), TestDoubleLinkedList.names[4]) dll.shift() self.assertEqual(dll.first_elem(), TestDoubleLinkedList.names[3]) dll.shift() self.assertEqual(dll.first_elem(), TestDoubleLinkedList.names[2]) dll.shift() self.assertEqual(dll.first_elem(), TestDoubleLinkedList.names[1]) dll.shift() self.assertEqual(dll.first_elem(), TestDoubleLinkedList.names[0]) dll.shift() self.assertRaises(Exception, dll.shift, dll) # empty list
def test_push_pop(self): '''Push/pop tests''' dll = double_linked_list.DoubleLinkedList() for name in TestDoubleLinkedList.names: dll.push(name) self.assertEqual(dll.last_elem(), TestDoubleLinkedList.names[4]) dll.pop() self.assertEqual(dll.last_elem(), TestDoubleLinkedList.names[3]) dll.pop() self.assertEqual(dll.last_elem(), TestDoubleLinkedList.names[2]) dll.pop() self.assertEqual(dll.last_elem(), TestDoubleLinkedList.names[1]) dll.pop() self.assertEqual(dll.last_elem(), TestDoubleLinkedList.names[0]) dll.pop() self.assertRaises(Exception, dll.pop, dll) # empty list
def test_first_last(self): '''First/last test''' dll = double_linked_list.DoubleLinkedList() dll.push('Bob Belcher') self.assertEqual(dll.first().elem, 'Bob Belcher') self.assertEqual(dll.first().prev__item, None) self.assertEqual(dll.first().next__item, None) self.assertEqual(dll.last().elem, 'Bob Belcher') self.assertEqual(dll.last().prev__item, None) self.assertEqual(dll.last().next__item, None) dll.push('Linda Belcher') self.assertEqual(dll.first().elem, 'Bob Belcher') self.assertEqual(dll.first().prev__item, None) self.assertEqual(dll.last().elem, 'Linda Belcher') self.assertEqual(dll.last().next__item, None)
def test_len(self): '''Len test''' dll = double_linked_list.DoubleLinkedList() self.assertEqual(dll.len(), 0) for name in TestDoubleLinkedList.names: dll.push(name) self.assertEqual(dll.len(), 5) for name in TestDoubleLinkedList.names: dll.push(name) self.assertEqual(dll.len(), 10) for i in range(10): dll.pop() self.assertEqual(dll.len(), 0) self.assertRaises(Exception, dll.pop, dll) # empty list self.assertEqual(dll.len(), 0)
def test_init(self): '''Init test''' dll = double_linked_list.DoubleLinkedList() self.assertIsNone(dll.head) self.assertIsNone(dll.tail) self.assertEqual(dll.length, 0)