code wiki / (root) / nx_antibody_test.nx

nx_antibody_test.nx source

↩ module page · 85 lines · 3245 B

1// nx_antibody_test.nx -- smoke for nx_antibody. 2 3import "nx_syscalls.nx" 4import "nx_pamp.nx" 5import "nx_antibody.nx" 6 7func main() -> i64 { 8 // 1: state enum sealed 9 if NX_AB_ST_N_STATES != 3 { return 1 } 10 if nx_ab_vd_state_is_valid(NX_AB_ST_NAIVE) != 1 { return 2 } 11 if nx_ab_vd_state_is_valid(NX_AB_ST_MEMORY) != 1 { return 3 } 12 if nx_ab_vd_state_is_valid(3) != 0 { return 4 } 13 14 // 2: construction 15 let arr: *NxAntibodyArray = nx_antibody_array_new(16) 16 if arr.capacity != 16 { return 5 } 17 if arr.count != 0 { return 6 } 18 19 // 3: generate first antibody from a pamp hit 20 let idx0: nx_int = nx_antibody_generate(arr, 21 NX_PAMP_TROJAN_SOURCE_HOMOGLYPH, 0x12345, 921, 1000) 22 if idx0 != 0 { return 7 } 23 if arr.count != 1 { return 8 } 24 25 let ab0: *NxAntibody = (arr.antibodies as i64 + 0 * 56) as *NxAntibody 26 if ab0.kind != NX_PAMP_TROJAN_SOURCE_HOMOGLYPH { return 9 } 27 if ab0.affinity_q10 != 921 { return 10 } 28 if ab0.state != NX_AB_ST_NAIVE { return 11 } 29 if ab0.hit_count != 0 { return 12 } 30 31 // 4: match misses on unknown signature 32 if nx_antibody_match(arr, 33 NX_PAMP_TROJAN_SOURCE_HOMOGLYPH, 0x99999) != -1 { return 13 } 34 35 // 5: match hits on known signature 36 let hit: nx_int = nx_antibody_match(arr, 37 NX_PAMP_TROJAN_SOURCE_HOMOGLYPH, 0x12345) 38 if hit != 0 { return 14 } 39 40 // 6: affinity maturation -- bumps hit_count + affinity (capped 1024) 41 nx_antibody_affinity_mature(arr, hit, 2000) 42 if ab0.hit_count != 1 { return 15 } 43 if ab0.affinity_q10 != 972 { return 16 } // 921 + 51 44 45 // 7: after 3 hits + affinity >= 614, state -> MATURE 46 nx_antibody_affinity_mature(arr, 0, 3000) 47 nx_antibody_affinity_mature(arr, 0, 4000) 48 if ab0.hit_count != 3 { return 17 } 49 if ab0.affinity_q10 != 1024 { return 18 } // capped 50 if ab0.state != NX_AB_ST_MATURE { return 19 } 51 52 // 8: after 10 hits + affinity >= 870, state -> MEMORY 53 var i: nx_int = 0 54 while i < 7 { 55 nx_antibody_affinity_mature(arr, 0, 5000 + i) 56 i = i + 1 57 } 58 if ab0.hit_count != 10 { return 20 } 59 if ab0.state != NX_AB_ST_MEMORY { return 21 } 60 61 // 9: federation-readiness predicate 62 if nx_antibody_is_federation_ready(ab0) != 1 { return 22 } 63 64 // Naive low-affinity antibody is NOT federation-ready 65 let idx1: nx_int = nx_antibody_generate(arr, 66 NX_PAMP_ENTROPY_ANOMALY, 0xaaa, 100, 6000) 67 let ab1: *NxAntibody = (arr.antibodies as i64 + (idx1 as i64) * 56) as *NxAntibody 68 if nx_antibody_is_federation_ready(ab1) != 0 { return 23 } 69 70 // 10: count by state 71 if nx_antibody_count_by_state(arr, NX_AB_ST_MEMORY) != 1 { return 24 } 72 if nx_antibody_count_by_state(arr, NX_AB_ST_NAIVE) != 1 { return 25 } 73 if nx_antibody_count_by_state(arr, NX_AB_ST_MATURE) != 0 { return 26 } 74 75 // 11: total hits across all antibodies 76 if nx_antibody_total_hits(arr) != 10 { return 27 } // ab0 only 77 78 // 12: full-array refuses new 79 let small: *NxAntibodyArray = nx_antibody_array_new(2) 80 nx_antibody_generate(small, NX_PAMP_NONE, 1, 100, 1000) 81 nx_antibody_generate(small, NX_PAMP_NONE, 2, 100, 1000) 82 if nx_antibody_generate(small, NX_PAMP_NONE, 3, 100, 1000) != -1 { return 28 } 83 84 return 0 85}