nx_product_input_canonical_t39.nx source
↩ module page · 23 lines · 1033 B
1import "nx_product_decompose.nx"
2func main()->i64 {
3 let rows:i64=PD_MAXROW+1
4 let input:*u8=sys_mmap(rows*2)
5 var i:i64=0
6 while i<rows{input[i*2]=120 as u8;input[i*2+1]=10 as u8;i=i+1}
7 let na:*i64=sys_mmap(PD_MAXROW*8) as *i64
8 let nb:*i64=sys_mmap(PD_MAXROW*8) as *i64
9 let ta:*i64=sys_mmap(PD_MAXROW*8) as *i64
10 let tb:*i64=sys_mmap(PD_MAXROW*8) as *i64
11 let exact:i64=pd_parse(input,PD_MAXROW*2,na,nb,ta,tb)
12 let excess:i64=pd_parse(input,rows*2,na,nb,ta,tb)
13 pd_w("parse_exact=" as *u8);pd_wn(exact);pd_w(" parse_overflow=" as *u8);pd_wn(excess);pd_w("\n" as *u8)
14 if exact!=PD_MAXROW||excess>=0{return 3}
15 let allna:*i64=sys_mmap(rows*8) as *i64
16 let allnb:*i64=sys_mmap(rows*8) as *i64
17 let allta:*i64=sys_mmap(rows*8) as *i64
18 let alltb:*i64=sys_mmap(rows*8) as *i64
19 if pd_parse_capacity(input,rows*2,allna,allnb,allta,alltb,rows)!=rows{return 4}
20 if allna[rows-1]!=(rows-1)*2||allnb[rows-1]!=(rows-1)*2+1{return 5}
21 pd_w("PASS incomplete list refused; explicit capacity preserves every requirement\n" as *u8)
22 return 0
23}