code wiki / _hdl_build / nx_critic2_test.nx
nx_critic2_test.nx source
↩ module page · 52 lines · 4102 B
1// nx_critic2_test.nx -- the Critic's M2 upgrade (growth loop pick #3): graded counter-strength, a
2// settledness spectrum, and a proactive refutation-hunt trigger. Proves it no longer treats all
3// counters alike (a weak counter doesn't nuke a belief), grades how-settled on a spectrum, and
4// actively QUEUES blind spots for the Researcher to attack. Exit 0 if all hold. license_tier: ORIGINAL
5
6import "nx_critic.nx"
7import "nx_syscalls.nx"
8
9func ct_puts(s: *u8) -> i64 { var n: i64 = 0; while s[n] != (0 as u8) { n = n + 1 } sys_write(1, s, n); return 0 }
10func ct_num(v: i64) -> i64 { let bb: *u8 = sys_mmap(28); var m: i64=v; if m<0 {m=0-m}; let t: *u8 = sys_mmap(28); var k: i64=0; if m==0 {t[0]=48;k=1}; while m>0 {t[k]=48+(m%10); m=m/10; k=k+1}; var i: i64=0; while i<k {bb[i]=t[k-1-i]; i=i+1}; sys_write(1, bb, k); return 0 }
11func ct_st(s: i64) -> i64 { if s==CRIT_LAW {ct_puts("LAW" as *u8)} if s==CRIT_THEORY {ct_puts("THEORY" as *u8)} if s==CRIT_REFUTED {ct_puts("REFUTED" as *u8)} if s==CRIT_CONTESTED {ct_puts("CONTESTED" as *u8)} return 0 }
12
13func main() -> i64 {
14 ct_puts("=== CRITIC M2: graded counters + settledness spectrum + proactive refutation-hunt ===\n" as *u8)
15 // counter strengths
16 let cs_strong: i64 = crit_counter_strength(3, 3) // Blau-Michaeli: reproduced + independent
17 let cs_mod: i64 = crit_counter_strength(1, 2) // moderate
18 let cs_weak: i64 = crit_counter_strength(1, 1) // anecdotal
19 ct_puts(" counter strength: strong=" as *u8); ct_num(cs_strong); ct_puts(" moderate=" as *u8); ct_num(cs_mod); ct_puts(" weak=" as *u8); ct_num(cs_weak); ct_puts("\n" as *u8)
20
21 // graded verdicts: PSNR(strong counter)->REFUTED ; a moderate counter -> CONTESTED ; clean LAW
22 let v_psnr: i64 = crit_status2(3, cs_strong, 1)
23 let v_cont: i64 = crit_status2(3, cs_mod, 1)
24 let v_law: i64 = crit_status2(3, 0, 1)
25 let v_weak: i64 = crit_status2(3, cs_weak, 1)
26 ct_puts(" PSNR(strong counter) -> " as *u8); ct_st(v_psnr); ct_puts(" moderate-counter -> " as *u8); ct_st(v_cont); ct_puts(" no-counter -> " as *u8); ct_st(v_law); ct_puts(" weak-counter -> " as *u8); ct_st(v_weak); ct_puts("\n" as *u8)
27
28 // settledness spectrum
29 ct_puts(" settledness: solid law=" as *u8); ct_num(crit_settledness(3,0,1)); ct_puts(" PSNR=" as *u8); ct_num(crit_settledness(3,cs_strong,1)); ct_puts(" un-redteamed=" as *u8); ct_num(crit_settledness(2,0,0)); ct_puts("\n" as *u8)
30
31 // proactive refutation-hunt: queue blind spots (reproduced but not red-teamed)
32 let repro: *i64 = sys_mmap(8*8) as *i64; let rt: *i64 = sys_mmap(8*8) as *i64
33 repro[0]=3; rt[0]=1 // settled, red-teamed
34 repro[1]=2; rt[1]=0 // blind spot -> queue
35 repro[2]=1; rt[2]=0 // blind spot -> queue
36 repro[3]=2; rt[3]=1 // red-teamed
37 let queue: *i64 = sys_mmap(8*8) as *i64
38 let qn: i64 = crit_refutation_hunt_queue(4, repro, rt, queue)
39 ct_puts(" refutation-hunt queued " as *u8); ct_num(qn); ct_puts(" blind spots for the Researcher to attack\n" as *u8)
40
41 let r: *i64 = sys_mmap(8*8) as *i64
42 r[0] = 0; if cs_strong == 3 { if cs_mod == 2 { if cs_weak == 1 { r[0] = 1 } } } // graded counter strength
43 r[1] = 0; if v_psnr == CRIT_REFUTED { if v_law == CRIT_LAW { r[1] = 1 } } // strong refutes, clean = law
44 r[2] = 0; if v_cont == CRIT_CONTESTED { if v_weak == CRIT_THEORY { r[2] = 1 } } // moderate->contested, weak->theory (not nuked)
45 r[3] = 0; if crit_settledness(3,0,1) > crit_settledness(3,cs_strong,1) { r[3] = 1 } // settledness spectrum
46 r[4] = 0; if qn == 2 { r[4] = 1 } // proactively queued the 2 blind spots
47 var pass: i64 = 0; var i: i64 = 0
48 while i < 5 { pass = pass + r[i]; i = i + 1 }
49 ct_puts("----\n passed " as *u8); ct_num(pass); ct_puts("/5\n" as *u8)
50 if pass == 5 { ct_puts(" CRITIC LEVELED UP (M1->M2): graded counters (weak != strong), settledness spectrum, proactively hunts its own blind spots. No regression.\n" as *u8); sys_exit(0); return 0 }
51 ct_puts(" FAIL\n" as *u8); sys_exit(1); return 1
52}