capability_skeleton/
tree_sub_branch_ordering_measurer.rs1crate::ix!();
3
4impl TreeSubBranchOrderingMeasurer for Skeleton {
5 #[instrument(level = "trace", skip(self))]
6 fn measure_tree_sub_branch_orderings(&self) -> Vec<SubBranchOrdering> {
7 let mut results = Vec::with_capacity(self.nodes().len());
8 for node in self.nodes() {
9 let ord = node.ordering().cloned().unwrap_or(SubBranchOrdering::None);
10 results.push(ord);
11 }
12 results
13 }
14}
15
16#[cfg(test)]
17mod skeleton_sub_branch_ordering_measurer_assessment {
18 use super::*;
19
20 #[traced_test]
21 fn check_ordering_is_unknown_for_all_nodes() {
22 let n0 = SkeletonNodeBuilder::default()
23 .id(0u16)
24 .child_ids(vec![1u16])
25 .name("root")
26 .original_key("root")
27 .build(NodeKind::Dispatch)
28 .unwrap();
29 let n1 = SkeletonNodeBuilder::default()
30 .id(1u16)
31 .name("child")
32 .original_key("child")
33 .build(NodeKind::LeafHolder)
34 .unwrap();
35
36 let skel = SkeletonBuilder::default()
37 .nodes(vec![n0, n1])
38 .root_id(Some(0u16))
39 .build()
40 .unwrap();
41
42 let orderings = skel.measure_tree_sub_branch_orderings();
43 assert_eq!(orderings.len(), 2);
44 for o in orderings {
45 match o {
46 SubBranchOrdering::None => {},
47 _ => panic!("Expected None ordering for Skeleton node"),
48 }
49 }
50 }
51}