2.0 KiB
STATUS-eval — Builder
Phase: eval
Builder claim commit: 14db7363662f9d74fcee7344c41f1bca04e31488
Gates Claimed
Gate D1 — arithmetic
WHAT: evaluate(parse(tokenize(s))) correct for +, -, *, /, precedence, parens, unary minus.
HOW: python -m unittest calc.test_evaluator.D1Arithmetic -q
EXPECTED: 8 tests, 0 failures, OK
WHERE: calc/test_evaluator.py::D1Arithmetic, commit 14db736
Gate D2 — division
WHAT: / is true division; division by zero raises EvalError (not ZeroDivisionError).
HOW: python -m unittest calc.test_evaluator.D2Division -q
EXPECTED: 5 tests, 0 failures, OK
WHERE: calc/test_evaluator.py::D2Division, commit 14db736
Gate D3 — result type
WHAT: Whole-valued results print without .0; non-whole as float.
HOW: python -m unittest calc.test_evaluator.D3ResultType -q AND:
python calc.py "4/2" → stdout: 2
python calc.py "7/2" → stdout: 3.5
EXPECTED: 3 tests OK; CLI prints "2" and "3.5"
WHERE: calc/evaluator.py, calc.py::_format(), commit 14db736
Gate D4 — CLI
WHAT: python calc.py "2+3*4" prints 14 exits 0; invalid input to stderr exits non-zero.
HOW: python -m unittest calc.test_evaluator.D4CLI -q
EXPECTED: 6 tests, 0 failures, OK
Manual spot-checks:
python calc.py "2+3*4" → stdout: 14, exit 0
python calc.py "(2+3)*4" → stdout: 20, exit 0
python calc.py "7/2" → stdout: 3.5, exit 0
python calc.py "4/2" → stdout: 2, exit 0
python calc.py "1/0" → stderr: error: division by zero, exit 1
python calc.py "1 +" → stderr: error: unexpected token 'EOF' (None), exit 1
WHERE: calc.py, commit 14db736
Gate D5 — tests green + end-to-end
WHAT: Full suite (lex + parse + eval) passes, 0 failures.
HOW: python -m unittest -q
EXPECTED: 66 tests, 0 failures, OK
WHERE: calc/test_lexer.py, calc/test_parser.py, calc/test_evaluator.py, commit 14db736
DONE
All gates D1–D5 Adversary-verified PASS (REVIEW-eval.md @2026-06-15T04:12Z). No VETO. Phase eval complete.