class PseudoQueue(): def __init__(self): self.stack1 = Stack() self.stack2 = Stack() def enqueue(self, value): """ Args: value ([int]): [inserts the value to stack1 using FIFO] """ self.stack1.push(value) def dequeue(self): """[Return the "first in" value from stack1.] Returns: [int/value]: [the first in value from stack1] """ while self.stack1.peek(): if self.stack1.top.next == None: return self.stack1.top.value else: temp = self.stack1.pop() self.stack2.push(temp) continue
def test_peek(): s = Stack() s.push("apple") s.push("banana") actual = s.peek() expected = "banana" assert actual == expected
def test_peek(stack_3_vals): assert stack_3_vals.peek() == 'd' assert stack_3_vals.top.value == 'd' # for Empty stack, we expect an exception empty = Stack() assert empty.peek() == 'this is an empty Stack'
def test_peek_empty(): s = Stack() with pytest.raises(InvalidOperationError) as e: s.peek() assert str(e.value) == "Method not allowed on empty collection"