code wiki / (root) / nx_readiness_test.nx

nx_readiness_test.nx source

↩ module page · 47 lines · 1998 B

1// nx_readiness_test.nx -- smoke for nx_readiness. Proves TRL/MRL validity, 2// definitions, gap analysis, next-rung advancement, the hardware-rung 3// guidance, and the market-readiness verdicts for software vs hardware. 4// Exit code = failed assertion number; 0 = all pass. 5 6import "nx_syscalls.nx" 7import "nx_readiness.nx" 8 9func main() -> i64 { 10 // --- validity --- 11 if rd_trl_valid(3) != 1 { return 1 } 12 if rd_trl_valid(0) != 0 { return 2 } 13 if rd_trl_valid(10) != 0 { return 3 } 14 if rd_mrl_valid(10) != 1 { return 4 } 15 if rd_mrl_valid(11) != 0 { return 5 } 16 17 // --- gap + advancement --- 18 if rd_gap(3, 9) != 6 { return 6 } 19 if rd_gap(9, 9) != 0 { return 7 } 20 if rd_gap(9, 3) != 0 { return 8 } // never negative 21 if rd_next_trl(3) != 4 { return 9 } 22 if rd_next_trl(9) != 9 { return 10 } // capped 23 if rd_trl_to_market(3) != 6 { return 11 } 24 if rd_mrl_to_market(2) != 8 { return 12 } 25 26 // --- market-readiness verdicts --- 27 if rd_market_entry_ready(RD_SOFTWARE, 8, 0) != 1 { return 13 } // deployed software 28 if rd_market_entry_ready(RD_SOFTWARE, 7, 0) != 0 { return 14 } 29 if rd_market_entry_ready(RD_HARDWARE, 7, 8) != 1 { return 15 } // op prototype + pilot line 30 if rd_market_entry_ready(RD_HARDWARE, 7, 5) != 0 { return 16 } // no pilot line yet 31 if rd_market_entry_ready(RD_HARDWARE, 3, 2) != 0 { return 17 } // our water system today 32 if rd_full_market(RD_SOFTWARE, 9, 0) != 1 { return 18 } 33 if rd_full_market(RD_HARDWARE, 9, 9) != 1 { return 19 } 34 if rd_full_market(RD_HARDWARE, 9, 8) != 0 { return 20 } 35 36 // --- definitions + exit criteria + hardware rung are non-empty --- 37 let n3: *u8 = rd_trl_name(3) 38 if n3[0] == (0 as u8) { return 21 } 39 let e4: *u8 = rd_trl_exit(4) 40 if e4[0] == (0 as u8) { return 22 } 41 let m5: *u8 = rd_mrl_name(5) 42 if m5[0] == (0 as u8) { return 23 } 43 let hr: *u8 = rd_next_hardware_rung(3) 44 if hr[0] == (0 as u8) { return 24 } 45 46 return 0 47}