def test_is_empty(self): l = OrderedList() self.assertTrue(l.is_empty()) l.add('apple') self.assertFalse(l.is_empty()) l.remove('apple') self.assertTrue(l.is_empty())
def test_remove(self): # Build a list, check that it is as expected l = OrderedList() l.add('apple') l.add('banana') l.add('coconut') self.assertEqual(l.size, 3) self.assertEqual(l.first.item, 'apple') self.assertEqual(l.last.item, 'coconut') # Case: remove from front of list self.assertEqual(l.first.item, 'apple') l.remove('apple') self.assertEqual(l.first.item, 'banana') self.assertEqual(l.size, 2) # Case: remove from end of list l.add('durian') self.assertEqual(l.size, 3) self.assertEqual(l.last.item, 'durian') l.remove('durian') self.assertEqual(l.size, 2) self.assertEqual(l.last.item, 'coconut') self.assertEqual(l.first.item, 'banana') # Case: remove from middle of list l.add('elderberry') self.assertEqual(l.size, 3) self.assertEqual(l.last.item, 'elderberry') l.remove('coconut') self.assertEqual(l.size, 2) self.assertEqual(l.first.item, 'banana') self.assertEqual(l.last.item, 'elderberry') l.remove('banana') self.assertEqual(l.size, 1) self.assertEqual(l.first.item, 'elderberry') self.assertEqual(l.last.item, 'elderberry') l.remove('elderberry') self.assertEqual(l.size, 0) self.assertEqual(l.first, None) self.assertEqual(l.last, None) l.remove('pear') self.assertEqual(l.size, 0) self.assertEqual(l.first, None) self.assertEqual(l.last, None)