cross_level_test/
cross_level_test.rs1use ascii_dag::graph::DAG;
3
4fn main() {
5 println!("=== Testing Cross-Level Edge Rendering ===\n");
6
7 println!("Graph structure:");
15 println!(" A (level 0)");
16 println!(" ├─→ B (level 1) - normal edge");
17 println!(" │ └─→ C (level 2) - normal edge");
18 println!(" └─────→ C (level 2) - CROSS-LEVEL edge (skips level 1)\n");
19
20 let mut dag = DAG::new();
21 dag.add_node(1, "A");
22 dag.add_node(2, "B");
23 dag.add_node(3, "C");
24
25 dag.add_edge(1, 2); dag.add_edge(2, 3); dag.add_edge(1, 3); println!("Actual rendering:");
30 println!("{}", dag.render());
31
32 println!("\n---\n");
33
34 println!("Second test - three levels with cross-level:");
36 println!(" Root (level 0)");
37 println!(" ├─→ Mid (level 1)");
38 println!(" │ └─→ End (level 2)");
39 println!(" └─────→ End (level 2) - CROSS-LEVEL\n");
40
41 let mut dag2 = DAG::new();
42 dag2.add_node(1, "Root");
43 dag2.add_node(2, "Mid");
44 dag2.add_node(3, "End");
45
46 dag2.add_edge(1, 2); dag2.add_edge(2, 3); dag2.add_edge(1, 3); println!("Actual rendering:");
51 println!("{}", dag2.render());
52
53 println!("\nDoes 'End' show TWO incoming edges (one from Mid, one from Root)?");
54}