From d31b7d8968aa0986b7dbca8d97d20ffcd8b034c2 Mon Sep 17 00:00:00 2001 From: Hawstein Date: Thu, 31 Aug 2017 20:50:06 +0800 Subject: [PATCH] add more hash backward compatibility test for bloom (#6425) --- util/bloom/src/lib.rs | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/util/bloom/src/lib.rs b/util/bloom/src/lib.rs index 4fdb61d40..22a2cbc2a 100644 --- a/util/bloom/src/lib.rs +++ b/util/bloom/src/lib.rs @@ -245,14 +245,33 @@ mod tests { } #[test] - fn hash_backward_compatibility() { + fn hash_backward_compatibility_for_new() { let ss = vec!["you", "should", "not", "break", "hash", "backward", "compatibility"]; let mut bloom = Bloom::new(16, 8); for s in ss.iter() { bloom.set(&s); } + let drained_elems: HashSet = bloom.drain_journal().entries.into_iter().map(|t| t.1).collect(); let expected: HashSet = [2094615114573771027u64, 244675582389208413u64].iter().cloned().collect(); assert_eq!(drained_elems, expected); + assert_eq!(bloom.k_num, 12); + } + + #[test] + fn hash_backward_compatibility_for_from_parts() { + let stored_state = vec![2094615114573771027u64, 244675582389208413u64]; + let k_num = 12; + let bloom = Bloom::from_parts(&stored_state, k_num); + + let ss = vec!["you", "should", "not", "break", "hash", "backward", "compatibility"]; + let tt = vec!["this", "doesnot", "exist"]; + for s in ss.iter() { + assert!(bloom.check(&s)); + } + for s in tt.iter() { + assert!(!bloom.check(&s)); + } + } }