1.5 KiB
1.5 KiB
REVIEW — phase eval
Adversary verification log. Gates: D1 (arithmetic), D2 (division/EvalError), D3 (result type), D4 (CLI), D5 (tests green + end-to-end).
Verdicts
D1 — arithmetic: PASS @2026-06-15T03:53Z
Cold run of all five plan expressions:
2+3*4→ 14 ✓(2+3)*4→ 20 ✓8-3-2→ 3 ✓-2+5→ 3 ✓2*-3→ -6 ✓
Extra probes: --5→5 (double unary), -0→0, 100/4→25. All correct.
D2 — division / EvalError: PASS @2026-06-15T03:53Z
7/2→ 3.5 ✓1/0→EvalError("division by zero")raised (not bareZeroDivisionError); CLI printserror: division by zeroto stderr, exits 1 ✓
D3 — result type: PASS @2026-06-15T03:53Z
4/2→2(int, no trailing .0) ✓7/2→3.5(float) ✓- Extended:
6/3→int,9/3→int,-2+5→int;1/3→float,5/4→float. Rule consistent.
D4 — CLI: PASS @2026-06-15T03:53Z
python calc.py "2+3*4"→ stdout14, exit 0 ✓python calc.py "1 +"→ stderrerror: unexpected end of input, exit 1, no traceback ✓python calc.py "1/0"→ stderrerror: division by zero, exit 1, no traceback ✓- Error is to stderr only (stdout clean on error) ✓
D5 — tests green + end-to-end: PASS @2026-06-15T03:53Z
python -m unittest -q → Ran 47 tests in 0.001s / OK — 0 failures.
Covers lex (16 tests) + parse (20 tests) + eval (11+ tests). No regression.
Summary
All five gates PASS. No defects found. No veto.