From 778a44dd64dd716e3bd398590cde4e7a9a3fe97a Mon Sep 17 00:00:00 2001 From: "Jamil Lambert, PhD" Date: Thu, 13 Jun 2024 16:08:38 +0100 Subject: [PATCH] Refactor merkle block test Refactored the unit test as suggested in https://github.com/rust-bitcoin/rust-bitcoin/pull/2859#issuecomment-2161710169 --- bitcoin/src/merkle_tree/block.rs | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/bitcoin/src/merkle_tree/block.rs b/bitcoin/src/merkle_tree/block.rs index 438f0bfe1..7f93a6914 100644 --- a/bitcoin/src/merkle_tree/block.rs +++ b/bitcoin/src/merkle_tree/block.rs @@ -825,16 +825,25 @@ mod tests { 1b01e32f570200000002252bf9d75c4f481ebb6278d708257d1f12beb6dd30301d26c623f789b2ba6fc0e2d3\ 2adb5f8ca820731dff234a84e78ec30bce4ec69dbd562d0b2b8266bf4e5a0105").unwrap(); let mb: MerkleBlock = encode::deserialize(&mb_bytes).unwrap(); + // Authenticate and extract matched transaction ids let mut matches: Vec = vec![]; let mut index: Vec = vec![]; assert!(mb.extract_matches(&mut matches, &mut index).is_ok()); - assert_eq!(1, matches.len()); - assert_eq!( - "5a4ebf66822b0b2d56bd9dc64ece0bc38ee7844a23ff1d7320a88c5fdb2ad3e2".parse::().unwrap(), - matches[0] - ); - assert_eq!(1, index.len()); - assert_eq!(1, index[0]); + + // The matches and index vectors are coupled, should be the same length. + assert_eq!(matches.len(), index.len()); + + // There should only be one match. + assert_eq!(matches.len(), 1); + + // The match should come from index 1. + assert_eq!(index[0], 1); + + // And we know the txid we want. + let want = "5a4ebf66822b0b2d56bd9dc64ece0bc38ee7844a23ff1d7320a88c5fdb2ad3e2" + .parse::() + .expect("failed to parse txid"); + assert_eq!(matches[0], want); } }