def test_non_math_operator():
    try:
        rpn(infix(lex("3 4 op")))
    except ValueError:
        pass
    else:
        raise ValueError("Expected exception, but it didn't raise")
def test_no_operator():
    try:
        rpn(infix(lex("3 5")))
    except ValueError:
        pass
    else:
        raise ValueError("Expected exception, bit it didnt raise")
Ejemplo n.º 3
0
def main():
    if args.quiet == False:
        quit = False
        while quit == False:
            user_input = input(">>>")
            user_input = user_input.strip()
            if user_input == "quit":
                quit = True
            elif len(user_input.strip()) == 0:
                continue
            else:
                answer = lex(user_input)
                answer = infix(answer)
                answer = rpn(answer)
                print(answer)

    else:
        user_input = input()
        print(rpn(infix(lex(user_input))))
Ejemplo n.º 4
0
def test_negative_number():
    assert rpn(lex("-5 8 +")) == -5 + 8
def test_complex_division():
    assert rpn(infix(lex("5 * ( 1 + 2) / 1"))) == (5 * (1 + 2) / 1)
def test_complex_mult():
    assert rpn(infix(lex("5 * ( 1 + 2) * 1"))) == (5 * (1 + 2) * 1)
def test_negative_decimal():
    assert rpn(infix(lex("-5.0")))
def test_decimal():
    assert rpn(infix(lex("5.0"))) == 5.0
Ejemplo n.º 9
0
def test_multi_level():
    assert rpn(lex("3 6 + 7 *")) == (3 + 6) * 7
Ejemplo n.º 10
0
def test_negative_and_float_division():
    assert rpn(lex("-5 3.0 + 2 /")) == (-5 + 3.0) / 2
Ejemplo n.º 11
0
def test_negative_division():
    assert rpn(lex("-5 3 + 2 /")) == (-5 + 3) / 2
Ejemplo n.º 12
0
def test_basic():
    assert rpn(lex("1 1 +")) == 1 + 1
Ejemplo n.º 13
0
def test_float_number():
    assert rpn(lex("7 3 - 7.0 /")) == (7 - 3) / 7.0
Ejemplo n.º 14
0
def test_fraction():
    assert rpn(lex("1 5 + 7 /")) == (1 + 5) / 7
Ejemplo n.º 15
0
def test_float_answer():
    assert rpn(lex("5 8 + 7 /")) == (5 + 8) / 7
def test_negative_division():
    assert rpn(infix(lex("(-5 + 3) / 2"))) == (-5 + 3) / 2
def test_negative_and_float_division():
    assert rpn(infix(lex("(-5 + 3.0) / 2"))) == (-5 + 3.0) / 2
def test_subtraction():
    assert rpn(infix(lex("6 - 3"))) == 6 - 3
def test_basic():
    assert rpn(infix(lex("1 + 1"))) == (1 + 1)
def test_division():
    assert rpn(infix(lex("9 / 3"))) == 9 / 3
def test_num():
    assert rpn(infix(lex("1"))) == 1
def test_negative_answer():
    assert rpn(infix(lex("5 - 8"))) == 5 - 8
def test_negative():
    assert rpn(infix(lex("-5"))) == -5
def test_negative_number():
    assert rpn(infix(lex("-5 + 8"))) == -5 + 8
def test_multiple_levels():
    assert rpn(infix(lex("(4 + 2) / 3 * 5"))) == (4 + 2) / 3 * 5
def test_float_answer():
    assert rpn(infix(lex("(5 + 8) / 7"))) == (5 + 8) / 7
def test_multi_level():
    assert rpn(infix(lex("(3 + 6) * 7"))) == (3 + 6) * 7
def test_fraction():
    assert rpn(infix(lex("(1 + 5) / 7"))) == (1 + 5) / 7
def test_left_to_right():
    assert rpn(infix(lex("10 * 4 / 8"))) == (10 * 4 / 8)
def test_float_number():
    assert rpn(infix(lex("(7 - 3) / 7.0"))) == (7 - 3) / 7.0