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}