code wiki / (root) / nx_craft_hq_shift_gate.nx

nx_craft_hq_shift_gate.nx source

↩ module page · 53 lines · 1829 B

1// Beach fixture: retained terrain must remain identical through cache-origin shifts. 2import "nx_syscalls.nx" 3import "nx_wasm_craft.nx" 4import "nx_gate_verdict.nx" 5func hs_case(dx: i64, dz: i64) -> i64 { 6 let base: i64 = sys_mmap(CRAFT_EXT_TOTAL) as i64 7 if base <= 0 { return 1 } 8 init_impl_v(base, 2, 20260728) 9 let snap: *i64 = sys_mmap(WX*WZ*8) as *i64 10 if (snap as i64) <= 0 { return 1 } 11 var z: i64 = 0 12 while z < WZ { 13 var x: i64 = 0 14 while x < WX { snap[z*WX+x] = hq_get(base,x,z); x = x + 1 } 15 z = z + 1 16 } 17 wc_shift(base,dx,dz) 18 var mismatches: i64 = 0 19 var checked: i64 = 0 20 z = 0 21 while z < WZ { 22 var x: i64 = 0 23 while x < WX { 24 let sx: i64 = x + dx 25 let sz: i64 = z + dz 26 if sx >= 0 { if sx < WX { if sz >= 0 { if sz < WZ { 27 checked = checked + 1 28 if hq_get(base,x,z) != snap[sz*WX+sx] { mismatches = mismatches + 1 } 29 } } } } 30 x = x + 1 31 } 32 z = z + 1 33 } 34 gv_num(dx);sys_write(1," " as *u8,1);gv_num(dz) 35 sys_write(1," checked=" as *u8,9);gv_num(checked) 36 sys_write(1," mismatches=" as *u8,12);gv_num(mismatches);sys_write(1,"\n" as *u8,1) 37 sys_munmap(snap as *u8,WX*WZ*8) 38 sys_munmap(base as *u8,CRAFT_EXT_TOTAL) 39 if checked == 0 { return 1 } 40 if mismatches != 0 { return 1 } 41 return 0 42} 43func main(argc: i64, argv: *i64) -> i64 { 44 var failed: i64 = 0 45 failed = failed + hs_case(SHIFT_STRIDE,0) 46 failed = failed + hs_case(0-SHIFT_STRIDE,0) 47 failed = failed + hs_case(0,SHIFT_STRIDE) 48 failed = failed + hs_case(0,0-SHIFT_STRIDE) 49 failed = failed + hs_case(SHIFT_STRIDE,SHIFT_STRIDE) 50 failed = failed + hs_case(0-SHIFT_STRIDE,0-SHIFT_STRIDE) 51 failed = failed + hs_case(0,0) 52 return failed 53}