code wiki / _hdl_build / nx_viz_format_gate.nx
nx_viz_format_gate.nx source
↩ module page · 50 lines · 1974 B
1// nx_viz_format_gate.nx -- REFEREE for the number-format layer. 999->"999" 1234->"1.2k" 12000->"12.0k"
2// 1500000->"1.5M". GREEN iff all. Sovereign: nx_viz_format + nx_syscalls. license_tier: ORIGINAL
3import "nx_viz_format.nx"
4import "nx_syscalls.nx"
5import "nx_gate_verdict.nx"
6
7func g_w(s: *u8) -> i64 { var n: i64 = 0; while s[n] != (0 as u8) { n = n + 1 } sys_write(1, s, n); return 0 }
8func g_streq(a: *u8, b: *u8) -> i64 { var i: i64 = 0; while 1 == 1 { if a[i] != b[i] { return 0 } if a[i] == (0 as u8) { return 1 } i = i + 1 } return 1 }
9func g_row(name: *u8, ok: i64) -> i64 {
10 if ok == 1 { g_w(" PASS " as *u8) }
11 if ok != 1 { g_w(" FAIL " as *u8) }
12 g_w(name); g_w("\n" as *u8)
13 return ok
14}
15
16func main() -> i64 {
17 g_w("viz-format gate (SI number format)\n" as *u8)
18 let out: *u8 = sys_mmap(64)
19 var pass: i64 = 0
20
21 vf_si(999, out)
22 var t1: i64 = 0
23 if g_streq(out, "999" as *u8) == 1 { t1 = 1 }
24 pass = pass + g_row("T1 999 -> 999\x00" as *u8, t1)
25
26 vf_si(1234, out)
27 var t2: i64 = 0
28 if g_streq(out, "1.2k" as *u8) == 1 { t2 = 1 }
29 pass = pass + g_row("T2 1234 -> 1.2k\x00" as *u8, t2)
30
31 vf_si(12000, out)
32 var t3: i64 = 0
33 if g_streq(out, "12.0k" as *u8) == 1 { t3 = 1 }
34 pass = pass + g_row("T3 12000 -> 12.0k\x00" as *u8, t3)
35
36 vf_si(1500000, out)
37 var t4: i64 = 0
38 if g_streq(out, "1.5M" as *u8) == 1 { t4 = 1 }
39 pass = pass + g_row("T4 1500000 -> 1.5M\x00" as *u8, t4)
40
41 // MIGRATED onto nx_gate_verdict by nx_gate_dry_apply (D001, minimal form): every check
42 // row above is untouched, so the PASS/FAIL vector cannot change; only the hand-rolled
43 // verdict emission is replaced by the ONE shared base class. Proven by nx_gate_migrate verify.
44 let ctr__dry: *i64 = gv_ctr()
45 ctr__dry[0] = pass
46 ctr__dry[1] = 4
47 let rc__dry: i64 = gv_verdict("VIZ-FORMAT-GATE" as *u8, ctr__dry, "4/4 (SI number format, bits-up)" as *u8)
48 sys_exit(rc__dry)
49 return rc__dry
50}