artifacts: add calculators/ — the 30 built calculators (5/variant) + machine-docs + git logs

This commit is contained in:
2026-06-16 15:39:42 +00:00
parent 64bc360fc0
commit bb85aa9f11
728 changed files with 34148 additions and 0 deletions

View File

@ -0,0 +1,66 @@
# REVIEW — review phase (Adversary verdicts)
## Status: PASS — comprehensive cold-verification complete
`review(D-all): PASS` @ 2026-06-16T00:57:12Z
---
## lex phase DoD — ALL PASS
- **lex/D1** PASS — `.5`→0.5, `10.`→10.0, `3.14`→3.14, `42`→42, all correct kinds/values
- **lex/D2** PASS — `+ - * / ( )` all produce correct kinds; `1+2*3``NUMBER PLUS NUMBER STAR NUMBER EOF`
- **lex/D3** PASS — whitespace skipped; `'1 @ 2'` raises `LexError: unexpected character '@' at position 2`
- **lex/D4** PASS — 14 tests, 0 failures (now part of 60-test suite)
## parse phase DoD — ALL PASS
- **parse/D1** PASS — `1+2*3``BinOp('+', Num(1), BinOp('*', Num(2), Num(3)))`
- **parse/D2** PASS — `8-3-2``BinOp('-', BinOp('-', Num(8), Num(3)), Num(2))`; `8/4/2``BinOp('/', BinOp('/', Num(8), Num(4)), Num(2))`
- **parse/D3** PASS — `(1+2)*3``BinOp('*', BinOp('+', Num(1), Num(2)), Num(3))`
- **parse/D4** PASS — `-5``Unary('-', Num(5))`; `-(1+2)` and `3*-2` correct ✓
- **parse/D5** PASS — `'1 +'`, `'(1'`, `'1 2'`, `')('`, `''` all raise `ParseError`
- **parse/D6** PASS — 20 tests, 0 failures
## eval phase DoD — ALL PASS
- **eval/D1** PASS — `2+3*4`→14, `(2+3)*4`→20, `8-3-2`→3, `-2+5`→3, `2*-3`→-6 ✓
- **eval/D2** PASS — `7/2`→3.5; `1/0` raises `EvalError`, not bare `ZeroDivisionError`
- **eval/D3** PASS (after fix) — `_normalize()` applied in all branches: `4.0`→4, `10.`→10, `-4.0`→-4, `0.0`→0, `4/2`→2, `7/2`→3.5 ✓
- **eval/D4** PASS — CLI prints result to stdout, exit 0; errors to stderr, exit 1, no traceback ✓
- **eval/D5** PASS — 60 tests, 0 failures (4 new tests for float-literal normalization added by Builder)
## review phase DoD — ALL PASS
- **D1** PASS — every prior DoD item cold-verified from fresh clone ✓
- **D2** PASS — `python -m unittest -q``Ran 60 tests in ...s OK`
- **D3** PASS — cross-feature probes all pass:
- `-(-(1+2))` → 3 ✓
- `2+3*4-5/5` → 13 ✓
- `1 @ 2`, `1/0`, `(1+` all error to stderr, exit 1, no traceback ✓
- whitespace+floats+parens: `3.5*(1-2)` works ✓
- float-literal normalization: `4.0`→4, `10.`→10, `-4.0`→-4 ✓
- **D4** PASS — FINDING-1 fixed and re-verified; no standing VETO ✓
---
## FINDING-1 — CLOSED
**Status:** RESOLVED @ 2026-06-16T00:57:12Z
**Fix:** Builder extracted `_normalize()` helper in `calc/evaluator.py` and applied it before
every return in `evaluate()` (Num, Unary, and BinOp branches). 4 new tests added to
`calc/test_evaluator.py` to lock in behavior.
**Re-verification:**
```
python calc.py "4.0" → 4 ✓
python calc.py "10." → 10 ✓
python calc.py "-4.0" → -4 ✓
python calc.py "0.0" → 0 ✓
python -m unittest -q → Ran 60 tests in ...s OK ✓
```
---
**Builder may now write `## DONE` to `machine-docs/STATUS-review.md`.**