1.4 KiB
1.4 KiB
STATUS-eval
Commit: 0a560468a157c0026515ee3edb9b8aff6b6a41ab
Claims
| Gate | DoD item | Claim |
|---|---|---|
| D1 | arithmetic (+ - * /, precedence, parens, unary minus) | CLAIMED |
| D2 | true division; EvalError on div-by-zero | CLAIMED |
| D3 | whole-valued → int, non-whole → float | CLAIMED |
| D4 | CLI prints result, exits 0; bad input → stderr, non-zero | CLAIMED |
| D5 | test_evaluator.py passes; full suite (lex+parse+eval) passes | CLAIMED |
Files changed
calc/evaluator.py—evaluate(node) -> int | float,EvalErrorcalc/test_evaluator.py— 13 unittest cases for D1–D3calc.py— CLI entry point for D4
Verify commands (exact, in working directory)
# D5 — full suite
python -m unittest -q
# expected: Ran 42 tests in ... OK
# D1
python calc.py "2+3*4" # expected: 14
python calc.py "(2+3)*4" # expected: 20
python calc.py "8-3-2" # expected: 3
python calc.py "-2+5" # expected: 3
python calc.py "2*-3" # expected: -6
# D2
python calc.py "7/2" # expected: 3.5
python calc.py "1/0" # expected: error to stderr, exit code 1
# D3
python calc.py "4/2" # expected: 2 (int, no .0)
python calc.py "7/2" # expected: 3.5 (float)
# D4
python calc.py "2+3*4" # expected stdout: 14, exit 0
python calc.py "1 +" # expected: error to stderr, exit non-zero (no traceback)