1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
|
pub mod merkletree;
pub mod node;
#[cfg(test)]
mod tests {
use crate::hasher::*;
use super::*;
#[test]
fn test_merkle_tree_with_default_hasher() {
let data = vec!["a", "b", "c", "d"];
let tree = merkletree::MerkleTree::new(&DefaultHasher, data);
assert_eq!(tree.height(), 3);
assert_eq!(tree.root().hash(), "0xc0ff3");
}
#[test]
#[cfg(feature = "sha256")]
fn test_merkle_tree_hashing() {
let data = vec!["a", "b", "c", "d"];
let tree = merkletree::MerkleTree::new(&SHA256Hasher, data);
assert_eq!(tree.height(), 3);
assert_eq!(
tree.root().hash(),
"58c89d709329eb37285837b042ab6ff72c7c8f74de0446b091b6a0131c102cfd"
);
}
#[test]
#[cfg(feature = "sha256")]
fn test_merkle_tree_single_leaf() {
let data = vec!["hello"];
let tree = merkletree::MerkleTree::new(&SHA256Hasher, data);
assert_eq!(tree.height(), 2);
assert_eq!(tree.len(), 2);
assert_eq!(
tree.root().hash(),
"286d189fda11bf4e906b6973a173009f47ede16532f1bae726223f8ee155d73b"
);
}
}
|