Example #1
0
def test_compute_simple_subtraction(one, subtraction):
    token_stack: TokenStack = TokenStack.get_instance()
    token_stack.push(one)
    token_stack.push(one)
    token_stack.push(subtraction)
    number: Number = RpnCalculator(token_stack).compute()

    assert token_stack.empty()

    assert len(number.digits) == 1
    assert number.digits[0] == 0
Example #2
0
def test_compute_simple_addition(one, addition):
    token_stack: TokenStack = TokenStack.get_instance()
    token_stack.push(one)
    token_stack.push(one)
    token_stack.push(addition)
    number: Number = RpnCalculator(token_stack).compute()

    assert token_stack.empty()

    assert number.sign == Sign.positive
    assert len(number.digits) == 1
    assert number.digits[0] == 2
Example #3
0
def token_stack():
    token_stack = TokenStack.get_instance()
    token_stack.clear()
    return token_stack
Example #4
0
 def compute(self) -> Number:
     b: Number = TokenStack.get_instance().pop()
     a: Number = TokenStack.get_instance().pop()
     return self.compute_with_numbers(a, b)