code wiki / _hdl_build / nx_viz_voronoi_gate.nx
nx_viz_voronoi_gate.nx source
↩ module page · 48 lines · 2182 B
1// nx_viz_voronoi_gate.nx -- REFEREE for the voronoi (nearest-site) layer. 4 sites at the corners of 100x100:
2// (0,0)=0 (100,0)=1 (0,100)=2 (100,100)=3. Query near each corner -> that site; equidistant centre -> first (0).
3// GREEN iff all. Sovereign: nx_viz_voronoi + nx_syscalls. license_tier: ORIGINAL
4import "nx_viz_voronoi.nx"
5import "nx_syscalls.nx"
6import "nx_gate_verdict.nx"
7
8func 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 }
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-voronoi gate (nearest-site classification)\n" as *u8)
18 let sx: *i64 = sys_mmap(64) as *i64
19 let sy: *i64 = sys_mmap(64) as *i64
20 sx[0] = 0; sy[0] = 0; sx[1] = 100; sy[1] = 0; sx[2] = 0; sy[2] = 100; sx[3] = 100; sy[3] = 100
21 var pass: i64 = 0
22
23 var t1: i64 = 0
24 if vd_nearest(sx, sy, 4, 10, 10) == 0 { if vd_nearest(sx, sy, 4, 90, 10) == 1 { t1 = 1 } }
25 pass = pass + g_row("T1 near (0,0)->0, near (100,0)->1\x00" as *u8, t1)
26
27 var t2: i64 = 0
28 if vd_nearest(sx, sy, 4, 10, 90) == 2 { if vd_nearest(sx, sy, 4, 90, 90) == 3 { t2 = 1 } }
29 pass = pass + g_row("T2 near (0,100)->2, near (100,100)->3\x00" as *u8, t2)
30
31 var t3: i64 = 0
32 if vd_nearest(sx, sy, 4, 50, 50) == 0 { t3 = 1 }
33 pass = pass + g_row("T3 equidistant centre -> first site (0)\x00" as *u8, t3)
34
35 var t4: i64 = 0
36 if vd_nearest(sx, sy, 4, 60, 40) == 1 { t4 = 1 }
37 pass = pass + g_row("T4 (60,40) -> site 1 (nearest (100,0))\x00" as *u8, t4)
38
39 // MIGRATED onto nx_gate_verdict by nx_gate_dry_apply (D001, minimal form): every check
40 // row above is untouched, so the PASS/FAIL vector cannot change; only the hand-rolled
41 // verdict emission is replaced by the ONE shared base class. Proven by nx_gate_migrate verify.
42 let ctr__dry: *i64 = gv_ctr()
43 ctr__dry[0] = pass
44 ctr__dry[1] = 4
45 let rc__dry: i64 = gv_verdict("VIZ-VORONOI-GATE" as *u8, ctr__dry, "4/4 (nearest-site = the Voronoi diagram)" as *u8)
46 sys_exit(rc__dry)
47 return rc__dry
48}