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}