code wiki / _hdl_build / nx_viz_color_gate.nx
nx_viz_color_gate.nx source
↩ module page · 49 lines · 2306 B
1// nx_viz_color_gate.nx -- REFEREE for the color layer (HSL->RGB KAT against known landmark colors).
2// hsl(0,100,50)=FF0000 hsl(120,100,50)=00FF00 hsl(240,100,50)=0000FF hsl(60,100,50)=FFFF00
3// hsl(0,0,50)=7F7F7F (gray) + categorical palette gives DISTINCT colors
4// GREEN iff all. Sovereign: nx_viz_color + nx_syscalls. license_tier: ORIGINAL
5import "nx_viz_color.nx"
6import "nx_syscalls.nx"
7import "nx_gate_verdict.nx"
8
9func 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 }
10func g_row(name: *u8, ok: i64) -> i64 {
11 if ok == 1 { g_w(" PASS " as *u8) }
12 if ok != 1 { g_w(" FAIL " as *u8) }
13 g_w(name); g_w("\n" as *u8)
14 return ok
15}
16
17func main() -> i64 {
18 g_w("viz-color gate (HSL->RGB, integer permil)\n" as *u8)
19 var pass: i64 = 0
20
21 var t1: i64 = 0
22 if vc_hsl_rgb(0, 1000, 500) == 16711680 { t1 = 1 }
23 pass = pass + g_row("T1 hsl(0,100,50) = FF0000 red\x00" as *u8, t1)
24 var t2: i64 = 0
25 if vc_hsl_rgb(120, 1000, 500) == 65280 { t2 = 1 }
26 pass = pass + g_row("T2 hsl(120,100,50) = 00FF00 green\x00" as *u8, t2)
27 var t3: i64 = 0
28 if vc_hsl_rgb(240, 1000, 500) == 255 { t3 = 1 }
29 pass = pass + g_row("T3 hsl(240,100,50) = 0000FF blue\x00" as *u8, t3)
30 var t4: i64 = 0
31 if vc_hsl_rgb(60, 1000, 500) == 16776960 { t4 = 1 }
32 pass = pass + g_row("T4 hsl(60,100,50) = FFFF00 yellow\x00" as *u8, t4)
33 var t5: i64 = 0
34 if vc_hsl_rgb(0, 0, 500) == 8355711 { t5 = 1 }
35 pass = pass + g_row("T5 hsl(0,0,50) = 7F7F7F gray\x00" as *u8, t5)
36 var t6: i64 = 0
37 if vc_categorical(0, 3) != vc_categorical(1, 3) { if vc_categorical(1, 3) != vc_categorical(2, 3) { t6 = 1 } }
38 pass = pass + g_row("T6 categorical palette -> distinct colors\x00" as *u8, t6)
39
40 // MIGRATED onto nx_gate_verdict by nx_gate_dry_apply (D001, minimal form): every check
41 // row above is untouched, so the PASS/FAIL vector cannot change; only the hand-rolled
42 // verdict emission is replaced by the ONE shared base class. Proven by nx_gate_migrate verify.
43 let ctr__dry: *i64 = gv_ctr()
44 ctr__dry[0] = pass
45 ctr__dry[1] = 6
46 let rc__dry: i64 = gv_verdict("VIZ-COLOR-GATE" as *u8, ctr__dry, "6/6 (HSL->RGB + categorical palette, bits-up)" as *u8)
47 sys_exit(rc__dry)
48 return rc__dry
49}