nx_eroticism_ladder_test.nx source
↩ module page · 78 lines · 3750 B
1import "nx_syscalls.nx"
2import "nx_eroticism_ladder.nx"
3
4func main() -> i64 {
5 let result: *i64 = (sys_mmap(NX_EROS_RES_FIELDS * 8 + 16)) as *i64
6
7 // T1: arousal 0.85 (high) declared, measured fully dressed modest = SEVERE_UNDERSHOOT.
8 nx_eros_validate(870,
9 NX_EROS_NUDITY_FULLY_DRESSED, NX_EROS_PUSSY_HIDDEN,
10 NX_EROS_POSE_MODEST,
11 NX_EROS_PENETRATION_NONE, 0, result)
12 let v1: i64 = result[NX_EROS_RES_VERDICT]
13 if v1 != NX_EROS_VERDICT_SEVERE_UNDERSHOOT { return 1 }
14 let m1: i64 = result[NX_EROS_RES_MEASURED_RANK]
15 if m1 != NX_EROS_RANK_MODEST_NEUTRAL { return 2 }
16 let e1: i64 = result[NX_EROS_RES_EXPECTED_RANK]
17 if e1 != NX_EROS_RANK_ACTIVE_PENETRATION { return 3 }
18
19 // T2: arousal 0.85 declared, measured PRESENTING_FOR_PENETRATION = UNDERSHOOT (-1).
20 nx_eros_validate(870,
21 NX_EROS_NUDITY_FULL_NUDE, NX_EROS_PUSSY_DETAILED,
22 NX_EROS_POSE_PRESENTING,
23 NX_EROS_PENETRATION_NONE, 0, result)
24 let v2: i64 = result[NX_EROS_RES_VERDICT]
25 if v2 != NX_EROS_VERDICT_UNDERSHOOT { return 10 }
26 let m2: i64 = result[NX_EROS_RES_MEASURED_RANK]
27 if m2 != NX_EROS_RANK_PRESENTING_FOR_PENETRATION { return 11 }
28
29 // T3: arousal 0.85, measured ACTIVE_PENETRATION = MATCH.
30 nx_eros_validate(870,
31 NX_EROS_NUDITY_FULL_NUDE, NX_EROS_PUSSY_DETAILED,
32 NX_EROS_POSE_PRESENTING,
33 NX_EROS_PENETRATION_VISIBLE, 1, result)
34 let v3: i64 = result[NX_EROS_RES_VERDICT]
35 if v3 != NX_EROS_VERDICT_MATCH { return 20 }
36
37 // T4: arousal 0.2 declared (low), measured SUGGESTIVE_NUDE = SEVERE_OVERSHOOT.
38 nx_eros_validate(200,
39 NX_EROS_NUDITY_FULL_NUDE, NX_EROS_PUSSY_HIDDEN,
40 NX_EROS_POSE_SUGGESTIVE,
41 NX_EROS_PENETRATION_NONE, 0, result)
42 let v4: i64 = result[NX_EROS_RES_VERDICT]
43 if v4 != NX_EROS_VERDICT_SEVERE_OVERSHOOT { return 30 }
44
45 // T5: arousal 0.5 declared, measured ARTISTIC_NUDE = MATCH.
46 nx_eros_validate(500,
47 NX_EROS_NUDITY_FULL_NUDE, NX_EROS_PUSSY_HIDDEN,
48 NX_EROS_POSE_NEUTRAL,
49 NX_EROS_PENETRATION_NONE, 0, result)
50 let v5: i64 = result[NX_EROS_RES_VERDICT]
51 if v5 != NX_EROS_VERDICT_MATCH { return 40 }
52
53 // T6: undershoot corrective phrases (T1 scenario).
54 nx_eros_validate(870,
55 NX_EROS_NUDITY_FULLY_DRESSED, NX_EROS_PUSSY_HIDDEN,
56 NX_EROS_POSE_MODEST,
57 NX_EROS_PENETRATION_NONE, 0, result)
58 let phrases: *i64 = (sys_mmap(16 * 8 + 16)) as *i64
59 let n_phrases: i64 = nx_eros_corrective_phrases(result,
60 NX_EROS_NUDITY_FULLY_DRESSED,
61 NX_EROS_PUSSY_HIDDEN,
62 NX_EROS_POSE_MODEST,
63 NX_EROS_PENETRATION_NONE, 0,
64 phrases)
65 if n_phrases < 3 { return 50 } // expect at least penetration+pussy+nudity hints
66
67 // T7: top-of-ladder edge case — arousal 1024 (max) expects rank 10.
68 nx_eros_validate(1024,
69 NX_EROS_NUDITY_FULL_NUDE, NX_EROS_PUSSY_DETAILED,
70 NX_EROS_POSE_PRESENTING,
71 NX_EROS_PENETRATION_VISIBLE, 3, result)
72 let v7: i64 = result[NX_EROS_RES_VERDICT]
73 if v7 != NX_EROS_VERDICT_MATCH { return 60 }
74 let m7: i64 = result[NX_EROS_RES_MEASURED_RANK]
75 if m7 != NX_EROS_RANK_ACTIVE_PENETRATION_WITH_RESPONSE { return 61 }
76
77 return 0
78}