Advertisement
bwukki

Stack pers in py

Oct 4th, 2018
244
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.16 KB | None | 0 0
  1. #Stack class, unit tests below it (courtesy of Blake!) (to be put in their own file!)
  2. class Stack:
  3.     def __init__(self):
  4.         """Cannot be initialized with data!"""
  5.         self.m_data = []
  6.  
  7.     def size(self):
  8.         """Returns the size of the stack"""
  9.         return len(self.m_data)
  10.  
  11.     def is_empty(self):
  12.         """Returns a bool showing whether or not the stack is empty"""
  13.         if self.size() == 0:
  14.             result = True
  15.         else:
  16.             result = False
  17.         return result
  18.  
  19.     def push(self,input):
  20.         """Pushes the next element onto the stack"""
  21.         self.m_data.append(input)
  22.  
  23.     def peek(self):
  24.         """Returns the last item on the stack"""
  25.         return self.m_data[self.size()-1]
  26.  
  27.     def pop(self):
  28.         """Returns the last item on the stack, and removes it from the stack"""
  29.         return self.m_data.pop()
  30.  
  31.  
  32. #unit tests (made by Blake)
  33. import unittest
  34. import Stack
  35.  
  36. class stackOperationMethods(unittest.TestCase):
  37.  
  38.     def test_returns_empty_stack(self):
  39.         self.assertIsInstance(Stack.Stack(), Stack.Stack)
  40.  
  41.     def test_push_item(self):
  42.         newStack = Stack.Stack()
  43.         prePushSize = newStack.size()
  44.         newStack.push(1)
  45.         self.assertTrue(newStack.size() == prePushSize + 1)
  46.  
  47.     def test_pop(self):
  48.         newStack = Stack.Stack()
  49.         prePopSize = newStack.size()
  50.         newStack.push(1)
  51.         self.assertTrue(newStack.pop() == 1)
  52.         self.assertTrue(newStack.size() == 0)
  53.  
  54.     def test_peek(self):
  55.         newStack = Stack.Stack()
  56.         prePeekSize = newStack.size()
  57.         newStack.push(1)
  58.         self.assertTrue(newStack.peek() == 1)
  59.         self.assertTrue(newStack.size() == 1)
  60.  
  61.     def test_is_empty(self):
  62.         newStack = Stack.Stack()
  63.         self.assertTrue(newStack.is_empty() == True)
  64.         newStack.push(1)
  65.         self.assertFalse(newStack.is_empty() == True)
  66.         newStack.pop()
  67.         self.assertTrue(newStack.is_empty()== True)
  68.  
  69.     def test_size(self):
  70.         newStack = Stack.Stack()
  71.         for i in range(1,10):
  72.             newStack.push(i)
  73.         self.assertTrue(newStack.size() == 9)
  74.  
  75.  
  76. if __name__ == "__main__":
  77.     unittest.main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement