nx_breast_drape_pose_test.nx source
↩ module page · 42 lines · 1836 B
1import "nx_syscalls.nx"
2import "nx_breast_drape_pose.nx"
3
4func main() -> i64 {
5 let result: *i64 = (sys_mmap(NX_DRAPE_RES_FIELDS * 8 + 16)) as *i64
6
7 // T1: Image #46 scenario — LEANING_FORWARD pose but breast shape is
8 // standing-teardrop (height=120, width=110, centroid offset=72).
9 // aspect = 120*1024/110 = 1117 (in standing range, NOT leaning)
10 // centroid = 72*1024/120 = 614 (high, NOT pendant)
11 // Expected for leaning: aspect 1331+, centroid 768+
12 nx_breast_drape_score(120, 110, 72,
13 NX_DRAPE_POSE_LEANING_FORWARD, result)
14 let v1: i64 = result[NX_DRAPE_RES_VERDICT]
15 if v1 == NX_DRAPE_VERDICT_NATURAL { return 1 }
16
17 // T2: Proper pendant for leaning forward: height=180, width=110, centroid=144.
18 // aspect = 180*1024/110 = 1676 (in leaning range)
19 // centroid = 144*1024/180 = 819 (in leaning range)
20 nx_breast_drape_score(180, 110, 144,
21 NX_DRAPE_POSE_LEANING_FORWARD, result)
22 let v2: i64 = result[NX_DRAPE_RES_VERDICT]
23 if v2 != NX_DRAPE_VERDICT_NATURAL { return 10 }
24 let composite2: i64 = result[NX_DRAPE_RES_COMPOSITE]
25 if composite2 < 768 { return 11 }
26
27 // T3: Lying back — wider than tall expected.
28 // height=80, width=110, centroid=40 -> aspect=744, centroid=512.
29 nx_breast_drape_score(80, 110, 40,
30 NX_DRAPE_POSE_LAYING_BACK, result)
31 let v3: i64 = result[NX_DRAPE_RES_VERDICT]
32 if v3 != NX_DRAPE_VERDICT_NATURAL { return 20 }
33
34 // T4: Standing teardrop classic — height=130, width=110, centroid=85.
35 // aspect=1210, centroid=669.
36 nx_breast_drape_score(130, 110, 85,
37 NX_DRAPE_POSE_STANDING_FACING, result)
38 let v4: i64 = result[NX_DRAPE_RES_VERDICT]
39 if v4 != NX_DRAPE_VERDICT_NATURAL { return 30 }
40
41 return 0
42}