code wiki / _hdl_build / nx_viz_datajoin_gate.nx
nx_viz_datajoin_gate.nx source
↩ module page · 41 lines · 1729 B
1// nx_viz_datajoin_gate.nx -- REFEREE for the data-join. new=[1,2,3] old=[2,3,4]: classify [0,1,1] (1=enter,
2// 2,3=update), exits=1 (key 4 gone). GREEN iff all. Sovereign: nx_viz_datajoin. license_tier: ORIGINAL
3import "nx_viz_datajoin.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_row(name: *u8, ok: i64) -> i64 {
9 if ok == 1 { g_w(" PASS " as *u8) } else { g_w(" FAIL " as *u8) }
10 g_w(name); g_w("\n" as *u8)
11 return ok
12}
13
14func main() -> i64 {
15 g_w("viz-datajoin gate (enter/update/exit set-diff)\n" as *u8)
16 let nw: *i64 = sys_mmap(64) as *i64
17 let od: *i64 = sys_mmap(64) as *i64
18 let cl: *i64 = sys_mmap(64) as *i64
19 nw[0] = 1; nw[1] = 2; nw[2] = 3
20 od[0] = 2; od[1] = 3; od[2] = 4
21 var pass: i64 = 0
22
23 let exits: i64 = vj_classify(nw, 3, od, 3, cl)
24 var t1: i64 = 0
25 if cl[0] == 0 { if cl[1] == 1 { if cl[2] == 1 { t1 = 1 } } }
26 pass = pass + g_row("T1 classify: key1=enter(0), key2/3=update(1)\x00" as *u8, t1)
27
28 var t2: i64 = 0
29 if exits == 1 { t2 = 1 }
30 pass = pass + g_row("T2 exits = 1 (key 4 gone)\x00" as *u8, t2)
31
32 // MIGRATED onto nx_gate_verdict by nx_gate_dry_apply (D001, minimal form): every check
33 // row above is untouched, so the PASS/FAIL vector cannot change; only the hand-rolled
34 // verdict emission is replaced by the ONE shared base class. Proven by nx_gate_migrate verify.
35 let ctr__dry: *i64 = gv_ctr()
36 ctr__dry[0] = pass
37 ctr__dry[1] = 2
38 let rc__dry: i64 = gv_verdict("VIZ-DATAJOIN-GATE" as *u8, ctr__dry, "2/2 (enter/update/exit, bits-up)" as *u8)
39 sys_exit(rc__dry)
40 return rc__dry
41}