Advertisement
colinm86

Untitled

Oct 13th, 2019
121
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 7.26 KB | None | 0 0
  1. from circular_dbl_linked_list import CircularDoubleLinkedList
  2. from node import Node
  3. import unittest
  4.  
  5. class TestStringMethods(unittest.TestCase):
  6.     """Unit tests for CircularDoubleLinkedList Class
  7.    Arguments:
  8.        unittest {unittest}
  9.    """
  10.     def setUp(self):
  11.         """Sets up Node CircularDoubleLinkedList to be tested"""
  12.         self.cdll = CircularDoubleLinkedList()
  13.    
  14.     def test_properties(self):
  15.         """Tests CircularDoubleLinkedList object properties"""
  16.         self.assertEqual(self.cdll.head, None)
  17.         self.assertEqual(self.cdll.size, 0)
  18.    
  19.     def test_head_setter(self):
  20.         """Tests CircularDoubleLinkedList head setter"""
  21.         self.cdll.head = Node('a')
  22.         self.assertEqual(self.cdll.head.getData(), 'a')
  23.         self.assertEqual(self.cdll.size, 0)
  24.    
  25.     def test_size_setter(self):
  26.         """Tests CircularDoubleLinkedList size setter"""
  27.         self.assertEqual(self.cdll.size, 0)
  28.         self.cdll.size = 1
  29.         self.assertEqual(self.cdll.size, 1)
  30.    
  31.     def test_size_getter(self):
  32.         """Tests CircularDoubleLinkedList size getter"""
  33.         self.assertEqual(self.cdll.getSize(), 0)
  34.         self.cdll.size = 1
  35.         self.assertEqual(self.cdll.getSize(), 1)
  36.  
  37.     def test_decrementSize(self):
  38.         """Tests CircularDoubleLinkedList decrementSize"""
  39.         self.cdll.size = 3
  40.         self.cdll.decrementSize()
  41.         self.assertEqual(self.cdll.getSize(), 2)
  42.         self.cdll.size = 0
  43.         with self.assertRaises(Exception):
  44.             self.cdll.decrementSize()
  45.  
  46.     def test_incrementSize(self):
  47.         """Tests CircularDoubleLinkedList incrementSize"""
  48.         self.cdll.incrementSize()
  49.         self.assertEqual(self.cdll.getSize(), 1)
  50.         self.cdll.incrementSize()
  51.         self.assertEqual(self.cdll.getSize(), 2)
  52.  
  53.  
  54.     def test_is_empty(self):
  55.         """Tests CircularDoubleLinkedList isEmpty method"""
  56.         self.assertEqual(self.cdll.isEmpty(), True)
  57.         self.cdll.add('a')
  58.         self.assertEqual(self.cdll.isEmpty(), False)
  59.    
  60.     def test_search(self):
  61.         """Tests CircularDoubleLinkedList search method"""
  62.         self.assertEqual(self.cdll.search('a'), False)
  63.         self.cdll.add('a')
  64.         self.assertEqual(self.cdll.search('a'), True)
  65.  
  66.     def test_add(self):
  67.         """Tests CircularDoubleLinkedList add method"""
  68.         self.cdll.add('a')
  69.         self.assertEqual(self.cdll.head.getData(), 'a')
  70.         self.assertEqual(self.cdll.getSize(), 1)
  71.         self.cdll.add('b')
  72.         self.assertEqual(self.cdll.head.getData(), 'b')
  73.         self.assertEqual(self.cdll.getSize(), 2)
  74.         self.cdll.add('c')
  75.         self.assertEqual(self.cdll.head.getData(), 'c')
  76.         self.assertEqual(self.cdll.getSize(), 3)
  77.    
  78.     def test_append(self):
  79.         """Tests CircularDoubleLinkedList append method"""
  80.         self.cdll.append('a')
  81.         self.assertEqual(self.cdll.head.getPrevious().getData(), 'a')
  82.         self.assertEqual(self.cdll.getSize(), 1)
  83.         self.cdll.append('b')
  84.         self.assertEqual(self.cdll.head.getPrevious().getData(), 'b')
  85.         self.assertEqual(self.cdll.getSize(), 2)
  86.         self.cdll.append('c')
  87.         self.assertEqual(self.cdll.head.getPrevious().getData(), 'c')
  88.         self.assertEqual(self.cdll.getSize(), 3)
  89.    
  90.     def test_deletefirst(self):
  91.         """Tests CircularDoubleLinkedList deletefirst method"""
  92.         with self.assertRaises(Exception):
  93.             self.cdll.deletefirst()
  94.         self.cdll.add('a')
  95.         self.cdll.deletefirst()
  96.         self.assertEqual(self.cdll.head, None)
  97.         self.assertEqual(self.cdll.getSize(), 0)
  98.         self.cdll.add('b')
  99.         self.cdll.add('c')
  100.         self.cdll.deletefirst()
  101.         self.assertEqual(self.cdll.head.getData(), 'b')
  102.         self.assertEqual(self.cdll.getSize(), 1)
  103.  
  104.     def test_pop(self):
  105.         """Tests CircularDoubleLinkedList pop method"""
  106.         with self.assertRaises(Exception):
  107.             self.cdll.pop()
  108.         self.cdll.add('a')
  109.         self.cdll.pop()
  110.         self.assertEqual(self.cdll.head, None)
  111.         self.assertEqual(self.cdll.getSize(), 0)
  112.         self.cdll.add('b')
  113.         self.cdll.add('c')
  114.         self.cdll.pop()
  115.         self.assertEqual(self.cdll.head.getData(), 'c')
  116.         self.assertEqual(self.cdll.getSize(), 1)
  117.  
  118.     def test_popbyindex(self):
  119.         """Tests CircularDoubleLinkedList popbyindex method"""
  120.         with self.assertRaises(IndexError):
  121.             self.cdll.popbyindex(0)
  122.         self.cdll.add('a')
  123.         self.cdll.popbyindex(0)
  124.         self.assertEqual(self.cdll.head, None)
  125.         self.assertEqual(self.cdll.getSize(), 0)
  126.         self.cdll.add('c')
  127.         self.cdll.add('b')
  128.         self.cdll.add('a')
  129.         self.cdll.popbyindex(1)
  130.         self.assertEqual(self.cdll.head.getData(), 'a')
  131.         self.assertEqual(self.cdll.head.getNext().getData(), 'c')
  132.         self.assertEqual(self.cdll.head.getPrevious().getData(), 'c')
  133.         self.assertEqual(self.cdll.getSize(), 2)
  134.    
  135.     def test_remove(self):
  136.         """Tests CircularDoubleLinkedList remove method"""
  137.         with self.assertRaises(Exception):
  138.             self.cdll.remove('a')
  139.         self.cdll.add('a')
  140.         self.cdll.remove('a')
  141.         self.assertEqual(self.cdll.head, None)
  142.         self.assertEqual(self.cdll.getSize(), 0)
  143.         self.cdll.add('c')
  144.         self.cdll.add('b')
  145.         self.cdll.add('a')
  146.         self.cdll.remove('a')
  147.         self.assertEqual(self.cdll.head.getData(), 'b')
  148.         self.assertEqual(self.cdll.head.getNext().getData(), 'c')
  149.         self.assertEqual(self.cdll.head.getPrevious().getData(), 'c')
  150.         self.assertEqual(self.cdll.getSize(), 2)
  151.    
  152.     def test_get_node(self):
  153.         """Tests CircularDoubleLinkedList get_node method"""
  154.         with self.assertRaises(Exception):
  155.             self.cdll.get_node(0)
  156.         self.cdll.add('c')
  157.         with self.assertRaises(Exception):
  158.             self.cdll.get_node(-1)
  159.         self.cdll.add('b')
  160.         self.cdll.add('a')
  161.         self.assertEqual(self.cdll.get_node(0).getData(), 'a')
  162.         self.assertEqual(self.cdll.get_node(1).getData(), 'b')
  163.         self.assertEqual(self.cdll.get_node(2).getData(), 'c')
  164.  
  165.     def test_insert(self):
  166.         """Tests CircularDoubleLinkedList insert method"""
  167.         with self.assertRaises(IndexError):
  168.             self.cdll.insert(-1,"a")
  169.         self.cdll.add('d')
  170.         self.cdll.add('c')
  171.         self.cdll.add('b')
  172.         self.cdll.add('a')
  173.         self.assertEqual(self.cdll.getSize(), 4)
  174.         with self.assertRaises(IndexError):
  175.             self.cdll.insert(5,"a")
  176.         self.cdll.insert(4,"z")
  177.         self.assertEqual(self.cdll.index('z'), 4)
  178.         self.assertEqual(self.cdll.head.getPrevious().getData(),'z')
  179.         self.assertEqual(self.cdll.getSize(), 5)
  180.         self.cdll.insert(0,"r")
  181.         self.assertEqual(self.cdll.index('r'), 0)
  182.         self.assertEqual(self.cdll.head.getData(),'r')
  183.         self.assertEqual(self.cdll.getSize(), 6)
  184.         self.cdll.insert(1,"l")
  185.         self.assertEqual(self.cdll.index('l'), 1)
  186.         self.assertEqual(self.cdll.head.getNext().getData(),'l')
  187.         self.assertEqual(self.cdll.getSize(), 7)
  188.    
  189.     def test_str_overload(self):
  190.         self.assertEqual(str(self.cdll),"[]")
  191.         self.cdll.add('d')
  192.         self.cdll.add('c')
  193.         self.cdll.add('b')
  194.         self.cdll.add('a')
  195.         self.assertEqual(str(self.cdll),"[a,b,c,d]")
  196.  
  197. if __name__ == '__main__':
  198.     unittest.main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement