import unittest
import stack
class StackTest(unittest.TestCase):
def setUp(self):
self.s = stack.Stack()
def test_is_empty(self):
self.assertEqual(self.s.is_empty(), 0)
self.s.push(1)
self.assertEqual(self.s.is_empty(), 1)
x = self.s.pop()
self.assertEqual(self.s.is_empty(), 0)
def test_push(self):
self.s.push(1)
self.s.push(3)
self.s.push(5)
self.assertEqual(self.s.top, 5)
self.assertEqual(self.s.count, 3)
def test_pop(self):
self.s.push(1)
self.s.push(3)
self.s.push(5)
self.assertEqual(self.s.pop(), 5)
self.assertEqual(self.s.pop(), 3)
self.assertEqual(self.s.pop(), 1)
def test_top(self):
VALUE = 1
self.s.push(VALUE)
self.assertEqual(self.s.top(), VALUE)
def test_count(self):
self.s.push(1)
self.s.push(3)
self.assertEqual(self.s.count(), 2)
self.s.pop()
self.assertEqual(self.s.count(), 1)
if __name__ == "__main__":
unittest.main()