code wiki / _hdl_build / _pe_heat_test.nx
_pe_heat_test.nx source
↩ module page · 22 lines · 710 B
1// AUTHORED BY THE NISHI BUILDER (pattern: PID_LOOP test) -- plant-sim replay KAT, endpoint baked at emit time
2import "_pe_heat.nx"
3import "nx_syscalls.nx"
4func main() -> i64 {
5 var bad: i64 = 0
6 let ig: *i64 = sys_mmap(16) as *i64
7 ig[0] = 0
8 var x: i64 = 0
9 var s: i64 = 0
10 while s < 60 { x = x + _pe_heat_pid(1000 - x, ig) / 8; s = s + 1 }
11 if x != 1027 { bad = bad + 1 }
12 var dev: i64 = 1000 - x
13 if dev < 0 { dev = 0 - dev }
14 if dev > 50 { bad = bad + 1 }
15 let ig2: *i64 = sys_mmap(16) as *i64
16 ig2[0] = 0
17 if _pe_heat_pid(20000, ig2) != 40200 { bad = bad + 1 }
18 if ig2[0] != 10000 { bad = bad + 1 }
19 if bad == 0 { sys_exit(0) }
20 sys_exit(1)
21 return 1
22}