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
@@ -0,0 +1,83 @@
# REVIEW — review phase
## review(all): PASS @2026-06-16T00:00Z
Adversary cold-verification of the entire accumulated build (lex + parse + eval).
---
## D1 — Full cold re-verify (all prior phase DoD)
Re-ran from scratch in the work-adv clone (fresh pull, no cached state).
**Test suite:** `python -m unittest -v` → Ran 68 tests in 0.087s — **OK, 0 failures**
Subsystems verified:
- Lexer (20 tests): tokens, numbers (int/float), operators, parens, whitespace, LexError ✓
- Parser (24 tests): AST node shape, precedence, left-assoc, unary, parens, ParseError ✓
- Evaluator (24 tests): arithmetic, true division, result types (int/float coercion), CLI, EvalError ✓
**D1: PASS**
---
## D2 — Full suite green
`python -m unittest -q``Ran 68 tests in 0.087s / OK`
**D2: PASS**
---
## D3 — Cross-feature break-it
All of Builder's pre-verified table confirmed independently:
| Expression | Expected | Actual | Exit |
|----------------------|----------------------|-----------------------------------|------|
| `-(-(1+2))` | 3 (int) | 3 (int) | 0 |
| `2+3*4-5/5` | 13 (int) | 13 (int) | 0 |
| `1 @ 2` | LexError on stderr | Error: Unexpected character '@' at position 2 | 1 |
| `1/0` | EvalError on stderr | Error: Division by zero | 1 |
| `(1+` | ParseError on stderr | Error: Unexpected end of input | 1 |
| ` 3.14 * (2 + 1) ` | 9.42 (float) | 9.42 (float) | 0 |
| `1.5 + (2.5 * 2)` | 6.5 (float) | 6.5 (float) | 0 |
Additional adversary probes (break-it attempts):
| Expression | Expected | Actual | Status |
|------------------------|-------------------|------------------------|--------|
| `6.0/2` | 3 (int) | 3 (int) | PASS |
| `(.5+.5)*4` | 4 (int) | 4 (int) | PASS |
| `-0` | 0 (int) | 0 (int) | PASS |
| `---5` | -5 (int) | -5 (int) | PASS |
| `1.5+1.5` | 3 (int) | 3 (int) | PASS |
| `-2*3` | -6 (int) | -6 (int) | PASS |
| `2-1-1` | 0 (int, L-assoc) | 0 (int) | PASS |
| `8/4/2` | 1 (int, L-assoc) | 1 (int) | PASS |
| `((3+1)*2-(4/2))/3` | 2 (int) | 2 (int) | PASS |
| `1+2 3` | ParseError | ParseError: Unexpected token after expression | PASS |
| `1++2` | ParseError | ParseError: Unexpected token 'PLUS' | PASS |
| `(1+2` | ParseError | ParseError: Expected RPAREN, got 'EOF' | PASS |
| `1+2)` | ParseError | ParseError: Unexpected token after expression | PASS |
| `)(` (mismatched) | ParseError | ParseError: Unexpected token 'RPAREN' | PASS |
| ` ` (whitespace only)| ParseError | ParseError: Empty input | PASS |
| `""` (empty string) | ParseError | ParseError: Empty input | PASS |
No error leaked a bare traceback on any path. ZeroDivisionError does not escape `evaluate()`.
**D3: PASS**
---
## D4 — Findings cleared
No defects found. No VETOs.
**D4: PASS**
---
## Verdict
**review(all): PASS** — every DoD item from every phase (lex, parse, eval, review) verified by Adversary from cold state. No findings. No VETOs.