code wiki / _hdl_build / nx_compare_growth_gate_20260910.nx
nx_compare_growth_gate_20260910.nx source
↩ module page · 66 lines · 9034 B
1// nx_compare_growth_gate_20260910.nx -- Validates growth path configurations against expected error codes in the Nishi ecosystem.
2import "nx_compare_growth_json_20260910.nx"
3import "nx_gatekit_lib.nx"
4import "nx_gate_verdict.nx"
5func cgg_case(name: *u8,text: *u8,expected: i64,ctr: *i64) -> i64 {
6 let m: *CgModel=cg_parse(text,bf_slen(text))
7 if (m as i64)<=0 { gv_check(name,0,ctr); return 0 }
8 gv_check(name,m.error==expected,ctr)
9 cg_free(m); return 0
10}
11func main() -> i64 {
12 let ctr: *i64=gv_ctr(); gv_head("COMPARE-GROWTH" as *u8)
13 cgg_case("legacy plan absent growth" as *u8,"rung|R1|Test|f|done|Organ|1|-\nsotatarget|T1|frontier|B1|Target|ref\n" as *u8,0,ctr)
14 cgg_case("proactive no failure" as *u8,"rung|R1|Test|f|done|Organ|1|-\nsotatarget|T1|frontier|B1|Target|ref\ngrowthpath|1|P1|R1|proactive_research|T1|ref|A causal model|Still unknown\ngrowthexercise|1|E1|P1|-|f|nx_probe|workload|resources|accept|@research\ngrowthexercise|1|E2|P1|E1|f|nx_probe|workload|resources|accept|@learning\ngrowthassessment|1|A1|P1|scope|innovation|receipt|1789030000|reviewer|-\n" as *u8,0,ctr)
15 cgg_case("observed failure entry" as *u8,"rung|R1|Test|f|done|Organ|1|-\nsotatarget|T1|frontier|B1|Target|ref\ngrowthpath|1|P1|R1|observed_failure|T1|ref|A causal model|Still unknown\ngrowthexercise|1|E1|P1|-|f|nx_probe|workload|resources|accept|@research\n" as *u8,0,ctr)
16 cgg_case("operator target entry" as *u8,"rung|R1|Test|f|done|Organ|1|-\nsotatarget|T1|frontier|B1|Target|ref\ngrowthpath|1|P1|R1|operator_target|T1|ref|A causal model|Still unknown\n" as *u8,0,ctr)
17 cgg_case("unsupported version" as *u8,"rung|R1|Test|f|done|Organ|1|-\nsotatarget|T1|frontier|B1|Target|ref\ngrowthpath|2|P1|R1|proactive_research|T1|ref|A causal model|Still unknown\n" as *u8,0-3,ctr)
18 cgg_case("unknown entry" as *u8,"rung|R1|Test|f|done|Organ|1|-\nsotatarget|T1|frontier|B1|Target|ref\ngrowthpath|1|P1|R1|automatic_mastery|T1|ref|A causal model|Still unknown\n" as *u8,0-3,ctr)
19 cgg_case("orphan rung" as *u8,"rung|R1|Test|f|done|Organ|1|-\nsotatarget|T1|frontier|B1|Target|ref\ngrowthpath|1|P1|R2|proactive_research|T1|ref|A causal model|Still unknown\n" as *u8,0-6,ctr)
20 cgg_case("orphan target" as *u8,"rung|R1|Test|f|done|Organ|1|-\nsotatarget|T1|frontier|B1|Target|ref\ngrowthpath|1|P1|R1|proactive_research|T2|ref|A causal model|Still unknown\n" as *u8,0-6,ctr)
21 cgg_case("duplicate path id" as *u8,"rung|R1|Test|f|done|Organ|1|-\nsotatarget|T1|frontier|B1|Target|ref\ngrowthpath|1|P1|R1|proactive_research|T1|ref|A causal model|Still unknown\ngrowthpath|1|P1|R1|proactive_research|T1|ref|A causal model|Still unknown\n" as *u8,0-5,ctr)
22 cgg_case("missing field" as *u8,"rung|R1|Test|f|done|Organ|1|-\nsotatarget|T1|frontier|B1|Target|ref\ngrowthpath|1|P1|R1|proactive_research|T1|ref|A causal model\n" as *u8,0-3,ctr)
23 cgg_case("orphan exercise path" as *u8,"rung|R1|Test|f|done|Organ|1|-\nsotatarget|T1|frontier|B1|Target|ref\ngrowthpath|1|P1|R1|proactive_research|T1|ref|A causal model|Still unknown\ngrowthexercise|1|E1|P2|-|f|nx_probe|workload|resources|accept|@research\n" as *u8,0-6,ctr)
24 cgg_case("missing dependency" as *u8,"rung|R1|Test|f|done|Organ|1|-\nsotatarget|T1|frontier|B1|Target|ref\ngrowthpath|1|P1|R1|proactive_research|T1|ref|A causal model|Still unknown\ngrowthexercise|1|E2|P1|E1|f|nx_probe|workload|resources|accept|@learning\n" as *u8,0-6,ctr)
25 cgg_case("self dependency" as *u8,"rung|R1|Test|f|done|Organ|1|-\nsotatarget|T1|frontier|B1|Target|ref\ngrowthpath|1|P1|R1|proactive_research|T1|ref|A causal model|Still unknown\ngrowthexercise|1|E1|P1|E1|f|nx_probe|workload|resources|accept|@research\n" as *u8,0-7,ctr)
26 cgg_case("cycle" as *u8,"rung|R1|Test|f|done|Organ|1|-\nsotatarget|T1|frontier|B1|Target|ref\ngrowthpath|1|P1|R1|proactive_research|T1|ref|A causal model|Still unknown\ngrowthexercise|1|E1|P1|E2|f|nx_probe|workload|resources|accept|@research\ngrowthexercise|1|E2|P1|E1|f|nx_probe|workload|resources|accept|@learning\n" as *u8,0-7,ctr)
27 cgg_case("duplicate dependency" as *u8,"rung|R1|Test|f|done|Organ|1|-\nsotatarget|T1|frontier|B1|Target|ref\ngrowthpath|1|P1|R1|proactive_research|T1|ref|A causal model|Still unknown\ngrowthexercise|1|E1|P1|-|f|nx_probe|workload|resources|accept|@research\ngrowthexercise|1|E2|P1|E1,E1|f|nx_probe|workload|resources|accept|@learning\n" as *u8,0-5,ctr)
28 cgg_case("orphan failure target" as *u8,"rung|R1|Test|f|done|Organ|1|-\nsotatarget|T1|frontier|B1|Target|ref\ngrowthpath|1|P1|R1|proactive_research|T1|ref|A causal model|Still unknown\ngrowthexercise|1|E1|P1|-|f|nx_probe|workload|resources|accept|E9\n" as *u8,0-6,ctr)
29 cgg_case("unknown stage" as *u8,"rung|R1|Test|f|done|Organ|1|-\nsotatarget|T1|frontier|B1|Target|ref\ngrowthpath|1|P1|R1|proactive_research|T1|ref|A causal model|Still unknown\ngrowthassessment|1|A1|P1|scope|complete|receipt|1789030000|reviewer|-\n" as *u8,0-3,ctr)
30 cgg_case("timestamp overflow" as *u8,"rung|R1|Test|f|done|Organ|1|-\nsotatarget|T1|frontier|B1|Target|ref\ngrowthpath|1|P1|R1|proactive_research|T1|ref|A causal model|Still unknown\ngrowthassessment|1|A1|P1|scope|innovation|receipt|9223372036854775808|reviewer|-\n" as *u8,0-8,ctr)
31 cgg_case("timestamp malformed" as *u8,"rung|R1|Test|f|done|Organ|1|-\nsotatarget|T1|frontier|B1|Target|ref\ngrowthpath|1|P1|R1|proactive_research|T1|ref|A causal model|Still unknown\ngrowthassessment|1|A1|P1|scope|innovation|receipt|1oops|reviewer|-\n" as *u8,0-8,ctr)
32 cgg_case("history remains" as *u8,"rung|R1|Test|f|done|Organ|1|-\nsotatarget|T1|frontier|B1|Target|ref\ngrowthpath|1|P1|R1|proactive_research|T1|ref|A causal model|Still unknown\ngrowthassessment|1|A1|P1|scope|innovation|receipt|1789030000|reviewer|-\ngrowthassessment|1|A2|P1|scope|innovation|receipt|1789030001|reviewer|A1\n" as *u8,0,ctr)
33 cgg_case("history reverse time" as *u8,"rung|R1|Test|f|done|Organ|1|-\nsotatarget|T1|frontier|B1|Target|ref\ngrowthpath|1|P1|R1|proactive_research|T1|ref|A causal model|Still unknown\ngrowthassessment|1|A1|P1|scope|innovation|receipt|1789030000|reviewer|-\ngrowthassessment|1|A2|P1|scope|innovation|receipt|1789029999|reviewer|A1\n" as *u8,0-8,ctr)
34 cgg_case("cross path dependency" as *u8,"rung|R1|Test|f|done|Organ|1|-\nsotatarget|T1|frontier|B1|Target|ref\ngrowthpath|1|P1|R1|proactive_research|T1|ref|A causal model|Still unknown\ngrowthpath|1|P2|R1|proactive_research|T1|ref|A causal model|Still unknown\ngrowthexercise|1|E1|P1|-|f|nx_probe|workload|resources|accept|@research\ngrowthexercise|1|E2|P2|E1|f|nx_probe|workload|resources|accept|@learning\n" as *u8,0-6,ctr)
35 cgg_case("CRLF" as *u8,"rung|R1|Test|f|done|Organ|1|-\r\nsotatarget|T1|frontier|B1|Target|ref\r\ngrowthpath|1|P1|R1|proactive_research|T1|ref|A causal model|Still unknown\r\ngrowthexercise|1|E1|P1|-|f|nx_probe|workload|resources|accept|@research\r\n" as *u8,0,ctr)
36 cgg_case("empty field" as *u8,"rung|R1|Test|f|done|Organ|1|-\nsotatarget|T1|frontier|B1|Target|ref\ngrowthpath|1|P1|R1|proactive_research|T1|ref||Still unknown\n" as *u8,0-3,ctr)
37 let empty: *CgModel=cg_parse(0 as *u8,0)
38 gv_check("empty input explicit undeclared" as *u8,empty.error==0,ctr); cg_free(empty)
39 let bad: *u8=sys_mmap(2); bad[0]=0 as u8; bad[1]=255 as u8
40 let badm: *CgModel=cg_parse(bad,2)
41 gv_check("invalid bytes" as *u8,badm.error==CG_E_INPUT,ctr); cg_free(badm)
42 let fixture: *u8="rung|R1|Test|f|done|Organ|1|-\nsotatarget|T1|frontier|B1|Target|ref\ngrowthpath|1|P1|R1|proactive_research|T1|ref|A causal model|Still unknown\ngrowthexercise|1|E1|P1|-|f|nx_probe|workload|resources|accept|@research\ngrowthexercise|1|E2|P1|E1|f|nx_probe|workload|resources|accept|@learning\ngrowthassessment|1|A1|P1|scope|innovation|receipt|1789030000|reviewer|-\n" as *u8
43 let m: *CgModel=cg_parse(fixture,bf_slen(fixture))
44 let out: *u8=sys_mmap(16384)
45 let n: i64=cg_json_into(m,out,16383)
46 gv_check("projection complete" as *u8,n>0,ctr)
47 if n>0 {
48 out[n]=0 as u8
49 gv_check("assertion retained" as *u8,gk_has(out,"\"asserted_stage\":\"innovation\"" as *u8),ctr)
50 gv_check("no mastery award" as *u8,gk_has(out,"\"evidence_validated_stage\":null" as *u8),ctr)
51 gv_check("investment unknown" as *u8,gk_has(out,"\"investment_observed\":null" as *u8),ctr)
52 gv_puts("JSON=" as *u8); sys_write(1,out,n); gv_puts("\n" as *u8)
53 }
54 gv_check("undersized projection refused" as *u8,cg_json_into(m,out,1)<0,ctr)
55 cg_free(m)
56 var pn: i64=0
57 let real: *u8=sys_read_file("knowledge/compare/gameengine.plan" as *u8,&pn)
58 gv_check("real gameengine plan present" as *u8,pn>0,ctr)
59 if pn>0 {
60 let actual: *CgModel=cg_parse(real,pn)
61 gv_check("real plan valid input" as *u8,actual.error==0,ctr)
62 gv_check("real plan growth not fabricated" as *u8,actual.count==0,ctr)
63 cg_free(actual); sys_free_file(real,pn)
64 }
65 return gv_verdict("COMPARE-GROWTH" as *u8,ctr,"authored graph only; external evidence, mastery and investment remain unknown" as *u8)
66}