code wiki / (root) / nx_flow_state_test.nx

nx_flow_state_test.nx source

↩ module page · 248 lines · 8555 B

1// nx_flow_state_test.nx -- KAT for F1 flow classifier. 2 3import "nx_syscalls.nx" 4import "nx_etg.nx" 5import "nx_flow_state.nx" 6 7func main() -> i64 { 8 // ----- T1 Sealed-enum completeness ----- 9 var i: i64 = 0 10 while i < NX_FLOW_STATE_N { 11 if nx_flow_state_is_valid(i) != 1 { return 1 + i } 12 i = i + 1 13 } 14 if nx_flow_state_is_valid(0 - 1) != 0 { return 100 } 15 if nx_flow_state_is_valid(NX_FLOW_STATE_N) != 0 { return 101 } 16 if nx_flow_state_is_valid(9999) != 0 { return 102 } 17 18 let buf: *u8 = sys_mmap(256) 19 let s: *NxFlowState = buf as *NxFlowState 20 21 // ----- T2 Initial state is NONE with all unsignaled ----- 22 nx_flow_state_init(s, 0xDEADBEEF) 23 if s.verdict != NX_FLOW_STATE_NONE { return 110 } 24 if s.conditions_total != 9 { return 111 } 25 if s.cond_clear_goals != -1 { return 112 } 26 if s.cardinal_paywall_honored != 0 { return 113 } 27 28 // ----- T3 All 9 conditions met -> FLOW ----- 29 nx_flow_state_init(s, 0xDEADBEEF) 30 s.cond_clear_goals = 1 31 s.cond_immediate_feedback = 1 32 s.cond_challenge_balance = 1 33 s.cond_action_merged = 1 34 s.cond_overhead_invisible = 1 35 s.cond_autotelic = 1 36 s.cond_concentration = 1 37 s.cond_control = 1 38 s.cond_cross_arch_parity = 1 39 let r3: i64 = nx_flow_classify(s) 40 if r3 != NX_FLOW_STATE_FLOW { return 120 } 41 if s.conditions_met != 9 { return 121 } 42 43 // ----- T4 7 conditions met -> NEAR_FLOW ----- 44 nx_flow_state_init(s, 0xDEADBEEF) 45 s.cond_clear_goals = 1 46 s.cond_immediate_feedback = 1 47 s.cond_challenge_balance = 1 48 s.cond_action_merged = 1 49 s.cond_overhead_invisible = 1 50 s.cond_autotelic = 1 51 s.cond_concentration = 1 52 s.cond_control = 0 // explicitly not met 53 s.cond_cross_arch_parity = 0 54 let r4: i64 = nx_flow_classify(s) 55 if r4 != NX_FLOW_STATE_NEAR_FLOW { return 130 } 56 if s.conditions_met != 7 { return 131 } 57 58 // ----- T5 5 conditions met -> SLIPPING ----- 59 nx_flow_state_init(s, 0xDEADBEEF) 60 s.cond_clear_goals = 1 61 s.cond_immediate_feedback = 1 62 s.cond_challenge_balance = 1 63 s.cond_action_merged = 1 64 s.cond_overhead_invisible = 1 65 s.cond_autotelic = 0 66 s.cond_concentration = 0 67 s.cond_control = 0 68 s.cond_cross_arch_parity = 0 69 let r5: i64 = nx_flow_classify(s) 70 if r5 != NX_FLOW_STATE_SLIPPING { return 140 } 71 if s.conditions_met != 5 { return 141 } 72 73 // ----- T6 3 conditions met -> NONE ----- 74 nx_flow_state_init(s, 0xDEADBEEF) 75 s.cond_clear_goals = 1 76 s.cond_immediate_feedback = 1 77 s.cond_challenge_balance = 1 78 s.cond_action_merged = 0 79 s.cond_overhead_invisible = 0 80 s.cond_autotelic = 0 81 s.cond_concentration = 0 82 s.cond_control = 0 83 s.cond_cross_arch_parity = 0 84 let r6: i64 = nx_flow_classify(s) 85 if r6 != NX_FLOW_STATE_NONE { return 150 } 86 87 // ----- T7 Cardinal violation -> TILT regardless of condition count ----- 88 nx_flow_state_init(s, 0xDEADBEEF) 89 s.cond_clear_goals = 1 90 s.cond_immediate_feedback = 1 91 s.cond_challenge_balance = 1 92 s.cond_action_merged = 1 93 s.cond_overhead_invisible = 1 94 s.cond_autotelic = 1 95 s.cond_concentration = 1 96 s.cond_control = 1 97 s.cond_cross_arch_parity = 1 98 s.cardinal_paywall_honored = 1 // P11 -- cardinal violation 99 let r7: i64 = nx_flow_classify(s) 100 if r7 != NX_FLOW_STATE_TILT { return 160 } 101 102 // ----- T8 Second-class resource cardinal -> TILT ----- 103 nx_flow_state_init(s, 0xDEADBEEF) 104 s.cond_clear_goals = 1 105 s.cond_immediate_feedback = 1 106 s.cond_challenge_balance = 1 107 s.cond_action_merged = 1 108 s.cond_overhead_invisible = 1 109 s.cond_autotelic = 1 110 s.cond_concentration = 1 111 s.cond_control = 1 112 s.cond_cross_arch_parity = 1 113 s.cardinal_second_class_idle = 1 // P10 114 let r8: i64 = nx_flow_classify(s) 115 if r8 != NX_FLOW_STATE_TILT { return 170 } 116 117 // ----- T9 Single-arch overfit cardinal -> TILT ----- 118 nx_flow_state_init(s, 0xDEADBEEF) 119 s.cond_clear_goals = 1 120 s.cond_immediate_feedback = 1 121 s.cond_challenge_balance = 1 122 s.cond_action_merged = 1 123 s.cond_overhead_invisible = 1 124 s.cond_autotelic = 1 125 s.cond_concentration = 1 126 s.cond_control = 1 127 s.cond_cross_arch_parity = 1 128 s.cardinal_single_arch_overfit = 1 129 let r9: i64 = nx_flow_classify(s) 130 if r9 != NX_FLOW_STATE_TILT { return 180 } 131 132 // ----- T10 Latency spike cardinal -> TILT ----- 133 nx_flow_state_init(s, 0xDEADBEEF) 134 s.cond_clear_goals = 1 135 s.cond_immediate_feedback = 1 136 s.cond_challenge_balance = 1 137 s.cond_action_merged = 1 138 s.cond_overhead_invisible = 1 139 s.cond_autotelic = 1 140 s.cond_concentration = 1 141 s.cond_control = 1 142 s.cond_cross_arch_parity = 1 143 s.cardinal_latency_spike = 1 144 let r10: i64 = nx_flow_classify(s) 145 if r10 != NX_FLOW_STATE_TILT { return 190 } 146 147 // ----- T11 Insufficient signals -> BROKEN ----- 148 nx_flow_state_init(s, 0xDEADBEEF) 149 s.cond_clear_goals = 1 150 s.cond_immediate_feedback = 1 151 s.cond_challenge_balance = 1 152 // remaining 6 conditions left at -1 (unsignaled) 153 let r11: i64 = nx_flow_classify(s) 154 if r11 != NX_FLOW_STATE_BROKEN { return 200 } 155 156 // ----- T12 BROKEN supersedes count-based verdicts ----- 157 // Even if 7 of 8 signaled conditions are met, 1 unsignaled 158 // means we cannot claim NEAR_FLOW honestly. 159 nx_flow_state_init(s, 0xDEADBEEF) 160 s.cond_clear_goals = 1 161 s.cond_immediate_feedback = 1 162 s.cond_challenge_balance = 1 163 s.cond_action_merged = 1 164 s.cond_overhead_invisible = 1 165 s.cond_autotelic = 1 166 s.cond_concentration = 1 167 s.cond_control = 1 168 // cond_cross_arch_parity left -1 169 let r12: i64 = nx_flow_classify(s) 170 if r12 != NX_FLOW_STATE_BROKEN { return 210 } 171 172 // ----- T13 TILT supersedes BROKEN (cardinal violation found 173 // even with insufficient other signals -- the cardinal hit is 174 // substrate-honest definitive) ----- 175 nx_flow_state_init(s, 0xDEADBEEF) 176 s.cardinal_paywall_honored = 1 177 // all conditions still -1 178 let r13: i64 = nx_flow_classify(s) 179 if r13 != NX_FLOW_STATE_TILT { return 220 } 180 181 // ----- T14 Attestation: FLOW -> CONFIRMED outcome ----- 182 nx_flow_state_init(s, 0xDEADBEEF) 183 s.cond_clear_goals = 1 184 s.cond_immediate_feedback = 1 185 s.cond_challenge_balance = 1 186 s.cond_action_merged = 1 187 s.cond_overhead_invisible = 1 188 s.cond_autotelic = 1 189 s.cond_concentration = 1 190 s.cond_control = 1 191 s.cond_cross_arch_parity = 1 192 nx_flow_classify(s) 193 let e_buf: *u8 = sys_mmap(128) 194 let e: *NxEtgEntry = e_buf as *NxEtgEntry 195 let rc14: i64 = nx_flow_attest(s, e, NX_ETG_PROBE_CPU_ISA, 1, 20260520) 196 if rc14 != 0 { return 230 } 197 if e.outcome != NX_ETG_OUTCOME_CONFIRMED { return 231 } 198 if e.claim_value != 9 { return 232 } 199 if e.measurement_value != 9 { return 233 } 200 if s.attestation_hash == 0 { return 234 } 201 202 // ----- T15 Attestation: TILT -> FALSIFIED outcome ----- 203 nx_flow_state_init(s, 0xDEADBEEF) 204 s.cardinal_paywall_honored = 1 205 nx_flow_classify(s) 206 let e15_buf: *u8 = sys_mmap(128) 207 let e15: *NxEtgEntry = e15_buf as *NxEtgEntry 208 let rc15: i64 = nx_flow_attest(s, e15, NX_ETG_PROBE_CPU_ISA, 1, 20260520) 209 if rc15 != 0 { return 240 } 210 if e15.outcome != NX_ETG_OUTCOME_FALSIFIED { return 241 } 211 212 // ----- T16 Attestation determinism: same inputs -> same hash ----- 213 nx_flow_state_init(s, 0xC0DEC0DE) 214 s.cond_clear_goals = 1 215 s.cond_immediate_feedback = 1 216 s.cond_challenge_balance = 1 217 s.cond_action_merged = 1 218 s.cond_overhead_invisible = 1 219 s.cond_autotelic = 1 220 s.cond_concentration = 1 221 s.cond_control = 1 222 s.cond_cross_arch_parity = 1 223 nx_flow_classify(s) 224 let e16a_buf: *u8 = sys_mmap(128) 225 let e16a: *NxEtgEntry = e16a_buf as *NxEtgEntry 226 nx_flow_attest(s, e16a, NX_ETG_PROBE_CPU_ISA, 1, 20260520) 227 let hash_a: i64 = e16a.attestation_hash 228 229 let s2_buf: *u8 = sys_mmap(256) 230 let s2: *NxFlowState = s2_buf as *NxFlowState 231 nx_flow_state_init(s2, 0xC0DEC0DE) 232 s2.cond_clear_goals = 1 233 s2.cond_immediate_feedback = 1 234 s2.cond_challenge_balance = 1 235 s2.cond_action_merged = 1 236 s2.cond_overhead_invisible = 1 237 s2.cond_autotelic = 1 238 s2.cond_concentration = 1 239 s2.cond_control = 1 240 s2.cond_cross_arch_parity = 1 241 nx_flow_classify(s2) 242 let e16b_buf: *u8 = sys_mmap(128) 243 let e16b: *NxEtgEntry = e16b_buf as *NxEtgEntry 244 nx_flow_attest(s2, e16b, NX_ETG_PROBE_CPU_ISA, 1, 20260520) 245 if e16b.attestation_hash != hash_a { return 250 } 246 247 return 0 248}