def test_max(): stack = MaxStack() stack.push(10) stack.push(50) stack.push(1) assert stack.max() == 50
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
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
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
def test_max_no_items(): stack = MaxStack() with pytest.raises(IndexError): stack.max()
def test_push(): stack = MaxStack() stack.push(10) assert stack.peek() == 10
def test_pop_no_items(): stack = MaxStack() with pytest.raises(IndexError): stack.pop()
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
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
def setUp(self): # choose one below :-) self.testStack = MaxStack() # more space effective