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
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
def token_stack(): token_stack = TokenStack.get_instance() token_stack.clear() return token_stack
def compute(self) -> Number: b: Number = TokenStack.get_instance().pop() a: Number = TokenStack.get_instance().pop() return self.compute_with_numbers(a, b)