def test_add(self): a = 12 sl = SingleLinkedList() sl.add(a) self.assertEqual(1, len(sl)) sl.add(a) self.assertEqual(2, len(sl))
def test_delete_item(self): sl = SingleLinkedList() sl.add(1) sl.add(2) sl.add(3) self.assertEqual(3, len(sl)) self.assertEqual(1, sl._root.value) self.assertRaises(Exception, lambda x : sl.delete_item(4)) sl.delete_item() self.assertEqual(2, len(sl)) self.assertEqual(2, sl._root.value) sl.add(4) sl.add(5) sl.add(6) sl.delete_item(len(sl) - 1) self.assertEqual("2, 3, 4, 5", sl.__str__()) sl.delete_item(1) self.assertEqual("2, 4, 5", sl.__str__()) sl.delete_item() self.assertEqual("4, 5", sl.__str__())
def test_delete_item(self): sl = SingleLinkedList() sl.add(1) sl.add(2) sl.add(3) self.assertEqual(3, len(sl)) self.assertEqual(1, sl._root.value) self.assertRaises(Exception, lambda x: sl.delete_item(4)) sl.delete_item() self.assertEqual(2, len(sl)) self.assertEqual(2, sl._root.value) sl.add(4) sl.add(5) sl.add(6) sl.delete_item(len(sl) - 1) self.assertEqual("2, 3, 4, 5", sl.__str__()) sl.delete_item(1) self.assertEqual("2, 4, 5", sl.__str__()) sl.delete_item() self.assertEqual("4, 5", sl.__str__())
def test_search(self): sl = SingleLinkedList() sl.add(2) sl.add(1) sl.add(3) self.assertEqual(3, len(sl)) self.assertEqual(True, sl.search(2)) self.assertEqual(True, sl.search(3)) self.assertEqual(True, sl.search(1)) self.assertEqual(False, sl.search("a")) self.assertEqual(False, sl.search(4)) self.assertEqual(False, sl.search(12))
def test_delete(self): sl = SingleLinkedList() sl.add(2) sl.add(1) sl.add(3) self.assertEqual(3, len(sl)) self.assertEqual(2, sl._root.value) self.assertRaises(Exception, lambda x: sl.delete(4)) sl.delete(1) self.assertEqual("2, 3", sl.__str__()) sl.delete(2) self.assertEqual("3", sl.__str__()) sl.delete(3) self.assertEqual("Empty List", sl.__str__()) self.assertEqual(0, len(sl))
def test_detect_loop(self): sl = SingleLinkedList() sl.add(2) sl.add(1) sl.add(3) sl.add(2) sl.add(3) sl.add(1) sl.add(2) self.assertEqual(7, len(sl)) self.assertEqual(False, sl.detect_loop()) sl._root.nexti.nexti.nexti.nexti = sl._root self.assertEqual(True, sl.detect_loop())
def test_remove_duplicates_light(self): sl = SingleLinkedList() sl.add(2) sl.add(1) sl.add(3) sl.add(2) sl.add(3) sl.add(1) sl.add(2) self.assertEqual(7, len(sl)) sl.remove_duplicates_light() self.assertEqual(3, len(sl)) self.assertEqual("2, 1, 3", sl.__str__())
def test_get(self): sl = SingleLinkedList() sl.add(2) sl.add(1) sl.add(3) sl.add(4) sl.add(5) sl.add(6) self.assertEqual(6, len(sl)) self.assertEqual(2, sl.get(0)) self.assertEqual(1, sl.get(1)) self.assertEqual(3, sl.get(2)) self.assertEqual(4, sl.get(3)) self.assertEqual(5, sl.get(4)) self.assertEqual(6, sl.get(5)) self.assertRaises(Exception, lambda x: sl.get(14))