code wiki / (root) / nx_garment_pack_canonical_gate_t135.nx

nx_garment_pack_canonical_gate_t135.nx source

↩ module page · 84 lines · 6651 B

1// nx_garment_pack_canonical_gate_t135.nx -- Validates garment packing policies and checks coordinate validity in a shared memory environment. 2import "nx_gate_verdict.nx" 3import "nx_nxa_garment_bind_lib.nx" 4const BGT_VA: i64=12 5const BGT_GA: i64=28 6const BGT_WORDS: i64=38 7const BGT_QUERY_COUNT: i64=3 8const BGT_SENTINEL: i64=165 9 10func bgt_seal(h: *i64) -> i64 { 11 h[7]=nxa_check2(1,((h as i64)+BGT_VA*8) as *i64,16) 12 h[11]=nxa_check2(1,((h as i64)+BGT_GA*8) as *i64,10) 13 h[3]=nxa_check2(1,((h as i64)+32) as *i64,8) 14 return 0 15} 16func bgt_fixture(c: *i64) -> i64 { 17 let h: *i64=sys_mmap(BGT_WORDS*8) as *i64 18 let b: *u8=h as *u8 19 let out: *i64=sys_mmap((BGT_QUERY_COUNT+1)*8) as *i64 20 let need: i64=BGT_QUERY_COUNT*8 21 h[0]=nxa_magic();h[1]=NXA_VER;h[2]=2 22 h[4]=nxa_tag4("VERT" as *u8);h[5]=BGT_VA*8;h[6]=16 23 h[8]=nxa_tag4("GVRT" as *u8);h[9]=BGT_GA*8;h[10]=10 24 h[BGT_VA]=5;h[BGT_GA]=BGT_QUERY_COUNT 25 h[13]=0-2;h[15]=10;h[18]=10;h[19]=2;h[21]=10;h[27]=20 26 h[31]=9;h[37]=20 27 bgt_seal(h);out[BGT_QUERY_COUNT]=BGT_SENTINEL 28 gv_check_eq("binding byte count",ngb_map(b,BGT_WORDS*8,out as *u8,need,2,10),need,c) 29 gv_check_eq("equal-distance tie chooses first eligible",out[0],0,c) 30 gv_check_eq("below-band query excludes nearer low vertex",out[1],0,c) 31 gv_check_eq("exact high vertex",out[2],4,c) 32 gv_check_eq("destination guard",out[BGT_QUERY_COUNT],BGT_SENTINEL,c) 33 gv_check_eq("all-vertex policy accepted",ngb_map(b,BGT_WORDS*8,out as *u8,need,1,10),need,c) 34 gv_check_eq("all-vertex policy selects closer odd vertex",out[0],1,c) 35 gv_check_eq("zero-band policy accepted",ngb_map(b,BGT_WORDS*8,out as *u8,need,1,0),need,c) 36 gv_check_eq("zero-band exact low candidate",out[1],3,c) 37 out[0]=BGT_SENTINEL 38 gv_check_eq("short output refused",ngb_map(b,BGT_WORDS*8,out as *u8,need-1,2,10),NGP_E_OUTPUT,c) 39 gv_check_eq("source overlap refused",ngb_map(b,BGT_WORDS*8,b,need,2,10),NGP_E_OVERLAP,c) 40 gv_check_eq("zero stride refused",ngb_map(b,BGT_WORDS*8,out as *u8,need,0,10),NGB_E_POLICY,c) 41 gv_check_eq("negative band refused",ngb_map(b,BGT_WORDS*8,out as *u8,need,2,0-1),NGB_E_POLICY,c) 42 gv_check_eq("missing eligible candidate refused",ngb_map(b,BGT_WORDS*8,out as *u8,need,2,21),NGB_E_CANDIDATE,c) 43 gv_check_eq("all refusals preserve destination",out[0],BGT_SENTINEL,c) 44 h[37]=NGB_COORD_LIMIT+1;bgt_seal(h) 45 gv_check_eq("late inexact coordinate refused",ngb_map(b,BGT_WORDS*8,out as *u8,need,2,10),NGB_E_COORD,c) 46 gv_check_eq("late coordinate refusal preserves destination",out[0],BGT_SENTINEL,c) 47 h[37]=20;bgt_seal(h);h[13]=0-3 48 gv_check_eq("corrupt geometry refused",ngb_map(b,BGT_WORDS*8,out as *u8,need,2,10),0-3,c) 49 sys_munmap(b,BGT_WORDS*8);sys_munmap(out as *u8,(BGT_QUERY_COUNT+1)*8) 50 return 0 51} 52 53func main()->i64{ 54 let c:*i64=gv_ctr();gv_head("NATIVE SHARED GARMENT PACK PRIVATE");bgt_fixture(c) 55 gv_check("f32 16777217 in range but inexact refused",ngb_source_index_f32_v1(16777217,40000000)==NGB_E_PACK_INDEX,c) 56 gv_check("f32 16777218 exact above 2^24 accepted",ngb_source_index_f32_v1(16777218,40000000)==0,c) 57 gv_check("f32 16777219 inexact refused",ngb_source_index_f32_v1(16777219,40000000)==NGB_E_PACK_INDEX,c) 58 gv_check("f32 33554431 inexact refused",ngb_source_index_f32_v1(33554431,40000000)==NGB_E_PACK_INDEX,c) 59 gv_check("f32 33554433 inexact refused",ngb_source_index_f32_v1(33554433,40000000)==NGB_E_PACK_INDEX,c) 60 gv_check("f32 33554432 exact accepted",ngb_source_index_f32_v1(33554432,40000000)==0,c) 61 gv_check("exact source index beyond mesh refused independently",ngb_source_index_f32_v1(42,42)==NGB_E_PACK_INDEX,c) 62 let len:*i64=sys_mmap(16) as *i64;let original:*u8=sys_map_file("/tmp/ref9e-clipped-onepiece-t131.nxa",len);if (original as i64)==0{return 3} 63 let n:i64=len[0];let b:*u8=sys_mmap(n);var i:i64=0;while i<n{b[i]=original[i];i=i+1} 64 let work:*i64=sys_mmap(112) as *i64;let need:i64=ngb_attachment_bytes_v1(b,n,work,112);gv_check("actual full NXA validates and measures",need==480504,c);if need<1{return 4} 65 let out:*u8=sys_mmap(need+8);out[need]=165 as u8 66 gv_check("actual native packing complete",ngb_attachment_pack_v1(b,n,out,need,work,112)==need,c) 67 let d:*u32=out as *u32;gv_check("packed header identity counts and offsets",d[0]==827343175&&d[1]==1&&d[2]==9991&&d[3]==3403&&d[4]==14164&&d[5]==3&&d[6]==64&&d[7]==119956&&d[8]==279812&&d[9]==439668&&d[10]==need,c) 68 gv_check("packed destination canary intact",out[need]==165,c) 69 let h:*i64=b as *i64;let ae:i64=nxa_section_entry(b,n,nxa_tag4("GAT1"));let s:*i64=((b as i64)+h[ae+1]) as *i64;let ta:i64=nxa_counted_section(b,n,nxa_tag4("TRIS"),3) 70 var valid:i64=1;i=0;while i<s[1]{let r:i64=12+i*8;var k:i64=0;while k<3{let si:i64=h[ta+1+s[r]*3+k];if d[d[7]/4+i*4+k]!=__f32_from_i64(si){valid=0};k=k+1};if d[d[8]/4+i*4+3]!=__f32_from_i64(s[r+5]){valid=0};i=i+1};gv_check("all actual source IDs and normal offset preserved",valid==1,c) 71 i=0;valid=1;while i<s[2]*3{if d[d[9]/4+i]!=s[12+s[1]*8+i]{valid=0};i=i+1};gv_check("all actual attachment triangle IDs preserved",valid==1,c) 72 out[0]=165 as u8;gv_check("short output refused before output write",ngb_attachment_pack_v1(b,n,out,need-1,work,112)==NGP_E_OUTPUT&&out[0]==165,c) 73 gv_check("source output overlap refused",ngb_attachment_pack_v1(b,n,b,need,work,112)==NGP_E_OVERLAP,c) 74 work[0]=165;gv_check("scratch output overlap refuses before scratch writes",ngb_attachment_pack_v1(b,n,work as *u8,need,work,112)==NGP_E_OVERLAP&&work[0]==165,c) 75 gv_check("scratch source overlap refused",ngb_attachment_bytes_v1(b,n,b as *i64,112)==NGP_E_OVERLAP,c) 76 gv_check("null source refused",ngb_attachment_bytes_v1(0 as *u8,n,work,112)==NGB_ATTACH_E_SHAPE,c) 77 gv_check("truncated asset refused",ngb_attachment_bytes_v1(b,n-8,work,112)<0,c) 78 let saved:i64=s[4];s[4]=saved+1;h[ae+3]=nxa_check2(1,s,h[ae+2]);h[3]=nxa_check2(1,((b as i64)+32) as *i64,h[2]*4) 79 gv_check("checksum-valid wrong source provenance refused",ngb_attachment_pack_v1(b,n,out,need,work,112)==NGB_ATTACH_E_SOURCE&&out[0]==165,c) 80 s[4]=saved;h[ae+3]=nxa_check2(1,s,h[ae+2]);h[3]=nxa_check2(1,((b as i64)+32) as *i64,h[2]*4) 81 gv_check("actual output restored after negative controls",ngb_attachment_pack_v1(b,n,out,need,work,112)==need,c) 82 let fd:i64=sys_openat_wr("/tmp/garment-upload-canonical-t135.bin",MODE_0644);var wrote:i64=-1;if fd>=0{wrote=sys_write(fd,out,need);sys_close(fd)};gv_check("native packed artifact complete write",wrote==need,c) 83 gv_kv("packed_bytes",need);gv_kv("source_vertices",d[4]);gv_kv("attachment_vertices",d[2]);return gv_verdict("GARMENT-PACK132",c,"Native packing only; Wasm and current host integration pending") 84}