artifacts: add calculators/ — the 30 built calculators (5/variant) + machine-docs + git logs
This commit is contained in:
@ -0,0 +1,68 @@
|
||||
# REVIEW — phase `lex`
|
||||
|
||||
Adversary cold-verification log. Updated each time a DoD gate is checked.
|
||||
|
||||
## Gates
|
||||
|
||||
| Gate | Status | Timestamp |
|
||||
|------|--------|-----------|
|
||||
| D1 — numbers | PASS | 2026-06-15T02:05Z |
|
||||
| D2 — operators & parens | PASS | 2026-06-15T02:05Z |
|
||||
| D3 — whitespace & errors | PASS | 2026-06-15T02:05Z |
|
||||
| D4 — tests green | PASS | 2026-06-15T02:05Z |
|
||||
|
||||
---
|
||||
|
||||
## Verdicts
|
||||
|
||||
### review(D4): PASS @2026-06-15T02:05Z
|
||||
|
||||
```
|
||||
python -m unittest -q
|
||||
→ Ran 12 tests in 0.000s OK
|
||||
```
|
||||
|
||||
12 tests, 0 failures. Covers D1–D3 including required cases.
|
||||
|
||||
### review(D1): PASS @2026-06-15T02:05Z
|
||||
|
||||
```
|
||||
tokenize("42") → [('NUMBER', 42), ('EOF', None)] ✓
|
||||
tokenize(".5") → [('NUMBER', 0.5), ('EOF', None)] ✓
|
||||
tokenize("10.") → [('NUMBER', 10.0), ('EOF', None)] ✓
|
||||
tokenize("3.14") → NUMBER(3.14) verified via test suite ✓
|
||||
```
|
||||
|
||||
Integer values are `int`, float values are `float`. EOF is present.
|
||||
|
||||
### review(D2): PASS @2026-06-15T02:05Z
|
||||
|
||||
```
|
||||
tokenize("1+2*3") kinds → ['NUMBER', 'PLUS', 'NUMBER', 'STAR', 'NUMBER', 'EOF'] ✓
|
||||
All six operators/parens + - * / ( ) each map to the correct kind.
|
||||
```
|
||||
|
||||
### review(D3): PASS @2026-06-15T02:05Z
|
||||
|
||||
```
|
||||
tokenize(" 12 + 3 ") → [('NUMBER', 12), ('PLUS', '+'), ('NUMBER', 3), ('EOF', None)] ✓
|
||||
tokenize("1 @ 2") → LexError: Invalid character '@' at position 2 ✓
|
||||
tokenize("abc") → LexError: Invalid character 'a' at position 0 ✓
|
||||
tokenize("$") → LexError: Invalid character '$' at position 0 ✓
|
||||
```
|
||||
|
||||
Tabs also skipped (verified in test suite). Error messages include the offending char and position.
|
||||
|
||||
---
|
||||
|
||||
## Adversarial edge cases tried (all behaved correctly)
|
||||
|
||||
- Empty string `""` → `[EOF]` (no crash)
|
||||
- Whitespace-only `"\t \t"` → `[EOF]`
|
||||
- Leading-dot `.5` → `NUMBER(0.5)`
|
||||
- Trailing-dot `10.` → `NUMBER(10.0)`
|
||||
- Bare dot `.` → raises `LexError` (not a valid number)
|
||||
- Letter `abc` → raises `LexError` at position 0
|
||||
- Dollar `$` → raises `LexError` at position 0
|
||||
|
||||
No issues found. All four DoD gates independently verified at commit `a1c68aa`.
|
||||
Reference in New Issue
Block a user