def test_init(self): with self.assertRaises(TypeError): test_stack = RotatingStack("hello") with self.assertRaises(TypeError): test_stack = RotatingStack(None) with self.assertRaises(ValueError): test_stack = RotatingStack(-1)
def test_last_in_first_out(self): test_stack = RotatingStack(2) test_stack.push(RotatingLimitedStackTestCase.ITEM_1) test_stack.push(RotatingLimitedStackTestCase.ITEM_2) test_stack.push(RotatingLimitedStackTestCase.ITEM_3) self.assertEqual(2, test_stack.size()) self.assertEqual(RotatingLimitedStackTestCase.ITEM_3, test_stack.pop()) self.assertEqual(RotatingLimitedStackTestCase.ITEM_2, test_stack.pop()) self.assertEqual(0,test_stack.size())
def test_pop_single_item(self): test_stack = RotatingStack(3) test_stack.push(RotatingLimitedStackTestCase.ITEM_1) self.assertEqual(RotatingLimitedStackTestCase.ITEM_1, test_stack.pop()) self.assertEqual(0, test_stack.size())
def test_pop_empty_stack(self): test_stack = RotatingStack(3) self.assertEqual(None, test_stack.pop())
def test_push_none(self): test_stack = RotatingStack(3) with self.assertRaises(TypeError): test_stack.push(None)
def test_peek_size_remains(self): test_stack = RotatingStack(3) test_stack.push(RotatingLimitedStackTestCase.ITEM_1) self.assertEqual(RotatingLimitedStackTestCase.ITEM_1, test_stack.peek()) self.assertEqual(1, test_stack.size())
def test_push_increases_size(self): test_stack = RotatingStack(3) test_stack.push(RotatingLimitedStackTestCase.ITEM_1) self.assertEqual(1, test_stack.size())
def test_base_stack_empty(self): test_stack = RotatingStack(3) self.assertEqual(0, test_stack.size())
def test_overpush(self): test_stack = RotatingStack(2) test_stack.push(RotatingLimitedStackTestCase.ITEM_1) test_stack.push(RotatingLimitedStackTestCase.ITEM_2) test_stack.push(RotatingLimitedStackTestCase.ITEM_3)
def test_rotating_behavior(self): test_stack = RotatingStack(2) test_stack.push(STC.ITEM_1) test_stack.push(STC.ITEM_1) test_stack.push(STC.ITEM_2) self.assertEqual(STC.ITEM_2, test_stack.peek())