nx_doc_render_mermaid_test.nx source
↩ module page · 64 lines · 2508 B
1// nx_doc_render_mermaid_test.nx -- KAT for D10 Mermaid emitter.
2//
3// Tests primitive correctness via the escape primitive (which has
4// substrate-honest return value). The emit_* functions write to
5// stdout; their correctness is verified by composition smoke
6// (next session emits a real graph + greps the output).
7
8import "nx_syscalls.nx"
9import "nx_string_ops.nx"
10import "nx_doc_render_mermaid.nx"
11
12func main() -> i64 {
13 // ----- T1 Direction enum -----
14 if nx_mermaid_dir_is_valid(NX_MERMAID_LR) != 1 { return 1 }
15 if nx_mermaid_dir_is_valid(NX_MERMAID_TD) != 1 { return 2 }
16 if nx_mermaid_dir_is_valid(0 - 1) != 0 { return 3 }
17 if nx_mermaid_dir_is_valid(NX_MERMAID_N) != 0 { return 4 }
18
19 // ----- T2 Escape id: alphanumeric passes through -----
20 let src1: *u8 = "nx_doc_census"
21 let dst1: *u8 = sys_mmap(64)
22 let n1: i64 = nx_doc_mermaid_escape_id(src1, 13, dst1, 64)
23 if n1 != 13 { return 10 }
24 if dst1[0] != 110 { return 11 } // 'n'
25 if dst1[1] != 120 { return 12 } // 'x'
26 if dst1[2] != 95 { return 13 } // '_'
27 if dst1[3] != 100 { return 14 } // 'd' at index 3 of "nx_doc_census"
28
29 // ----- T3 Escape id: dots and slashes replaced with underscore -----
30 let src2: *u8 = "foo.bar/baz"
31 let dst2: *u8 = sys_mmap(64)
32 let n2: i64 = nx_doc_mermaid_escape_id(src2, 11, dst2, 64)
33 if n2 != 11 { return 20 }
34 if dst2[0] != 102 { return 21 } // 'f'
35 if dst2[3] != 95 { return 22 } // '_' (was '.')
36 if dst2[4] != 98 { return 23 } // 'b'
37 if dst2[7] != 95 { return 24 } // '_' (was '/')
38 if dst2[8] != 98 { return 25 } // 'b'
39
40 // ----- T4 Escape id: dash preserved -----
41 let src3: *u8 = "feedback-foo-bar"
42 let dst3: *u8 = sys_mmap(64)
43 let n3: i64 = nx_doc_mermaid_escape_id(src3, 16, dst3, 64)
44 if n3 != 16 { return 30 }
45 if dst3[8] != 45 { return 31 } // '-' preserved
46 if dst3[12] != 45 { return 32 } // '-' preserved
47
48 // ----- T5 Escape id: digit + uppercase -----
49 let src4: *u8 = "NX42_x"
50 let dst4: *u8 = sys_mmap(64)
51 let n4: i64 = nx_doc_mermaid_escape_id(src4, 6, dst4, 64)
52 if n4 != 6 { return 40 }
53 if dst4[0] != 78 { return 41 } // 'N'
54 if dst4[2] != 52 { return 42 } // '4'
55 if dst4[3] != 50 { return 43 } // '2'
56
57 // ----- T6 Escape id: cap exhaustion -----
58 let src5: *u8 = "abcdef"
59 let dst5: *u8 = sys_mmap(64)
60 let n5: i64 = nx_doc_mermaid_escape_id(src5, 6, dst5, 3)
61 if n5 != -1 { return 50 }
62
63 return 0
64}