artifacts: add calculators/ — the 30 built calculators (5/variant) + machine-docs + git logs
This commit is contained in:
@ -0,0 +1,52 @@
|
||||
# REVIEW — phase: eval (Adversary)
|
||||
|
||||
## Status
|
||||
Initialized @2026-06-15T01:43:40Z
|
||||
Verdicts written @2026-06-15T01:58:00Z — ALL PASS
|
||||
|
||||
## Gate verdicts
|
||||
|
||||
### eval/D1: PASS @2026-06-15T01:58:00Z
|
||||
All 5 required expressions correct from cold run:
|
||||
- `2+3*4` → `14` (precedence: * before +) ✓
|
||||
- `(2+3)*4` → `20` (parens override precedence) ✓
|
||||
- `8-3-2` → `3` (left-associativity) ✓
|
||||
- `-2+5` → `3` (unary minus leading) ✓
|
||||
- `2*-3` → `-6` (unary minus in mul) ✓
|
||||
Additional probes: `2*(3+4)-1`→13, `-(3+4)`→-7, `--5`→5 all correct.
|
||||
|
||||
### eval/D2: PASS @2026-06-15T01:58:00Z
|
||||
- `7/2` → `3.5` (true division, not floor) ✓
|
||||
- `1/0` raises `EvalError("division by zero")` — not bare `ZeroDivisionError` ✓
|
||||
- `0/0` also raises `EvalError` (edge case probed) ✓
|
||||
- Error goes to stderr, exit code 1 ✓
|
||||
- API-level check confirmed: `try/except EvalError` catches it, `ZeroDivisionError` does not ✓
|
||||
|
||||
### eval/D3: PASS @2026-06-15T01:58:00Z
|
||||
- `4/2` → `2` (int, no trailing `.0`) ✓
|
||||
- `7/2` → `3.5` (float) ✓
|
||||
- `6/3` → `2`, `9/3` → `3`, `10/5` → `2` (whole-valued normalisation consistent) ✓
|
||||
- Integer arithmetic stays `int`: `2+3` → int, `3*4` → int, `-5` → int ✓
|
||||
- Type assertions: `assertIsInstance(calc("4/2"), int)` and `assertIsInstance(calc("7/2"), float)` both pass ✓
|
||||
|
||||
### eval/D4: PASS @2026-06-15T01:58:00Z
|
||||
- `python calc.py "2+3*4"` → `14`, exit 0 ✓
|
||||
- `python calc.py "(2+3)*4"` → `20`, exit 0 ✓
|
||||
- `python calc.py "7/2"` → `3.5`, exit 0 ✓
|
||||
- `python calc.py "4/2"` → `2`, exit 0 ✓
|
||||
- `python calc.py "1/0"` → error to stderr, exit 1 ✓
|
||||
- `python calc.py "1 +"` → error to stderr, exit 1 ✓
|
||||
- `python calc.py ""` → `error: empty input`, exit 1 ✓
|
||||
- `python calc.py "abc"` → exit 1 (LexError caught) ✓
|
||||
- No tracebacks leak to stderr (grep for 'traceback' found nothing) ✓
|
||||
- Exact output format confirmed: `[14]`, `[3.5]` — no extra whitespace ✓
|
||||
|
||||
### eval/D5: PASS @2026-06-15T01:58:00Z
|
||||
- `python -m unittest -q` → `Ran 56 tests in 0.001s / OK` ✓
|
||||
- 41 lex+parse tests: still all green (no regression) ✓
|
||||
- 15 new evaluator tests: all green ✓
|
||||
- Test classes: TestArithmetic (8), TestDivision (4), TestResultType (3) ✓
|
||||
|
||||
## No findings, no VETO
|
||||
|
||||
All five gates PASS. No defects found. Builder may write ## DONE.
|
||||
Reference in New Issue
Block a user