From 2536b815ecec6491f05ff12ed7c06846a7f4215b Mon Sep 17 00:00:00 2001 From: Michael Sproul Date: Fri, 20 Dec 2024 11:12:56 +1100 Subject: [PATCH] Add some basic tests --- tree_hash/src/impls.rs | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/tree_hash/src/impls.rs b/tree_hash/src/impls.rs index 9a47e28..54ea302 100644 --- a/tree_hash/src/impls.rs +++ b/tree_hash/src/impls.rs @@ -258,6 +258,9 @@ impl TreeHash for Bitfield> { #[cfg(test)] mod test { use super::*; + use ssz::{BitList, BitVector}; + use std::str::FromStr; + use typenum::{U32, U8}; #[test] fn bool() { @@ -295,4 +298,36 @@ mod test { ] ); } + + #[test] + fn bitvector() { + let empty_bitvector = BitVector::::new(); + assert_eq!(empty_bitvector.tree_hash_root(), Hash256::ZERO); + + let small_bitvector_bytes = vec![0xff_u8, 0xee, 0xdd, 0xcc]; + let small_bitvector = + BitVector::::from_bytes(small_bitvector_bytes.clone().into()).unwrap(); + assert_eq!( + small_bitvector.tree_hash_root().as_slice()[..4], + small_bitvector_bytes + ); + } + + #[test] + fn bitlist() { + let empty_bitlist = BitList::::with_capacity(8).unwrap(); + assert_eq!( + empty_bitlist.tree_hash_root(), + Hash256::from_str("0x5ac78d953211aa822c3ae6e9b0058e42394dd32e5992f29f9c12da3681985130") + .unwrap() + ); + + let mut small_bitlist = BitList::::with_capacity(4).unwrap(); + small_bitlist.set(1, true).unwrap(); + assert_eq!( + small_bitlist.tree_hash_root(), + Hash256::from_str("0x7eb03d394d83a389980b79897207be3a6512d964cb08978bb7f3cfc0db8cfb8a") + .unwrap() + ); + } }