code wiki / (root) / bf_probe.nx

bf_probe.nx source

↩ module page · 38 lines · 1263 B

1// GENERATED by nx_bugforge -- do not hand-edit 2import "nx_syscalls.nx" 3func cw(s: *u8) -> i64 { var n: i64 = 0; while s[n] != (0 as u8) { n = n + 1 } sys_write(1, s, n); return 0 } 4func cn(v: i64) -> i64 { 5 var m: i64 = v 6 if m < 0 { cw("-" as *u8); m = 0 - m } 7 let t: *u8 = sys_mmap(24) 8 var k: i64 = 0 9 if m == 0 { t[0] = 48 as u8; k = 1 } 10 while m > 0 { t[k] = (48 + (m % 10)) as u8; m = m / 10; k = k + 1 } 11 let o: *u8 = sys_mmap(24) 12 var i: i64 = 0 13 while i < k { o[i] = t[k - 1 - i]; i = i + 1 } 14 sys_write(1, o, k) 15 return 0 16} 17func bf_orig(a: i64) -> i64 { 18 if a > 8 { return a - 9 + (a - a) + a } 19 return a - (7 + a) * a * a * a 20} 21func bf_mut(a: i64) -> i64 { 22 if a > 8 { return a - 9 + (a - a) + a } 23 return a - (7 + a) + a * a * a 24} 25func main() -> i64 { 26 var dv: i64 = 0 27 var ag: i64 = 0 28 var a: i64 = 0 - 6 29 while a <= 6 { 30 let x: i64 = bf_orig(a) 31 let y: i64 = bf_mut(a) 32 if x != y { dv = dv + 1; if dv <= 6 { cw("BFCASE " as *u8); cn(a); cw(" want=" as *u8); cn(x); cw(" got=" as *u8); cn(y); cw("\n" as *u8); } } 33 if x == y { ag = ag + 1; if ag <= 6 { cw("BFPASS " as *u8); cn(a); cw(" val=" as *u8); cn(x); cw("\n" as *u8); } } 34 a = a + 1 35 } 36 cw("BFDIV n=" as *u8); cn(dv); cw(" agree=" as *u8); cn(ag); cw("\n" as *u8); 37 return 0 38}