nx_pamp_meta_test.nx source
↩ module page · 62 lines · 2942 B
1// nx_pamp_meta_test.nx -- smoke for nx_pamp_meta.
2
3import "nx_syscalls.nx"
4import "nx_pamp_meta.nx"
5
6func main() -> i64 {
7 // 1: channel + verdict enums sealed
8 if NX_PCM_N_CHANNELS != 4 { return 1 }
9 if NX_PCM_N_VERDICTS != 4 { return 2 }
10 if nx_pcm_channel_is_valid(NX_PCM_BYTE_DISTRIBUTION) != 1 { return 3 }
11 if nx_pcm_channel_is_valid(4) != 0 { return 4 }
12 if nx_pcm_verdict_is_valid(NX_PCM_CONSISTENT) != 1 { return 5 }
13 if nx_pcm_verdict_is_valid(4) != 0 { return 6 }
14
15 // 2: all 4 channels valid, all near 900 (legit) -> CONSISTENT
16 let r_legit: *NxChannelReading = nx_pcm_reading_new(900, 920, 910, 905)
17 if r_legit.n_channels_valid != 4 { return 7 }
18 if nx_pcm_verdict(r_legit) != NX_PCM_CONSISTENT { return 8 }
19 if nx_pcm_deception_q10(r_legit) >= 200 { return 9 }
20
21 // 3: all 4 channels valid, all near 100 (clearly fake) -> CONSISTENT
22 // (sophisticated detection: even when all channels agree it's
23 // fake, that's CONSISTENT -- no DECEPTION; the caller's pamp
24 // would have already caught it)
25 let r_attack: *NxChannelReading = nx_pcm_reading_new(80, 90, 100, 70)
26 if nx_pcm_verdict(r_attack) != NX_PCM_CONSISTENT { return 10 }
27
28 // 4: 3 channels say legit (~900), 1 says fake (50) -> HIGH_DECEPTION
29 // Classic sophisticated mimic that fools all but one channel.
30 let r_mimic: *NxChannelReading = nx_pcm_reading_new(900, 920, 50, 905)
31 let max_dev: nx_int = nx_pcm_max_disagreement_q10(r_mimic)
32 if max_dev < 500 { return 11 } // must exceed HIGH threshold
33 if nx_pcm_verdict(r_mimic) != NX_PCM_HIGH_DECEPTION { return 12 }
34 if nx_pcm_deception_q10(r_mimic) < 500 { return 13 }
35
36 // 5: moderate disagreement (200..500 range) -> SUSPICIOUS
37 let r_susp: *NxChannelReading = nx_pcm_reading_new(800, 600, 400, 750)
38 let max_dev2: nx_int = nx_pcm_max_disagreement_q10(r_susp)
39 if max_dev2 < 200 { return 14 }
40 if max_dev2 > 500 { return 15 }
41 if nx_pcm_verdict(r_susp) != NX_PCM_SUSPICIOUS { return 16 }
42
43 // 6: insufficient channels -> UNKNOWN
44 let r_one: *NxChannelReading = nx_pcm_reading_new(900, -1, -1, -1)
45 if r_one.n_channels_valid != 1 { return 17 }
46 if nx_pcm_verdict(r_one) != NX_PCM_UNKNOWN { return 18 }
47 if nx_pcm_deception_q10(r_one) != 0 { return 19 }
48
49 // 7: zero channels -> UNKNOWN
50 let r_none: *NxChannelReading = nx_pcm_reading_new(-1, -1, -1, -1)
51 if r_none.n_channels_valid != 0 { return 20 }
52 if nx_pcm_verdict(r_none) != NX_PCM_UNKNOWN { return 21 }
53
54 // 8: 2 channels with strong disagreement -> HIGH_DECEPTION
55 // (smallest valid number of channels still catches deception).
56 // Channels 1024 and 0: mean=512, max_dev=512 > HIGH threshold 500.
57 let r_two: *NxChannelReading = nx_pcm_reading_new(1024, 0, -1, -1)
58 if r_two.n_channels_valid != 2 { return 22 }
59 if nx_pcm_verdict(r_two) != NX_PCM_HIGH_DECEPTION { return 23 }
60
61 return 0
62}