Esempio n. 1
0
def test_max():
    stack = MaxStack()

    stack.push(10)
    stack.push(50)
    stack.push(1)

    assert stack.max() == 50
Esempio n. 2
0
def test_max_no_items():
    stack = MaxStack()

    with pytest.raises(IndexError):
        stack.max()
Esempio n. 3
0
def test_max_with_changes():
    stack = MaxStack()

    stack.push(10)
    stack.push(50)
    stack.push(75)
    stack.push(5)

    assert stack.max() == 75

    stack.pop()
    stack.pop()

    assert stack.max() == 50
Esempio n. 4
0
def test_push():
    stack = MaxStack()

    stack.push(10)

    assert stack.peek() == 10
Esempio n. 5
0
def test_max_with_duplicates():
    stack = MaxStack()

    stack.push(10)
    stack.push(50)
    stack.push(50)

    assert stack.max() == 50

    stack.pop()

    assert stack.max() == 50

    stack.pop()

    assert stack.max() == 10
Esempio n. 6
0
def test_pop_no_items():
    stack = MaxStack()

    with pytest.raises(IndexError):
        stack.pop()
Esempio n. 7
0
def test_should_keep_track_of_descending_stack_pushing():
    my_max_stack = MaxStack()
    my_max_stack.push(3)
    my_max_stack.push(2)
    my_max_stack.push(1)
    assert my_max_stack.get_max() is 3
Esempio n. 8
0
def test_should_easily_keep_track_of_pushing():
    my_max_stack = MaxStack()
    my_max_stack.push(1)
    my_max_stack.push(2)
    my_max_stack.push(3)
    assert my_max_stack.get_max() is 3
Esempio n. 9
0
def test_should_keep_track_of_some_pushing_and_popping():
    my_max_stack = MaxStack()
    should_be_none = my_max_stack.pop()
    my_max_stack.push(3)
    my_max_stack.push(19)
    my_max_stack.pop()
    my_max_stack.push(4)
    my_max_stack.push(2)
    my_max_stack.pop()
    assert my_max_stack.get_max() is 4
    assert should_be_none is None
Esempio n. 10
0
 def setUp(self):
     # choose one below :-)
     self.testStack = MaxStack()  # more space effective
Esempio n. 11
0
class StackTestCase(unittest.TestCase):
    def setUp(self):
        # choose one below :-)
        self.testStack = MaxStack()  # more space effective
        #self.testStack = MaxStack2()

    def test_init_stack_state(self):
        self.assertEqual(self.testStack.get_size(), 0,
                         'incorrect get_size() on init')
        self.assertEqual(self.testStack.get_last(), None,
                         'incorrect get_last() on init')
        self.assertEqual(self.testStack.get_max(), None,
                         'incorrect get_max() on init')
        self.assertEqual(self.testStack.pop(), None, 'incorrect pop() on init')

    def test_stack_functionality(self):
        self.testStack.push(3)
        self.testStack.push(7)
        self.testStack.push(12)
        self.assertEqual(self.testStack.get_max(), 12,
                         'incorrect get_max() Stop-Point 1')
        self.assertEqual(self.testStack.get_size(), 3,
                         'incorrect get_size() Stop-Point 1')
        self.assertEqual(self.testStack.get_last(), 12,
                         'incorrect get_last() Stop-Point 1')
        self.assertEqual(self.testStack.pop(), 12,
                         'incorrect pop() Stop-Point 1')
        self.assertEqual(self.testStack.get_max(), 7,
                         'incorrect get_max() Stop-Point 2')
        self.testStack.push(9)
        self.assertEqual(self.testStack.get_max(), 9,
                         'incorrect get_max() Stop-Point 3')
        self.testStack.push(-5)
        self.assertEqual(self.testStack.get_max(), 9,
                         'incorrect get_max() Stop-Point 4')
        self.testStack.push(208)
        self.assertEqual(self.testStack.get_max(), 208,
                         'incorrect get_max() Stop-Point 5')
        self.testStack.push(2)
        self.assertEqual(self.testStack.get_size(), 6,
                         'incorrect get_size() Stop-Point 2')
        self.assertEqual(self.testStack.get_last(), 2,
                         'incorrect get_last() Stop-Point 2')
        self.assertEqual(self.testStack.pop(), 2,
                         'incorrect pop() Stop-Point 2')
        self.testStack.pop()  # pop 208 out
        self.assertEqual(self.testStack.get_max(), 9,
                         'incorrect get_max() Stop-Point 6')
        self.assertEqual(self.testStack.get_size(), 4,
                         'incorrect get_size() Stop-Point 3')
        self.assertEqual(self.testStack.get_last(), -5,
                         'incorrect get_last() Stop-Point 3')
        self.assertEqual(self.testStack.pop(), -5,
                         'incorrect pop() Stop-Point 3')
        self.testStack.push(222222222224)
        self.assertEqual(self.testStack.get_max(), 222222222224,
                         'incorrect get_max() Stop-Point 7')
        self.testStack.push(6)
        self.assertEqual(self.testStack.get_size(), 5,
                         'incorrect get_size() Stop-Point 4')
        self.assertEqual(self.testStack.get_last(), 6,
                         'incorrect get_last() Stop-Point 4')
        self.assertEqual(self.testStack.pop(), 6,
                         'incorrect pop() Stop-Point 4')
        self.testStack.pop()
        self.testStack.pop()
        self.testStack.pop()
        self.testStack.pop()
        self.assertEqual(self.testStack.get_size(), 0,
                         'incorrect get_size() Stop-Point 5')
        self.assertEqual(self.testStack.get_last(), None,
                         'incorrect get_last() Stop-Point 5')
        self.assertEqual(self.testStack.get_max(), None,
                         'incorrect get_max() Stop-Point 8')
        self.assertEqual(self.testStack.pop(), None,
                         'incorrect pop() Stop-Point 5')
        self.testStack.pop()
        self.assertEqual(self.testStack.pop(), None,
                         'incorrect pop() Stop-Point 6')
        self.assertEqual(self.testStack.get_last(), None,
                         'incorrect get_last() Stop-Point 6')
        self.assertEqual(self.testStack.get_max(), None,
                         'incorrect get_max() Stop-Point 9')
        pass

    @unittest.skipUnless(sys.platform.startswith("ubuntu"),
                         "requires Ubuntu machine")
    def test_stack_on_ubuntu(self):
        """just playing with unittest options to verify kill"""
        self.assertEqual(True, False, 'incorrect Stack on Ubuntu machine ;-)')
        pass

    def tearDown(self):
        self.testStack = None