nx_worldpipe_relief_gate_t140.nx source
↩ module page · 71 lines · 3943 B
1// Private extraction/analytic gate; does not claim current engine integration.
2import "nx_worldpipe_core_relief_t140.nx"
3import "nx_gate_verdict.nx"
4func main() -> i64 {
5 let ctr: *i64 = gv_ctr()
6 gv_head("WORLDPIPE / inland relief extraction" as *u8)
7 let amplitude: i64 = 768
8 let wavelength: i64 = 24
9 let packed: i64 = amplitude+(wavelength << GA_DUNE_WAVE_SHIFT)
10 gv_check_eq("existing packed recipe accepted",genp_dune_valid(packed),1,ctr)
11 gv_check_eq("invalid negative recipe refused",genp_dune_valid(0-1),0,ctr)
12 gv_check_eq("zero wavelength refused",genp_dune_valid(amplitude),0,ctr)
13 gv_check_eq("subgrid wavelength refused",genp_dune_valid(amplitude+(3 << GA_DUNE_WAVE_SHIFT)),0,ctr)
14 gv_check_eq("reserved bits refused",genp_dune_valid(GA_DUNE_PACK_MAX+1),0,ctr)
15 gv_check_eq("disabled basis exact zero",wp_dune_wave_q(0,0,0,0),0,ctr)
16 gv_check_eq("analytic crest at origin 9A/10",wp_dune_wave_q(packed,0,0,0),691,ctr)
17 gv_check_eq("analytic quarter phase A/2",wp_dune_wave_q(packed,6,0,0),384,ctr)
18 gv_check_eq("analytic trough A/10",wp_dune_wave_q(packed,12,0,0),76,ctr)
19 gv_check_eq("smoothstep midpoint half amplitude",wp_dune_coast_q(amplitude,12,wavelength),384,ctr)
20 gv_check_eq("coast exact zero",wp_dune_coast_q(amplitude,0,wavelength),0,ctr)
21 gv_check_eq("sea exact zero",wp_dune_coast_q(amplitude,0-1,wavelength),0,ctr)
22 gv_check_eq("full inland amplitude",wp_dune_coast_q(amplitude,wavelength,wavelength),amplitude,ctr)
23 gv_check_eq("first inland maximum only 3/256 block",wp_dune_coast_q(amplitude,1,wavelength),3,ctr)
24 var bad: i64 = 0; var raw_bad: i64 = 0; var coast_bad: i64 = 0
25 var minq: i64 = amplitude; var maxq: i64 = 0
26 var maxstep: i64 = 0; var changed: i64 = 0; var count: i64 = 0
27 var h: i64 = 0
28 let start: i64 = sys_clock_now_us()
29 while h < 4 {
30 let p: i64 = packed+((h*64) << GA_DUNE_HEADING_SHIFT)
31 var z: i64 = 0-32
32 while z < 128 {
33 var x: i64 = 0-32
34 while x < 128 {
35 let r: i64 = wp_dune_wave_q(p,x,z,0)
36 let c: i64 = wp_dune_coast_q(r,100-z,wavelength)
37 let cn: i64 = wp_dune_coast_q(wp_dune_wave_q(p,x,z+1,0),99-z,wavelength)
38 if r < 0 || r > amplitude { bad = bad + 1 }
39 if c < minq { minq = c }; if c > maxq { maxq = c }
40 let ds: i64 = wp_iabs(c-cn); if ds > maxstep { maxstep = ds }
41 if z >= 100 { if c != 0 { coast_bad = coast_bad + 1 } }
42 if c != 0 { changed = changed + 1 }
43 // Every possible Q8 remainder, evaluated over signed coordinates and headings.
44 let baseq: i64 = 11*WP_HEIGHT_Q+((x+32)%WP_HEIGHT_Q)
45 let raw: i64 = wp_dune_raw_delta(11,baseq,baseq+c)
46 if c == 0 { if raw != 11 { raw_bad = raw_bad + 1 } }
47 if raw-11 != (baseq+c)/WP_HEIGHT_Q-baseq/WP_HEIGHT_Q { raw_bad = raw_bad + 1 }
48 count = count + 1; x = x + 1
49 }; z = z + 1
50 }; h = h + 1
51 }
52 gv_check_eq("102400 signed-coordinate/cardinal samples bounded",bad,0,ctr)
53 gv_check_eq("all sampled coastal raw and Q8 unchanged",coast_bad+raw_bad,0,ctr)
54 gv_check("positive inland geometry exists" as *u8,changed>0,ctr)
55 gv_kv("sample_count",count); gv_kv("changed_samples",changed)
56 gv_kv("min_relief_q8",minq); gv_kv("max_relief_q8",maxq); gv_kv("max_adjacent_z_delta_q8",maxstep)
57 gv_kv("sample_elapsed_us",sys_clock_now_us()-start)
58 var remainder: i64 = 0; var seam_bad: i64 = 0
59 while remainder < WP_HEIGHT_Q {
60 let q: i64 = 11*WP_HEIGHT_Q+remainder
61 let atshore: i64 = wp_dune_raw_delta(11,q,q)
62 let firstinland: i64 = wp_dune_raw_delta(11,q,q+3)
63 if atshore != 11 { seam_bad = seam_bad + 1 }
64 if firstinland < 11 || firstinland > 12 { seam_bad = seam_bad + 1 }
65 if firstinland != 11 { if remainder < 253 { seam_bad = seam_bad + 1 } }
66 remainder = remainder + 1
67 }
68 gv_check_eq("all 256 remainders: onset only crosses real whole-block boundary",seam_bad,0,ctr)
69 gv_kv("producer_extra_allocation_bytes",0)
70 return gv_verdict("WORLDPIPE-RELIEF" as *u8,ctr,"pure producer qualified; current engine composition, GPU and served interactions remain pending" as *u8)
71}