nx_final_quality_test.nx source
↩ module page · 56 lines · 2273 B
1import "nx_syscalls.nx"
2import "nx_final_quality.nx"
3
4func main() -> i64 {
5 let result: *i64 = (sys_mmap(NX_FINAL_RES_FIELDS * 8 + 16)) as *i64
6
7 // T1: S_CLASS across all axes.
8 nx_final_quality(900, 870, 880, 920, 850, 890, 950, result)
9 let v1: i64 = result[NX_FINAL_RES_VERDICT]
10 let c1: i64 = result[NX_FINAL_RES_COMPOSITE]
11 // sum = 900*20 + 870*15 + 880*15 + 920*15 + 850*10 + 890*15 + 950*10 = 88150
12 // wsum = 100. composite = 881. S_CLASS.
13 if v1 != NX_FINAL_S_CLASS { return 1 }
14 if c1 < 870 { return 2 }
15 if c1 > 895 { return 3 }
16
17 // T2: SHIPPABLE — composite 650.
18 nx_final_quality(700, 650, 600, 680, 600, 650, 700, result)
19 let v2: i64 = result[NX_FINAL_RES_VERDICT]
20 if v2 != NX_FINAL_SHIPPABLE { return 10 }
21
22 // T3: PARTIAL — composite 500.
23 nx_final_quality(500, 500, 500, 500, 500, 500, 500, result)
24 let v3: i64 = result[NX_FINAL_RES_VERDICT]
25 if v3 != NX_FINAL_PARTIAL { return 20 }
26
27 // T4: FAILED — composite below 410.
28 nx_final_quality(300, 300, 300, 300, 300, 300, 300, result)
29 let v4: i64 = result[NX_FINAL_RES_VERDICT]
30 if v4 != NX_FINAL_FAILED { return 30 }
31
32 // T5: Topology hard-downgrade. High composite but body topology severe.
33 nx_final_quality(900, 900, 900, 900, 900, 900, 100, result)
34 let v5: i64 = result[NX_FINAL_RES_VERDICT]
35 // composite without topology = 900. With topology 100*10=1000 contribution out of
36 // 900*90 + 100*10 = 81000+1000 / 100 = 820. That would be S_CLASS.
37 // But hard-downgrade triggers because topology_q10 (100) < 256.
38 // S_CLASS -> PARTIAL (single downgrade step from chain).
39 if v5 == NX_FINAL_S_CLASS { return 40 }
40
41 // T6: Skip vulva (-1) — caller indicates not visible. Still works.
42 nx_final_quality(800, 800, 800, -1, 800, 800, 900, result)
43 let v6: i64 = result[NX_FINAL_RES_VERDICT]
44 if v6 < NX_FINAL_SHIPPABLE { return 50 }
45
46 // T7: Failing axis selection.
47 nx_final_quality(800, 800, 200, 800, 800, 800, 800, result)
48 let f7: i64 = result[NX_FINAL_RES_FAIL_AXIS]
49 if f7 != NX_FINAL_AXIS_EROTICISM { return 60 }
50
51 // T8: All axes -1 → error return.
52 let rc: i64 = nx_final_quality(-1, -1, -1, -1, -1, -1, -1, result)
53 if rc == 0 { return 70 }
54
55 return 0
56}