From e9656f82d1fc2616c2fbd6daa1b9dec2772759ec Mon Sep 17 00:00:00 2001 From: EdJoPaTo Date: Wed, 1 May 2024 18:06:14 +0200 Subject: [PATCH] test(flatten): ensure depth works --- src/flatten.rs | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/flatten.rs b/src/flatten.rs index 9388a7d..35e705e 100644 --- a/src/flatten.rs +++ b/src/flatten.rs @@ -11,6 +11,7 @@ pub struct Flattened<'a, Identifier> { } impl<'a, Identifier> Flattened<'a, Identifier> { + /// Zero based depth. Depth 0 means 0 indentation. #[must_use] pub fn depth(&self) -> usize { self.identifier.len() - 1 @@ -50,6 +51,18 @@ where result } +#[test] +fn depth_works() { + let mut opened = HashSet::new(); + opened.insert(vec!["b"]); + opened.insert(vec!["b", "d"]); + let depths = flatten(&opened, &TreeItem::example(), &[]) + .into_iter() + .map(|flattened| flattened.depth()) + .collect::>(); + assert_eq!(depths, [0, 0, 1, 1, 2, 2, 1, 0]); +} + #[cfg(test)] fn flatten_works(opened: &HashSet>, expected: &[&str]) { let items = TreeItem::example();