code wiki / _hdl_build / nx_referee_test.nx
nx_referee_test.nx source
↩ module page · 71 lines · 5372 B
1// nx_referee_test.nx -- a FAIR head-to-head, adjudicated. Competitor A = the TEAM's BM25 (computed
2// live), Competitor B = a fixed "Claude" answer set. Both are scored by the Referee against a
3// GROUND-TRUTH ORACLE on a hidden query set -- neither competitor grades itself. The Referee also
4// FLAGS the earlier nx_race_vs_claude setup as INVALID, because there the competitor (Claude) supplied
5// its own accuracies (self-grading). Exit 0 on 7/7. license_tier: ORIGINAL
6
7import "nx_referee.nx"
8import "nx_library_search.nx" // ls_best_bm25 -- the team competitor, computed live
9import "nx_research_extract.nx" // re_strlen
10import "nx_syscalls.nx"
11
12func ft_puts(s: *u8) -> i64 { var n: i64 = 0; while s[n] != (0 as u8) { n = n + 1 } sys_write(1, s, n); return 0 }
13func ft_num(v: i64) -> i64 { let bb: *u8 = sys_mmap(28); var m: i64=v; if m<0 {m=0-m; sys_write(1,"-" as *u8,1)}; 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 }
14
15func main() -> i64 {
16 ft_puts("=== REFEREE: fair head-to-head, ground-truth oracle, scorer separated ===\n" as *u8)
17 let REFEREE: i64 = 99; let TEAM: i64 = 1; let CLAUDE: i64 = 2
18
19 // corpus + hidden query set with a GROUND-TRUTH oracle
20 let N: i64 = 4
21 let d0: *u8 = "injury injury" as *u8
22 let d1: *u8 = "injury injury injury f f f f f f f f f" as *u8
23 let d2: *u8 = "settlement settlement filler" as *u8
24 let d3: *u8 = "court court court" as *u8
25 let ptrs: *i64 = sys_mmap(8*8) as *i64; let lens: *i64 = sys_mmap(8*8) as *i64
26 ptrs[0]=d0 as i64; ptrs[1]=d1 as i64; ptrs[2]=d2 as i64; ptrs[3]=d3 as i64
27 var i: i64 = 0; while i < N { lens[i] = re_strlen(ptrs[i] as *u8); i = i + 1 }
28
29 let Q: i64 = 3
30 let oracle: *i64 = sys_mmap(8*8) as *i64; oracle[0]=0; oracle[1]=3; oracle[2]=2 // GT best doc per query
31
32 // Competitor A = TEAM BM25, computed LIVE (not self-reported)
33 let a_out: *i64 = sys_mmap(8*8) as *i64
34 let q0: *i64 = sys_mmap(4*8) as *i64; q0[0]="injury" as *u8 as i64
35 let q1: *i64 = sys_mmap(4*8) as *i64; q1[0]="court" as *u8 as i64
36 let q2: *i64 = sys_mmap(4*8) as *i64; q2[0]="settlement" as *u8 as i64
37 a_out[0]=ls_best_bm25(ptrs,lens,N,q0,1); a_out[1]=ls_best_bm25(ptrs,lens,N,q1,1); a_out[2]=ls_best_bm25(ptrs,lens,N,q2,1)
38 // Competitor B = a fixed "Claude" answer set (missed Q0)
39 let b_out: *i64 = sys_mmap(8*8) as *i64; b_out[0]=1; b_out[1]=3; b_out[2]=2
40
41 let sa: i64 = ref_score(a_out, oracle, Q)
42 let sb: i64 = ref_score(b_out, oracle, Q)
43 let sa2: i64 = ref_score(a_out, oracle, Q) // deterministic: re-score -> same
44 var deterministic: i64 = 0; if sa == sa2 { deterministic = 1 }
45
46 let fair_self: i64 = ref_no_self_grade(REFEREE, TEAM, CLAUDE) // 1 = separated (fair)
47 let biased_self: i64 = ref_no_self_grade(CLAUDE, TEAM, CLAUDE) // 0 = self-grade (the old race)
48 let valid_fair: i64 = ref_test_valid(fair_self, ref_hidden(0), 1, deterministic)
49 let valid_biased: i64 = ref_test_valid(biased_self, ref_hidden(0), 1, deterministic)
50 let vsmall: i64 = ref_verdict(sa, sb, 2) // margin 1 on 3 cases -> not decisive
51 let vscale: i64 = ref_verdict(30, 20, 2) // decisive at scale
52
53 ft_puts(" TEAM(BM25) outputs=[" as *u8); i=0; while i<Q { ft_num(a_out[i]); if i<Q-1 { ft_puts("," as *u8) } i=i+1 } ft_puts("] score=" as *u8); ft_num(sa); ft_puts("/3 vs oracle\n" as *u8)
54 ft_puts(" CLAUDE outputs=[1,3,2] score=" as *u8); ft_num(sb); ft_puts("/3 vs oracle (deterministic=" as *u8); ft_num(deterministic); ft_puts(")\n" as *u8)
55 ft_puts(" fairness: scorer-separated=" as *u8); ft_num(fair_self); ft_puts(" self-grade-detected(old race)=" as *u8); ft_num(biased_self); ft_puts(" valid(fair)=" as *u8); ft_num(valid_fair); ft_puts(" valid(self-graded)=" as *u8); ft_num(valid_biased); ft_puts("\n" as *u8)
56 ft_puts(" verdict 3v2 on 3 cases = " as *u8); ft_num(vsmall); ft_puts(" (0=TIE, too few cases) 30v20 at scale = " as *u8); ft_num(vscale); ft_puts(" (1=A_WINS, decisive)\n" as *u8)
57
58 let r: *i64 = sys_mmap(8*8) as *i64
59 r[0] = 0; if sa == 3 { r[0] = 1 } // team scored objectively vs oracle
60 r[1] = 0; if sb == 2 { r[1] = 1 } // claude scored objectively vs oracle
61 r[2] = 0; if deterministic == 1 { r[2] = 1 } // re-scoring is identical (no flaky harness)
62 r[3] = 0; if fair_self == 1 { if biased_self == 0 { r[3] = 1 } } // separation gate works
63 r[4] = 0; if valid_fair == 1 { if valid_biased == 0 { r[4] = 1 } } // self-graded race flagged INVALID
64 r[5] = 0; if vsmall == REF_TIE { r[5] = 1 } // no overclaim on a 1-point margin / 3 cases
65 r[6] = 0; if vscale == REF_A_WINS { r[6] = 1 } // decisive only at a real margin
66 var pass: i64 = 0; i = 0
67 while i < 7 { pass = pass + r[i]; i = i + 1 }
68 ft_puts("----\n passed " as *u8); ft_num(pass); ft_puts("/7\n" as *u8)
69 if pass == 7 { ft_puts(" UNBIASED: scored vs a ground-truth oracle, scorer separated from competitors, deterministic, winner only when decisive. The self-assessed race is correctly flagged INVALID -- this is how head-to-heads run now.\n" as *u8); sys_exit(0); return 0 }
70 ft_puts(" FAIL\n" as *u8); sys_exit(1); return 1
71}