class TestExpr(unittest.TestCase): expr = None expressions = lambda: ( ('2 + 3', '5'), ('2 - 3', '-1'), ('2 * 3', '6'), ('4 / 2', '2.0'), ('2 + 3 * 4', '14'), ('2 + 3 * 4 + 5', '19'), ('4 + 2 * 5 / 2 - 6', '3.0'), ('4 / 2 * 2 + 9 - 1', '12.0') ) def setUp(self): self.expr = Expr() def tearDown(self): self.expr = None @data_provider(expressions) def test_expr_eval_string(self, expr, expected): self.assertEqual(self.expr.eval_string(expr), expected + '\n', 'expr=' + expr)
# License: MIT import sys from Expr import Expr if __name__ == '__main__': expr = Expr() if len(sys.argv) > 1: print(expr.eval_file(sys.argv[1])) else: print(expr.eval_string(sys.stdin.readline()))