code wiki / _hdl_build / nx_tokroi_report_gate.nx
nx_tokroi_report_gate.nx source
↩ module page · 69 lines · 5386 B
1import "nx_tokroi.nx"
2import "nx_gate_verdict.nx"
3
4func trg_case(label: *u8, rows: *u8, expected_error: i64, expected: *u8, ctr: *i64) -> i64 {
5 let n: i64 = sj_vlen(rows)
6 let out: *u8 = sys_mmap(TR_OUT)
7 let flags: *i64 = sys_mmap(24) as *i64
8 var i: i64 = 0; var count: i64 = 0
9 while i < n { if rows[i] == (10 as u8) { count = count + 1 } i = i + 1 }
10 if n > 0 { if rows[n-1] != (10 as u8) { count = count + 1 } }
11 flags[0] = count; flags[1] = count; flags[2] = 0
12 let result: i64 = tr_report_rows(rows, n, out, TR_OUT, flags)
13 var passed: i64 = 0
14 if expected_error > 0 { if result == 0 - expected_error { passed = 1 } }
15 else { if result > 0 { passed = sj_span_has(out, 0, result, expected) } }
16 gv_check(label, passed, ctr)
17 return passed
18}
19
20func trg_capacity(ctr: *i64) -> i64 {
21 let rows: *u8 = "a\tlever\tREALIZED\t1\t2\t1\t1\tevidence\n" as *u8
22 // Force failure during emission; the following marker is outside the declared writer capacity.
23 let cap: i64 = sj_vlen(rows)
24 let out: *u8 = sys_mmap(cap+8)
25 var i: i64 = cap
26 while i < cap+8 { out[i] = 85 as u8; i = i + 1 }
27 let flags: *i64 = sys_mmap(24) as *i64
28 flags[0] = 1; flags[1] = 1; flags[2] = 0
29 let result: i64 = tr_report_rows(rows, sj_vlen(rows), out, cap, flags)
30 var safe: i64 = 1
31 i = cap
32 while i < cap+8 { if out[i] != (85 as u8) { safe = 0 } i = i + 1 }
33 gv_check("output exhaustion returns explicit error" as *u8, result == 0 - TR_E_OUTPUT, ctr)
34 gv_check("output exhaustion preserves boundary canary" as *u8, safe, ctr)
35 return safe
36}
37
38func main() -> i64 {
39 let ctr: *i64 = gv_ctr()
40 gv_head("TOKROI-REPORT-HARDENING" as *u8)
41 let nominal: *u8 = "TR1\tboot\tREALIZED\t150000\t40000\t300\t16\tseat-S0\n" as *u8
42 trg_case("legacy floor payback preserved" as *u8, nominal, 0, "\"payback_uses\":3" as *u8, ctr)
43 trg_case("ceiling break-even is four uses" as *u8, nominal, 0, "\"break_even_uses\":4" as *u8, ctr)
44 trg_case("declared scope does not verify evidence" as *u8, nominal, 0, "\"evidence_verified\":false" as *u8, ctr)
45 trg_case("history completeness remains unknown" as *u8, nominal, 0, "\"history_complete\":null" as *u8, ctr)
46 let unknown: *u8 = "x\tlever\tTYPO\t100\t20\t10\t2\tref\n" as *u8
47 trg_case("unknown status is counted" as *u8, unknown, 0, "\"unknown_status_rows\":1" as *u8, ctr)
48 trg_case("unknown status excluded from realized totals" as *u8, unknown, 0, "\"realized\":{\"daily_reduction\":0,\"investment\":0,\"levers\":0}" as *u8, ctr)
49 trg_case("unknown status excluded from projected totals" as *u8, unknown, 0, "\"projected\":{\"daily_reduction\":0,\"investment\":0,\"levers\":0}" as *u8, ctr)
50 trg_case("negative delta remains visible" as *u8, "x\tlever\tREALIZED\t100\t10\t20\t2\tref\n" as *u8, 0, "\"signed_delta\":-10" as *u8, ctr)
51 trg_case("regression has no break-even" as *u8, "x\tlever\tREALIZED\t100\t10\t20\t2\tref\n" as *u8, 0, "\"break_even_uses\":null" as *u8, ctr)
52 trg_case("zero reduction has no break-even" as *u8, "x\tlever\tREALIZED\t100\t10\t10\t2\tref\n" as *u8, 0, "\"break_even_uses\":null" as *u8, ctr)
53 trg_case("zero investment has zero break-even" as *u8, "x\tlever\tREALIZED\t0\t20\t10\t2\tref\n" as *u8, 0, "\"break_even_uses\":0" as *u8, ctr)
54 trg_case("signed maximum accepted" as *u8, "x\tlever\tREALIZED\t9223372036854775807\t9223372036854775807\t0\t1\tref\n" as *u8, 0, "\"daily_reduction\":9223372036854775807" as *u8, ctr)
55 trg_case("negative representable delta accepted" as *u8, "x\tlever\tREALIZED\t0\t0\t9223372036854775807\t1\tref\n" as *u8, 0, "\"signed_delta\":-9223372036854775807" as *u8, ctr)
56 trg_case("numeric overflow refused" as *u8, "x\tlever\tREALIZED\t9223372036854775808\t2\t1\t1\tref\n" as *u8, TR_E_ROW, "" as *u8, ctr)
57 trg_case("negative count refused" as *u8, "x\tlever\tREALIZED\t-1\t2\t1\t1\tref\n" as *u8, TR_E_ROW, "" as *u8, ctr)
58 trg_case("embedded nondigit refused" as *u8, "x\tlever\tREALIZED\t1x2\t2\t1\t1\tref\n" as *u8, TR_E_ROW, "" as *u8, ctr)
59 trg_case("missing numeric count refused" as *u8, "x\tlever\tREALIZED\t\t2\t1\t1\tref\n" as *u8, TR_E_ROW, "" as *u8, ctr)
60 trg_case("daily multiplication overflow refused" as *u8, "x\tlever\tREALIZED\t1\t9223372036854775807\t0\t2\tref\n" as *u8, TR_E_ARITHMETIC, "" as *u8, ctr)
61 trg_case("daily total overflow refused" as *u8, "x\tlever\tREALIZED\t1\t9223372036854775807\t0\t1\tref\ny\tlever\tREALIZED\t1\t1\t0\t1\tref\n" as *u8, TR_E_ARITHMETIC, "" as *u8, ctr)
62 trg_case("investment total overflow refused" as *u8, "x\tlever\tPROJECTED\t9223372036854775807\t1\t0\t0\tref\ny\tlever\tPROJECTED\t1\t1\t0\t0\tref\n" as *u8, TR_E_ARITHMETIC, "" as *u8, ctr)
63 trg_case("missing eighth column refused" as *u8, "x\tlever\tREALIZED\t1\t2\t1\t1\n" as *u8, TR_E_ROW, "" as *u8, ctr)
64 trg_case("extra column refused" as *u8, "x\tlever\tREALIZED\t1\t2\t1\t1\tref\textra\n" as *u8, TR_E_ROW, "" as *u8, ctr)
65 trg_case("evidence quotes preserved by JSON escaping" as *u8, "x\tlever\tREALIZED\t1\t2\t1\t1\ta\"b\n" as *u8, 0, "\"evidence\":\"a\\\"b\"" as *u8, ctr)
66 trg_capacity(ctr)
67 let rc: i64 = gv_verdict("TOKROI-REPORT-HARDENING" as *u8, ctr, "declared ROI arithmetic remains bounded, unknown statuses do not become realized, and evidence scope stays explicit" as *u8)
68 sys_exit(rc); return rc
69}