예제 #1
0
 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)
예제 #2
0
    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())
예제 #3
0
 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())
예제 #4
0
 def test_pop_empty_stack(self):
     test_stack = RotatingStack(3)
     self.assertEqual(None, test_stack.pop())
예제 #5
0
 def test_push_none(self):
     test_stack = RotatingStack(3)
     with self.assertRaises(TypeError):
         test_stack.push(None)
예제 #6
0
 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())
예제 #7
0
 def test_push_increases_size(self):
     test_stack = RotatingStack(3)
     test_stack.push(RotatingLimitedStackTestCase.ITEM_1)
     self.assertEqual(1, test_stack.size())
예제 #8
0
 def test_base_stack_empty(self):
     test_stack = RotatingStack(3)
     self.assertEqual(0, test_stack.size())
예제 #9
0
 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)
예제 #10
0
 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())