Пример #1
0
def test_max():
    stack = MaxStack()

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

    assert stack.max() == 50
Пример #2
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
Пример #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
Пример #4
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
Пример #5
0
def test_max_no_items():
    stack = MaxStack()

    with pytest.raises(IndexError):
        stack.max()
Пример #6
0
def test_push():
    stack = MaxStack()

    stack.push(10)

    assert stack.peek() == 10
Пример #7
0
def test_pop_no_items():
    stack = MaxStack()

    with pytest.raises(IndexError):
        stack.pop()
Пример #8
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
Пример #9
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
Пример #10
0
 def setUp(self):
     # choose one below :-)
     self.testStack = MaxStack()  # more space effective