From 5685f6d4b6e47668357c73ca95abdbe8f26ee32d Mon Sep 17 00:00:00 2001 From: Qyriad Date: Fri, 4 Apr 2025 15:09:32 +0200 Subject: [PATCH] SimpleSmt: do not assume that Merkle paths Deref to Vec in tests This is in preparation for the next commit, where we change `SimpleSmt::open()` to return a `SparseMerklePath`, which cannot dereference to a Vec. --- miden-crypto/src/merkle/smt/simple/tests.rs | 26 +++++++++++++++------ 1 file changed, 19 insertions(+), 7 deletions(-) diff --git a/miden-crypto/src/merkle/smt/simple/tests.rs b/miden-crypto/src/merkle/smt/simple/tests.rs index 919fed2..a4a7a6b 100644 --- a/miden-crypto/src/merkle/smt/simple/tests.rs +++ b/miden-crypto/src/merkle/smt/simple/tests.rs @@ -10,8 +10,8 @@ use crate::{ EMPTY_WORD, Word, hash::rpo::Rpo256, merkle::{ - EmptySubtreeRoots, InnerNodeInfo, LeafIndex, MerkleTree, digests_to_words, int_to_leaf, - int_to_node, smt::SparseMerkleTree, + EmptySubtreeRoots, InnerNodeInfo, LeafIndex, MerklePath, MerkleTree, digests_to_words, + int_to_leaf, int_to_node, smt::SparseMerkleTree, }, }; @@ -115,10 +115,22 @@ fn test_depth2_tree() { assert_eq!(VALUES4[3], tree.get_node(NodeIndex::make(2, 3)).unwrap()); // check get_path(): depth 2 - assert_eq!(vec![VALUES4[1], node3], *tree.open(&LeafIndex::<2>::new(0).unwrap()).path); - assert_eq!(vec![VALUES4[0], node3], *tree.open(&LeafIndex::<2>::new(1).unwrap()).path); - assert_eq!(vec![VALUES4[3], node2], *tree.open(&LeafIndex::<2>::new(2).unwrap()).path); - assert_eq!(vec![VALUES4[2], node2], *tree.open(&LeafIndex::<2>::new(3).unwrap()).path); + assert_eq!( + MerklePath::from(vec![VALUES4[1], node3]), + tree.open(&LeafIndex::<2>::new(0).unwrap()).path, + ); + assert_eq!( + MerklePath::from(vec![VALUES4[0], node3]), + tree.open(&LeafIndex::<2>::new(1).unwrap()).path, + ); + assert_eq!( + MerklePath::from(vec![VALUES4[3], node2]), + tree.open(&LeafIndex::<2>::new(2).unwrap()).path, + ); + assert_eq!( + MerklePath::from(vec![VALUES4[2], node2]), + tree.open(&LeafIndex::<2>::new(3).unwrap()).path, + ); } #[test] @@ -239,7 +251,7 @@ fn small_tree_opening_is_consistent() { for (key, path) in cases { let opening = tree.open(&LeafIndex::<3>::new(key).unwrap()); - assert_eq!(path, *opening.path); + assert_eq!(MerklePath::from(path), opening.path); } }