code wiki / (root) / nx_glute_aesthetic_composite_test.nx

nx_glute_aesthetic_composite_test.nx source

↩ module page · 60 lines · 2772 B

1import "nx_syscalls.nx" 2import "nx_glute_aesthetic_composite.nx" 3 4func main() -> i64 { 5 let result: *i64 = (sys_mmap(NX_GLUTE_AES_RES_FIELDS * 8 + 16)) as *i64 6 7 // T1: S-CLASS heart-peach target — all axes near 1024. 8 nx_glute_aesthetic_composite(950, 920, 960, 900, 880, result) 9 let v1: i64 = result[NX_GLUTE_AES_RES_VERDICT] 10 let c1: i64 = result[NX_GLUTE_AES_RES_COMPOSITE_Q10] 11 if v1 != NX_GLUTE_AES_S_CLASS { return 1 } 12 // composite = (950*30 + 920*25 + 960*20 + 900*15 + 880*10) / 100 13 // = (28500 + 23000 + 19200 + 13500 + 8800) / 100 = 930 14 if c1 < 920 { return 2 } 15 if c1 > 940 { return 3 } 16 17 // T2: MATCHES_TARGET — heart shape good but slight cellulite. 18 nx_glute_aesthetic_composite(800, 750, 500, 850, 800, result) 19 let v2: i64 = result[NX_GLUTE_AES_RES_VERDICT] 20 // composite = (800*30 + 750*25 + 500*20 + 850*15 + 800*10) / 100 21 // = (24000 + 18750 + 10000 + 12750 + 8000) / 100 = 735 22 if v2 != NX_GLUTE_AES_MATCHES_TARGET { return 10 } 23 let f2: i64 = result[NX_GLUTE_AES_RES_FAILING_AXIS] 24 if f2 != NX_GLUTE_AES_AXIS_ROUND { return 11 } 25 26 // T3: APPROACHING — flat shape, low lift. 27 nx_glute_aesthetic_composite(400, 350, 700, 600, 650, result) 28 let v3: i64 = result[NX_GLUTE_AES_RES_VERDICT] 29 // composite = (400*30 + 350*25 + 700*20 + 600*15 + 650*10) / 100 30 // = (12000 + 8750 + 14000 + 9000 + 6500) / 100 = 502 31 if v3 != NX_GLUTE_AES_APPROACHING { return 20 } 32 let f3: i64 = result[NX_GLUTE_AES_RES_FAILING_AXIS] 33 // 350 is the lowest score → AXIS_LIFT 34 if f3 != NX_GLUTE_AES_AXIS_LIFT { return 21 } 35 36 // T4: OFF_TARGET — flat saggy asymmetric. 37 nx_glute_aesthetic_composite(200, 150, 300, 200, 250, result) 38 let v4: i64 = result[NX_GLUTE_AES_RES_VERDICT] 39 // composite = (200*30 + 150*25 + 300*20 + 200*15 + 250*10) / 100 40 // = (6000 + 3750 + 6000 + 3000 + 2500) / 100 = 212 41 if v4 != NX_GLUTE_AES_OFF_TARGET { return 30 } 42 43 // T5: Mixed — strong shape but bad symmetry pulls verdict. 44 nx_glute_aesthetic_composite(950, 900, 850, 100, 800, result) 45 let v5: i64 = result[NX_GLUTE_AES_RES_VERDICT] 46 let f5: i64 = result[NX_GLUTE_AES_RES_FAILING_AXIS] 47 if f5 != NX_GLUTE_AES_AXIS_SYMMETRY { return 40 } 48 // composite = (950*30 + 900*25 + 850*20 + 100*15 + 800*10) / 100 49 // = (28500 + 22500 + 17000 + 1500 + 8000) / 100 = 775 50 if v5 != NX_GLUTE_AES_MATCHES_TARGET { return 41 } 51 52 // T6: All-zero input. 53 nx_glute_aesthetic_composite(0, 0, 0, 0, 0, result) 54 let v6: i64 = result[NX_GLUTE_AES_RES_VERDICT] 55 let c6: i64 = result[NX_GLUTE_AES_RES_COMPOSITE_Q10] 56 if v6 != NX_GLUTE_AES_OFF_TARGET { return 50 } 57 if c6 != 0 { return 51 } 58 59 return 0 60}