nx_contentdiff_display_gate.nx source
↩ module page · 40 lines · 2609 B
1import "nx_contentdiff.nx"
2import "nx_gate_verdict.nx"
3
4func cdg_len(p: *u8) -> i64 {
5 var n: i64 = 0
6 while p[n] != (0 as u8) { n = n + 1 }
7 return n
8}
9
10func main() -> i64 {
11 let ctr: *i64 = gv_ctr()
12 gv_head("CONTENTDIFF-DISPLAY" as *u8)
13 gv_check("default-sized explicit limit" as *u8, cd_display_arg("8" as *u8) == 8, ctr)
14 gv_check("larger explicit limit" as *u8, cd_display_arg("18" as *u8) == 18, ctr)
15 gv_check("leading zeros" as *u8, cd_display_arg("0018" as *u8) == 18, ctr)
16 gv_check("all marker" as *u8, cd_display_arg("all" as *u8) == CD_SHOW_ALL, ctr)
17 gv_check("i64 maximum" as *u8, cd_display_arg("9223372036854775807" as *u8) == CD_I64_MAX, ctr)
18 gv_check("overflow refused" as *u8, cd_display_arg("9223372036854775808" as *u8) == CD_SHOW_BAD, ctr)
19 gv_check("empty refused" as *u8, cd_display_arg("" as *u8) == CD_SHOW_BAD, ctr)
20 gv_check("zero refused" as *u8, cd_display_arg("0" as *u8) == CD_SHOW_BAD, ctr)
21 gv_check("negative refused" as *u8, cd_display_arg("-1" as *u8) == CD_SHOW_BAD, ctr)
22 gv_check("trailing garbage refused" as *u8, cd_display_arg("8x" as *u8) == CD_SHOW_BAD, ctr)
23 gv_check("all suffix refused" as *u8, cd_display_arg("allx" as *u8) == CD_SHOW_BAD, ctr)
24 let a: *u8 = "old-01!\nold-02!\nold-03!\nold-04!\nold-05!\nold-06!\nold-07!\nold-08!\nold-09!\nold-10!\n" as *u8
25 let b: *u8 = "new-01!\n" as *u8
26 let an: i64 = cdg_len(a); let bn: i64 = cdg_len(b)
27 gv_check("legacy lost helper still shows eight" as *u8, cd_show_lost(a, an, b, bn) == CD_SHOW, ctr)
28 gv_check("legacy other helper still shows eight" as *u8, cd_show_other(a, an, b, bn) == CD_SHOW, ctr)
29 gv_check("explicit limit reveals all ten losses" as *u8, cd_show_lost_limit(a, an, b, bn, 18) == 10, ctr)
30 gv_check("explicit limit reveals all ten other losses" as *u8, cd_show_other_limit(a, an, b, bn, 18) == 10, ctr)
31 gv_check("explicit one limits gained rows" as *u8, cd_show_gained_limit(b, bn, a, an, 1) == 1, ctr)
32 let prm: *i64 = sys_mmap(CDL_P_SLOTS*8) as *i64
33 let st: *i64 = sys_mmap(CDL_O_SLOTS*8) as *i64
34 prm[CDL_P_MINLEN] = CD_MINLEN; prm[CDL_P_MAXSAMPLES] = 0; prm[CDL_P_MAXTOKLEN] = 0
35 let permil: i64 = cdl_lost(a, an, b, bn, prm, st)
36 gv_check("shared loss still rejects all ten missing runs" as *u8, st[CDL_O_LOST] == 10, ctr)
37 gv_check("shared loss permil remains complete loss" as *u8, permil == 1000, ctr)
38 let rc: i64 = gv_verdict("CONTENTDIFF-DISPLAY" as *u8, ctr, "display controls expose bounded diagnostics without changing shared loss or verdict" as *u8)
39 sys_exit(rc); return rc
40}