Exemple #1
0
from libs.evaluators import PrefixEvaluator
from argparse import ArgumentParser
import os.path

parser = ArgumentParser(
    description='Process text files with prefix expressions per newline')
parser.add_argument('-file', dest='filename', required=False, metavar="FILE")

filename = parser.parse_args().filename
pre_eval = PrefixEvaluator()

with open(filename, 'r') as f:
    for line in f:
        print pre_eval.evaluate(line)
Exemple #2
0
def test_expression_parser():
    peval = PrefixEvaluator()
    pre_parsed = '* + 2 3 4'
    properly_parsed = ['*', '+', 2, 3, 4]
    assert peval._parsed_expression(pre_parsed) == properly_parsed
Exemple #3
0
def test_is_integer():
    peval = PrefixEvaluator()
    string_int_list = [str(i) for i in range(0,11)] # ['0', '1',...,'10']
    for string in string_int_list:
        assert peval._is_integer(string)
Exemple #4
0
def test_evaluation():
    peval = PrefixEvaluator()
    test_string = '* + 2 3 4'
    assert peval.evaluate(test_string) == 20
Exemple #5
0
def test_string_subtraction():
    peval = PrefixEvaluator()
    assert peval._eval_string_op['-'](9,8) == 9 - 8
Exemple #6
0
def test_string_addition():
    peval = PrefixEvaluator()
    assert peval._eval_string_op['+'](6,7) == 6 + 7
Exemple #7
0
def test_string_division():
    peval = PrefixEvaluator()
    assert peval._eval_string_op['/'](4,5) == 4 / 5
Exemple #8
0
def test_string_multiplication():
    peval = PrefixEvaluator()
    assert peval._eval_string_op['*'](2,3) == 2 * 3