code wiki / (root) / nx_water_design_test.nx

nx_water_design_test.nx source

↩ module page · 42 lines · 1905 B

1// nx_water_design_test.nx -- smoke for nx_water_design. Proves the full 2// research->design chain: raw condensate is flat AND unsafe; treatment makes 3// it potable; remineralization makes it delicious + healthful; and the 4// harvester recommender + yield compose in. 5// Exit code = failed assertion number; 0 = all pass. 6 7import "nx_syscalls.nx" 8import "nx_water_awg.nx" 9import "nx_water_quality.nx" 10import "nx_water_design.nx" 11 12func main() -> i64 { 13 // --- raw atmospheric condensate: flat AND unsafe (Legionella risk) --- 14 let raw: *NxWaterSample = wd_raw_condensate() 15 if wq_taste_score(raw) != 15 { return 1 } // insipid 16 if wq_is_potable(raw) != 0 { return 2 } // not safe 17 if wq_safety_admit(raw) != WQ_REFUSED_BACTERIA { return 3 } 18 19 // --- treatment (UV + filter) makes it potable but still flat --- 20 wd_treat(raw) 21 if wq_is_potable(raw) != 1 { return 4 } 22 if wq_is_healthful(raw) != 0 { return 5 } // safe but no minerals 23 if wq_taste_score(raw) != 15 { return 6 } // still flat 24 25 // --- the fully designed water: delicious + healthful + safe --- 26 let best: *NxWaterSample = wd_design_best_water() 27 if wq_taste_score(best) != 100 { return 7 } 28 if wq_tds_taste_class(best.tds) != WQ_EXCELLENT { return 8 } 29 if wq_is_potable(best) != 1 { return 9 } 30 if wq_is_healthful(best) != 1 { return 10 } 31 32 // --- MEASURED EXCEED: designed water beats raw condensate on taste --- 33 if wq_taste_score(best) <= wq_taste_score(raw) { return 11 } 34 35 // --- harvester choice + yield compose from the climate --- 36 if wd_recommend_harvester(30, 70) != WA_CONDENSATION { return 12 } 37 if wd_recommend_harvester(25, 20) != WA_SORBENT { return 13 } 38 if wd_recommend_harvester(20, 35) != WA_PASSIVE_CAP { return 14 } 39 if wd_daily_yield_ml(30, 70, 5, 100) != 34560 { return 15 } 40 41 return 0 42}