From 733b8943807528218da15c644b0136423026064d Mon Sep 17 00:00:00 2001 From: krushimir Date: Wed, 12 Feb 2025 20:18:27 +0100 Subject: [PATCH] Ensure unique leaf columns in `smt-subtree` bench --- benches/smt-subtree.rs | 1 + src/merkle/smt/full/concurrent/mod.rs | 9 +++++++++ 2 files changed, 10 insertions(+) diff --git a/benches/smt-subtree.rs b/benches/smt-subtree.rs index 89cd66cb..6938a334 100644 --- a/benches/smt-subtree.rs +++ b/benches/smt-subtree.rs @@ -100,6 +100,7 @@ fn smt_subtree_random(c: &mut Criterion) { }) .collect(); leaves.sort(); + leaves.dedup_by_key(|leaf| leaf.col); leaves }, |leaves| { diff --git a/src/merkle/smt/full/concurrent/mod.rs b/src/merkle/smt/full/concurrent/mod.rs index fc5d71e1..8b13e46c 100644 --- a/src/merkle/smt/full/concurrent/mod.rs +++ b/src/merkle/smt/full/concurrent/mod.rs @@ -478,6 +478,15 @@ fn build_subtree( tree_depth: u8, bottom_depth: u8, ) -> (UnorderedMap, SubtreeLeaf) { + #[cfg(debug_assertions)] + { + let mut seen_cols = BTreeSet::new(); + for leaf in &leaves { + if !seen_cols.insert(leaf.col) { + panic!("Duplicate column found in subtree: {}", leaf.col); + } + } + } debug_assert!(bottom_depth <= tree_depth); debug_assert!(Integer::is_multiple_of(&bottom_depth, &SUBTREE_DEPTH)); debug_assert!(leaves.len() <= usize::pow(2, SUBTREE_DEPTH as u32));