code wiki / _hdl_build / nx_research_relation_clean_test.nx

nx_research_relation_clean_test.nx source

↩ module page · 60 lines · 3505 B

1// nx_research_relation_clean_test.nx -- KAT gate for rung-3 claim cleanup, using 2// the exact noisy claims measured from the real Wikipedia page. expect_exit: 0. 3 4import "nx_syscalls.nx" 5import "nx_research_extract.nx" 6import "nx_research_relation_clean.nx" 7 8func w(s: *u8) -> i64 { var n: i64 = 0; while s[n] != (0 as u8) { n = n + 1 } sys_write(1, s, n); return 0 } 9func wn(v: i64) -> i64 { 10 let b: *u8 = sys_mmap(28); var m: i64 = v 11 if m < 0 { m = 0 - m; sys_write(1, "-" as *u8, 1) } 12 let t: *u8 = sys_mmap(28); var k: i64 = 0 13 if m == 0 { t[0] = 48 as u8; k = 1 } 14 while m > 0 { t[k] = (48 + (m % 10)) as u8; m = m / 10; k = k + 1 } 15 var i: i64 = 0; while i < k { b[i] = t[k - 1 - i]; i = i + 1 } 16 sys_write(1, b, k); return 0 17} 18func chk(cond: i64, pass: *i64, fail: *i64, label: *u8) -> i64 { 19 if cond == 1 { pass[0] = pass[0] + 1; w(" ok " as *u8); w(label); w("\n" as *u8) } 20 else { fail[0] = fail[0] + 1; w(" XX " as *u8); w(label); w("\n" as *u8) } 21 return 0 22} 23 24func tc(subj_in: *u8, obj_in: *u8, exp_good: i64, exp_subj: *u8, pass: *i64, fail: *i64) -> i64 { 25 let so: *u8 = sys_mmap(1024) 26 let oo: *u8 = sys_mmap(1024) 27 let g: i64 = nx_claim_clean(subj_in, obj_in, so, oo) 28 w(" in='" as *u8); w(subj_in); w("' -> good=" as *u8); wn(g) 29 if g == 1 { w(" subj='" as *u8); w(so); w("' obj='" as *u8); w(oo); w("'" as *u8) } 30 w("\n" as *u8) 31 chk(g == exp_good, pass, fail, "good-flag" as *u8) 32 if exp_good == 1 { if g == 1 { chk(cl_streq(so, exp_subj), pass, fail, "subject-cleaned" as *u8) } } 33 return 0 34} 35 36func main() -> i64 { 37 let pass: *i64 = (sys_mmap(8)) as *i64 38 let fail: *i64 = (sys_mmap(8)) as *i64 39 pass[0] = 0 40 fail[0] = 0 41 w("=== nx_research_relation_clean KAT (fix the measured noise) ===\n" as *u8) 42 tc("which" as *u8, "valuable advantage" as *u8, 0, "" as *u8, pass, fail) 43 tc("[1] The term \"engine\"" as *u8, "direct analogue" as *u8, 1, "term \"engine\"" as *u8, pass, fail) 44 tc("Wikipedia\xc2\xae" as *u8, "registered trademark" as *u8, 0, "" as *u8, pass, fail) 45 tc("^ \"What" as *u8, "Game Engine" as *u8, 0, "" as *u8, pass, fail) 46 tc("A game engine" as *u8, "software framework" as *u8, 1, "game engine" as *u8, pass, fail) 47 tc("Havok" as *u8, "a robust physics simulation system" as *u8, 1, "Havok" as *u8, pass, fail) 48 tc("it" as *u8, "fast" as *u8, 0, "" as *u8, pass, fail) 49 tc("Firelight FMOD" as *u8, "low cost robust audio library" as *u8, 1, "Firelight FMOD" as *u8, pass, fail) 50 tc("provide a flexible and reusable software platform which" as *u8, "core functionality" as *u8, 0, "" as *u8, pass, fail) 51 tc("have found" as *u8, "in other scientific fields" as *u8, 0, "" as *u8, pass, fail) 52 tc("remains a high priority for game engines" as *u8, "extensibility" as *u8, 0, "" as *u8, pass, fail) 53 tc("extensibility remains a high priority for game engines due to the wide variety of" as *u8, "for which they are applied" as *u8, 0, "" as *u8, pass, fail) 54 tc("entity component system architecture" as *u8, "a design pattern" as *u8, 1, "entity component system architecture" as *u8, pass, fail) 55 tc("3D rendering pipeline" as *u8, "the core renderer" as *u8, 1, "3D rendering pipeline" as *u8, pass, fail) 56 tc("[12] OpenGL" as *u8, "a graphics API" as *u8, 1, "OpenGL" as *u8, pass, fail) 57 w("=== VERDICT pass=" as *u8); wn(pass[0]); w(" fail=" as *u8); wn(fail[0]); w(" ===\n" as *u8) 58 if fail[0] == 0 { return 0 } 59 return 1 60}