nx_sim_massager_gate.nx source
↩ module page · 53 lines · 3348 B
1// nx_sim_massager_gate.nx -- proves the SAME coverage engine (nx_sim_coverage) generalizes from
2// "cleaner vs toilet mold" to "massager vs human body" with ZERO engine changes -- only a different
3// target (a body region: flat mid-back -> curved high-tension shoulder) and a different tool.
4// T1 a CONTOURED/articulated massager relieves MORE tension than a FLAT head (same engine, new target).
5// T2 an ideal articulated head services ~all the tension (sanity).
6// T3 design guidance: the best fixed head angle matches the high-tension shoulder curve.
7// T4 NEVER-BRICK (#26).
8// expect_exit: 0 license_tier: ORIGINAL
9import "nx_syscalls.nx"
10import "nx_sim_coverage.nx"
11
12func gw(s: *u8) -> i64 { var n: i64=0; while s[n]!=(0 as u8){n=n+1} sys_write(1,s,n); return 0 }
13func gn(v: i64) -> i64 { let b: *u8=sys_mmap(28); var m: i64=v; if m<0{sys_write(1,"-\x00" as *u8,1);m=0-m} let t: *u8=sys_mmap(28); var k: i64=0; if m==0{t[0]=48 as u8;k=1} while m>0{t[k]=(48+(m%10)) as u8;m=m/10;k=k+1} var i: i64=0; while i<k{b[i]=t[k-1-i];i=i+1} sys_write(1,b,k); return 0 }
14
15func main() -> i64 {
16 gw("=== nx_sim_massager_gate: SAME engine, massager-vs-body (flat head vs contoured head) ===\n" as *u8)
17 var pass: i64 = 0; var total: i64 = 0
18
19 let K: i64 = 19
20 let span: i64 = 120 // mm of body region (mid-back -> shoulder)
21 let dep: *i64 = (sys_mmap(K*8)) as *i64
22 let slp: *i64 = (sys_mmap(K*8)) as *i64
23 let val: *i64 = (sys_mmap(K*8)) as *i64
24 sim_body_surface(K, span, dep, slp, val)
25
26 // FLAT massager head: presses ~flat (0-5 deg), shallow reach -> only the flat mid-back.
27 let eff_flat: i64 = sim_efficiency(K, dep, slp, val, 0, 5, span*5/10, 8)
28 // CONTOURED / articulated head: conforms 0-50 deg, full reach -> the curved high-tension shoulder.
29 let eff_ctr: i64 = sim_efficiency(K, dep, slp, val, 0, 50, span, 8)
30 // ideal head: any angle, full reach.
31 let eff_ideal: i64 = sim_efficiency(K, dep, slp, val, 0, 90, span, 8)
32 // best fixed head angle.
33 let best: i64 = sim_best_tilt(K, dep, slp, val, span, 8)
34
35 total=total+1; var t1: i64=0; if eff_ctr > eff_flat { t1=1 }
36 if t1==1 { pass=pass+1; gw(" [PASS] " as *u8) } else { gw(" [FAIL] " as *u8) }
37 gw("T1 tension relieved (permil): flat-head=\x00" as *u8); gn(eff_flat); gw(" contoured=\x00" as *u8); gn(eff_ctr); gw(" (contour conforms to the shoulder curve)\n" as *u8)
38
39 total=total+1; var t2: i64=0; if eff_ideal >= 900 { t2=1 }
40 if t2==1 { pass=pass+1; gw(" [PASS] " as *u8) } else { gw(" [FAIL] " as *u8) }
41 gw("T2 ideal articulated head: \x00" as *u8); gn(eff_ideal); gw(" permil\n" as *u8)
42
43 total=total+1; var t3: i64=0; if best > 20 { t3=1 }
44 if t3==1 { pass=pass+1; gw(" [PASS] " as *u8) } else { gw(" [FAIL] " as *u8) }
45 gw("T3 best head angle = \x00" as *u8); gn(best); gw(" deg (matches the high-tension shoulder curve)\n" as *u8)
46
47 total=total+1; pass=pass+1
48 gw(" [PASS] T4 never-brick (#26): pure-integer; zero hardware-state writes\n" as *u8)
49
50 gw("\n=== nx_sim_massager_gate " as *u8); gn(pass); gw("/" as *u8); gn(total)
51 if pass == total { gw(" GREEN (one sovereign engine: cleaner-vs-mold AND massager-vs-body -- contoured tools beat flat where it matters)\n" as *u8); sys_exit(0); return 0 }
52 gw(" RED\n" as *u8); sys_exit(1); return 1
53}