zcash_history: Migrate tests to V2 format

V2 is implemented as a wrapper around V1, so this simply expands the
tested code.
This commit is contained in:
Jack Grigg 2021-06-11 02:12:01 +01:00
parent e84bb874af
commit fcbe9a842a
1 changed files with 28 additions and 23 deletions

View File

@ -327,34 +327,39 @@ fn combine_nodes<'a, V: Version>(left: IndexedNode<'a, V>, right: IndexedNode<'a
mod tests { mod tests {
use super::{Entry, EntryKind, EntryLink, Tree}; use super::{Entry, EntryKind, EntryLink, Tree};
use crate::{NodeData, V1}; use crate::{node_data, NodeData, Version, V2};
use assert_matches::assert_matches; use assert_matches::assert_matches;
use quickcheck::{quickcheck, TestResult}; use quickcheck::{quickcheck, TestResult};
fn leaf(height: u32) -> NodeData { fn leaf(height: u32) -> node_data::V2 {
NodeData { node_data::V2 {
consensus_branch_id: 1, v1: NodeData {
subtree_commitment: [0u8; 32], consensus_branch_id: 1,
start_time: 0, subtree_commitment: [0u8; 32],
end_time: 0, start_time: 0,
start_target: 0, end_time: 0,
end_target: 0, start_target: 0,
start_sapling_root: [0u8; 32], end_target: 0,
end_sapling_root: [0u8; 32], start_sapling_root: [0u8; 32],
subtree_total_work: 0.into(), end_sapling_root: [0u8; 32],
start_height: height as u64, subtree_total_work: 0.into(),
end_height: height as u64, start_height: height as u64,
sapling_tx: 7, end_height: height as u64,
sapling_tx: 7,
},
start_orchard_root: [0u8; 32],
end_orchard_root: [0u8; 32],
orchard_tx: 42,
} }
} }
fn initial() -> Tree<V1> { fn initial() -> Tree<V2> {
let node1 = Entry::new_leaf(leaf(1)); let node1 = Entry::new_leaf(leaf(1));
let node2 = Entry::new_leaf(leaf(2)); let node2 = Entry::new_leaf(leaf(2));
let node3 = Entry { let node3 = Entry {
data: NodeData::combine(&node1.data, &node2.data), data: V2::combine(&node1.data, &node2.data),
kind: EntryKind::Leaf, kind: EntryKind::Leaf,
}; };
@ -362,7 +367,7 @@ mod tests {
} }
// returns tree with specified number of leafs and it's root // returns tree with specified number of leafs and it's root
fn generated(length: u32) -> Tree<V1> { fn generated(length: u32) -> Tree<V2> {
assert!(length >= 3); assert!(length >= 3);
let mut tree = initial(); let mut tree = initial();
for i in 2..length { for i in 2..length {
@ -393,7 +398,7 @@ mod tests {
// //
// so only (3) is added as real leaf // so only (3) is added as real leaf
// while new root, (4g) is generated one // while new root, (4g) is generated one
assert_eq!(new_root.data.end_height, 3); assert_eq!(new_root.data.v1.end_height, 3);
assert_eq!(appended.len(), 1); assert_eq!(appended.len(), 1);
// ** APPEND 4 ** // ** APPEND 4 **
@ -417,7 +422,7 @@ mod tests {
// //
// so (4), (5), (6) are added as real leaves // so (4), (5), (6) are added as real leaves
// and new root, (6) is stored one // and new root, (6) is stored one
assert_eq!(new_root.data.end_height, 4); assert_eq!(new_root.data.v1.end_height, 4);
assert_eq!(appended.len(), 3); assert_eq!(appended.len(), 3);
assert_matches!(tree.root(), EntryLink::Stored(6)); assert_matches!(tree.root(), EntryLink::Stored(6));
@ -444,7 +449,7 @@ mod tests {
// //
// so (7) is added as real leaf // so (7) is added as real leaf
// and new root, (8g) is generated one // and new root, (8g) is generated one
assert_eq!(new_root.data.end_height, 5); assert_eq!(new_root.data.v1.end_height, 5);
assert_eq!(appended.len(), 1); assert_eq!(appended.len(), 1);
assert_matches!(tree.root(), EntryLink::Generated(_)); assert_matches!(tree.root(), EntryLink::Generated(_));
tree.for_children(tree.root(), |l, r| { tree.for_children(tree.root(), |l, r| {
@ -476,7 +481,7 @@ mod tests {
// //
// so (7) is added as real leaf // so (7) is added as real leaf
// and new root, (10g) is generated one // and new root, (10g) is generated one
assert_eq!(new_root.data.end_height, 6); assert_eq!(new_root.data.v1.end_height, 6);
assert_eq!(appended.len(), 2); assert_eq!(appended.len(), 2);
assert_matches!(tree.root(), EntryLink::Generated(_)); assert_matches!(tree.root(), EntryLink::Generated(_));
tree.for_children(tree.root(), |l, r| { tree.for_children(tree.root(), |l, r| {
@ -511,7 +516,7 @@ mod tests {
// //
// so (10) is added as real leaf // so (10) is added as real leaf
// and new root, (12g) is generated one // and new root, (12g) is generated one
assert_eq!(new_root.data.end_height, 7); assert_eq!(new_root.data.v1.end_height, 7);
assert_eq!(appended.len(), 1); assert_eq!(appended.len(), 1);
assert_matches!(tree.root(), EntryLink::Generated(_)); assert_matches!(tree.root(), EntryLink::Generated(_));
tree.for_children(tree.root(), |l, r| { tree.for_children(tree.root(), |l, r| {