# test_LList2.py # unittest example import sys import unittest sys.path.insert(0, '..') from LList2 import * class LListTest(unittest.TestCase): def testConstructorEmpty(self): list0 = LList() self.assertEqual(list0.head, None) self.assertEqual(list0.tail, None) self.assertEqual(list0.size, 0) self.assertEqual(len(list0), 0) def testConstructorOne(self): list1 = LList([11]) self.assertEqual(list1.head, list1.tail) self.assertEqual(list1.head.item, 11) self.assertEqual(list1.head.link, None) self.assertEqual(len(list1), list1.size) self.assertEqual(list1.size, 1) def testConstructorTwo(self): list1 = LList([11, 22]) self.assertNotEqual(list1.head, list1.tail) self.assertEqual(list1.head.item, 11) self.assertEqual(list1.tail.item, 22) self.assertEqual(list1.head.link, list1.tail) self.assertEqual(list1.size, 2) self.assertEqual(len(list1), 2) def testConstructorThree(self): list1 = LList([11, 22, 33]) self.assertNotEqual(list1.head, list1.tail) self.assertEqual(list1.head.item, 11) self.assertEqual(list1.tail.item, 33) self.assertEqual(list1.head.link.item, 22) self.assertEqual(list1.head.link.link, list1.tail) self.assertEqual(list1.size, 3) self.assertEqual(len(list1), 3) def testInsertAtHead(self): list1 = LList([11, 22]) b = list1.head t = list1.tail list1._insertathead(0) self.assertNotEqual(list1.head, b) self.assertEqual(list1.head.item, 0) self.assertEqual(list1.head.link.item, 11) self.assertEqual(t, list1.tail) self.assertEqual(list1.size, 3) self.assertEqual(len(list1), 3) def testAppend(self): list1 = LList([11, 22]) b = list1.head t = list1.tail list1.append(0) self.assertEqual(list1.head, b) self.assertNotEqual(list1.tail, t) self.assertEqual(list1.tail.item, 0) self.assertEqual(list1.size, 3) self.assertEqual(len(list1), 3) def testPop(self): list1 = LList([11, 22]) b = list1.head t = list1.tail x = list1.pop() self.assertEqual(x, 22) self.assertNotEqual(t, list1.tail) self.assertEqual(list1.tail.item, 11) x = list1.pop() self.assertEqual(x, 11) self.assertEqual(list1.tail, None) self.assertEqual(list1.head, None) def testInsert(self): list1 = LList([11, 22, 33]) t = list1.tail list1.insert(list1.size, 44) self.assertNotEqual(t, list1.tail) self.assertEqual(list1.tail.item, 44) self.assertEqual(list1.size, 4) def testCount(self): list1 = LList([11, 22, 33, 11]) self.assertEqual(list1.count(11), 2) self.assertEqual(list1.count(22), 1) self.assertEqual(list1.count(44), 0) def main(argv): unittest.main() if __name__ == '__main__': main(sys.argv)