def test_push(self):
     stack = Stack()
     stack.push('Python')
     assert stack.items == ['Python']
     # Add another item
     stack.push('Java')
     assert stack.items == ['Python', 'Java']
 def test_pop(self):
     stack = Stack()
     stack.pop()
     stack.push('Python')
     stack.push('Java')
     result = stack.pop()
     assert result == 'Java'
     assert stack.items == ['Python']
 def test_pop_all(self):
     stack = Stack()
     stack.push("A")
     stack.push("B")
     stack.push("C")
     stack.push("D")
     assert stack.items == ["A", "B", "C", "D"]
     stack.pop_all()
     assert stack.items == []
 def test_isEmpty(self):
     stack = Stack()
     assert stack.isEmpty() == True
     stack.push('Python')
     assert stack.isEmpty() == False
 def test_size(self):
     stack = Stack()
     assert stack.size() == 0
     stack.push('Python')
     stack.push('Java')
     assert stack.size() == 2
 def test_peek(self):
     stack = Stack()
     stack.push('Python')
     assert stack.peek() == 'Python'
     stack.pop()
     assert stack.items == []
class SpecialStack:

    def __init__(self):
        self.stack = Stack()
        self.aux_stack = Stack()

    def push(self, item):
        """Accepts an item as a parameter and appends it to the end of the list.
        Returns nothing.
        """
        if self.stack.is_empty():
            self.stack.push(item)
            self.aux_stack.push(item)

        else:
            self.stack.push(item)
            top = self.aux_stack.pop()
            self.aux_stack.push(top)
            if item < top:
                self.aux_stack.push(item)
            else:
                self.aux_stack.push(top)

    def pop(self):
        """Removes and returns the last item or top item from the list."""

        top_item = self.stack.pop()
        self.aux_stack.pop()
        return top_item

    def peek(self):
        """Returns the last or top item in th list."""
        return self.stack.peek()

    def get_min(self):
        """Returns the top item from the list."""
        top_aux_stack = self.aux_stack.pop()
        self.aux_stack.push(top_aux_stack)
        return top_aux_stack