use snapbox::assert_data_eq;
use snapbox::str;
use super ::*;
#[ test]
fn render_tree_root() {
let tree = Tree::new("foo" );
assert_data_eq!(
format!("{}" , tree),
str![[r#"
foo
"#]]
);
}
#[ test]
fn render_tree_with_leaves() {
let tree = Tree::new("foo" ).with_leaves([Tree::new("bar" ).with_leaves(["baz" ])]);
assert_data_eq!(
format!("{}" , tree),
str![[r#"
foo
└── bar
└── baz
"#]]
);
}
#[ test]
fn render_tree_with_multiple_leaves() {
let tree = Tree::new("foo" ).with_leaves(["bar" , "baz" ]);
assert_data_eq!(
format!("{}" , tree),
str![[r#"
foo
├── bar
└── baz
"#]]
);
}
#[ test]
fn render_tree_with_multiline_leaf() {
let tree = Tree::new("foo" ).with_leaves([
Tree::new("hello\nworld" ).with_multiline(true ),
Tree::new("goodbye\nworld" ).with_multiline(true ),
]);
assert_data_eq!(
format!("{}" , tree),
str![[r#"
foo
├── hello
│ world
└── goodbye
world
"#]]
);
}
#[ test]
fn render_custom_glyphs() {
let root = GlyphPalette {
middle_item: "[mid ]" ,
last_item: "[last ]" ,
item_indent: "[indent ]" ,
middle_skip: "[mskip]" ,
last_skip: "[lskip]" ,
skip_indent: "[iskip ]" ,
};
let middle = GlyphPalette {
middle_item: "(mid )" ,
last_item: "(last )" ,
item_indent: "(indent )" ,
middle_skip: "(mskip)" ,
last_skip: "(lskip)" ,
skip_indent: "(iskip )" ,
};
let tree = Tree::new("node 1" ).with_glyphs(root).with_leaves([
Tree::new("node 1.1" ),
Tree::new("node 1.2" ),
Tree::new("node 1.3" ).with_leaves([
Tree::new("node 1.3.1" ).with_glyphs(middle),
Tree::new("node 1.3.2" ).with_glyphs(middle),
Tree::new("node 1.3.3" )
.with_glyphs(middle)
.with_leaves(["node 1.3.3.1" , "node 1.3.3.2" ]),
]),
Tree::new("node 1.4" ).with_leaves([
Tree::new("node 1.4.1" ),
Tree::new("node 1.4.2" ),
Tree::new("node 1.4.3" ).with_leaves(["node 1.4.3.1" , "node 1.4.3.2" ]),
]),
]);
assert_data_eq!(
format!("{}" , tree),
str![[r#"
node 1
[mid ][indent ]node 1 .1
[mid ][indent ]node 1 .2
[mid ][indent ]node 1 .3
[mskip][iskip ](mid )(indent )node 1 .3 .1
[mskip][iskip ](mid )(indent )node 1 .3 .2
[mskip][iskip ](last )(indent )node 1 .3 .3
[mskip][iskip ](lskip)(iskip )(mid )(indent )node 1 .3 .3 .1
[mskip][iskip ](lskip)(iskip )(last )(indent )node 1 .3 .3 .2
[last ][indent ]node 1 .4
[lskip][iskip ][mid ][indent ]node 1 .4 .1
[lskip][iskip ][mid ][indent ]node 1 .4 .2
[lskip][iskip ][last ][indent ]node 1 .4 .3
[lskip][iskip ][lskip][iskip ][mid ][indent ]node 1 .4 .3 .1
[lskip][iskip ][lskip][iskip ][last ][indent ]node 1 .4 .3 .2
"#]]
);
}
Messung V0.5 in Prozent C=100 H=100 G=100
¤ Dauer der Verarbeitung: 0.8 Sekunden
(vorverarbeitet am 2026-10-01)
¤
*© Formatika GbR, Deutschland