code wiki / (root) / nx_qwen_extract_gate.nx

nx_qwen_extract_gate.nx source

↩ module page · 47 lines · 1906 B

1// nx_qwen_extract_gate.nx -- unit test for nx_qwen_extract: build a synthetic qabench g[] (1 paragraph, 2 2// sentences, a question), boot Qwen, qwx_extract, print the answer. Proves the module compiles AND the qabench 3// g[] slot contract (4=question, 15/16/17/18=sentence bytes/off/len/para, 19=ns) works end-to-end BEFORE wiring 4// into the large/contended nx_qabench. Liar-kill: the answer must contain "Miller". license_tier: ORIGINAL 5import "nx_syscalls.nx" 6import "nx_qwen_extract.nx" 7 8func qeg_ps(s: *u8) -> i64 { var n: i64=0; while s[n]!=(0 as u8){n=n+1} sys_write(1,s,n); return 0 } 9 10func main(argc: i64, argv: *i64) -> i64 { 11 qeg_ps("=== nx_qwen_extract unit test ===\n" as *u8) 12 let g: *i64 = sys_mmap(64*8) as *i64 13 let sb: *u8 = sys_mmap(512) 14 let s0: *u8 = "Von Miller forced four fumbles for the Broncos in the 2015 season." as *u8 15 let s1: *u8 = "The Denver Broncos won Super Bowl 50 over the Carolina Panthers." as *u8 16 let so: *i64 = sys_mmap(16*8) as *i64 17 let sl: *i64 = sys_mmap(16*8) as *i64 18 let sp: *i64 = sys_mmap(16*8) as *i64 19 var o: i64 = 0 20 var l0: i64 = 0 21 while s0[l0]!=(0 as u8) { sb[o]=s0[l0]; o=o+1; l0=l0+1 } 22 so[0]=0 23 sl[0]=l0 24 sp[0]=0 25 let base1: i64 = o 26 var l1: i64 = 0 27 while s1[l1]!=(0 as u8) { sb[o]=s1[l1]; o=o+1; l1=l1+1 } 28 so[1]=base1 29 sl[1]=l1 30 sp[1]=0 31 g[15]=sb as i64 32 g[16]=so as i64 33 g[17]=sl as i64 34 g[18]=sp as i64 35 g[19]=2 36 g[4]="Who forced four fumbles for the Broncos in the 2015 season?" as i64 37 38 qeg_ps("loading Qwen (nsv_init)...\n" as *u8) 39 let rc: i64 = qwx_load() 40 if rc != 0 { qeg_ps("qwx_load FAILED rc!=0\n" as *u8); return 1 } 41 let pred: *u8 = sys_mmap(256) 42 let ok: i64 = qwx_extract(g, 0, pred) 43 if ok == 1 { qeg_ps("ok=1 answer=[" as *u8) } else { qeg_ps("ok=0 answer=[" as *u8) } 44 qeg_ps(pred) 45 qeg_ps("]\n" as *u8) 46 return 0 47}