summaryrefslogtreecommitdiffstats
path: root/src/merkle/mod.rs
diff options
context:
space:
mode:
authorSanto Cariotti <santo@dcariotti.me>2025-06-13 11:29:29 +0000
committerSanto Cariotti <santo@dcariotti.me>2025-06-13 11:29:29 +0000
commit04891bbcaac75e887d57844548b61141cb6ebc07 (patch)
tree9be7b87519c95ab1bd1d03895042b67e79b127a0 /src/merkle/mod.rs
Init
Diffstat (limited to 'src/merkle/mod.rs')
-rw-r--r--src/merkle/mod.rs35
1 files changed, 35 insertions, 0 deletions
diff --git a/src/merkle/mod.rs b/src/merkle/mod.rs
new file mode 100644
index 0000000..b6da2f9
--- /dev/null
+++ b/src/merkle/mod.rs
@@ -0,0 +1,35 @@
+mod merkletree;
+mod node;
+
+#[cfg(test)]
+mod tests {
+ use crate::hasher::DefaultHasher;
+
+ use super::*;
+
+ #[test]
+ fn test_merkle_tree_hashing() {
+ let data = vec!["a", "b", "c", "d"];
+ let tree = merkletree::MerkleTree::new(&DefaultHasher, data);
+
+ assert_eq!(tree.height(), 3);
+
+ assert_eq!(
+ tree.root().hash(),
+ "58c89d709329eb37285837b042ab6ff72c7c8f74de0446b091b6a0131c102cfd"
+ );
+ }
+
+ #[test]
+ fn test_merkle_tree_single_leaf() {
+ let data = vec!["hello"];
+ let tree = merkletree::MerkleTree::new(&DefaultHasher, data);
+
+ assert_eq!(tree.height(), 2);
+ assert_eq!(tree.len(), 2);
+ assert_eq!(
+ tree.root().hash(),
+ "286d189fda11bf4e906b6973a173009f47ede16532f1bae726223f8ee155d73b"
+ );
+ }
+}