@@ -591,27 +591,33 @@ mod tests {
591591
592592 #[ test]
593593 fn seeded_is_same ( ) {
594- let num_bits = 1 << 13 ;
595- let sample_vals = member_nums ( 1000 ) . collect :: < Vec < _ > > ( ) ;
596- for x in 0u8 ..10 {
597- let seed = x as u128 ;
598- assert_eq ! (
599- BloomFilter :: with_num_bits( num_bits)
600- . seed( & seed)
601- . items( sample_vals. iter( ) ) ,
602- BloomFilter :: with_num_bits( num_bits)
603- . seed( & seed)
604- . items( sample_vals. iter( ) )
605- ) ;
606- assert ! (
607- !( BloomFilter :: with_num_bits( num_bits)
608- . seed( & ( seed + 1 ) )
609- . items( sample_vals. iter( ) )
610- == BloomFilter :: with_num_bits( num_bits)
594+ fn seeded_is_same_ < const N : usize > ( ) {
595+ let num_bits = 1 << 10 ;
596+ let sample_vals = member_nums ( 1000 ) . collect :: < Vec < _ > > ( ) ;
597+ for x in 0u8 ..32 {
598+ let seed = x as u128 ;
599+ assert_eq ! (
600+ BloomFilter :: new_builder:: <N >( num_bits)
611601 . seed( & seed)
612- . items( sample_vals. iter( ) ) )
613- ) ;
602+ . items( sample_vals. iter( ) ) ,
603+ BloomFilter :: new_builder:: <N >( num_bits)
604+ . seed( & seed)
605+ . items( sample_vals. iter( ) )
606+ ) ;
607+ assert ! (
608+ !( BloomFilter :: new_builder:: <N >( num_bits)
609+ . seed( & ( seed + 1 ) )
610+ . items( sample_vals. iter( ) )
611+ == BloomFilter :: new_builder:: <N >( num_bits)
612+ . seed( & seed)
613+ . items( sample_vals. iter( ) ) )
614+ ) ;
615+ }
614616 }
617+ seeded_is_same_ :: < 512 > ( ) ;
618+ seeded_is_same_ :: < 256 > ( ) ;
619+ seeded_is_same_ :: < 128 > ( ) ;
620+ seeded_is_same_ :: < 64 > ( ) ;
615621 }
616622
617623 #[ test]
@@ -656,7 +662,10 @@ mod tests {
656662 let thresh = ( expected as f64 * err) as i64 ;
657663 for x in distr {
658664 let diff = ( * x as i64 - expected) . abs ( ) ;
659- assert ! ( diff <= thresh, "{x:?} deviates from {expected:?}" ) ;
665+ assert ! (
666+ diff <= thresh,
667+ "{x:?} deviates from {expected:?}\n Distribution: {distr:?}"
668+ ) ;
660669 }
661670 }
662671
@@ -707,21 +716,23 @@ mod tests {
707716 #[ test]
708717 fn index_hash_distribution ( ) {
709718 fn index_hash_distribution_ < const N : usize > ( thresh_pct : f64 ) {
710- let filter: BloomFilter < N > = BloomFilter :: new_builder ( 1 ) . seed ( & 0 ) . hashes ( 1 ) ;
719+ let filter: BloomFilter < N > = BloomFilter :: new_builder ( 1 ) . seed ( & 42 ) . hashes ( 1 ) ;
711720 let [ mut h1, h2] = get_orginal_hashes ( & filter. hasher , "qwerty" ) ;
712- let mut counts = vec ! [ 0 ; N ] ;
713- let iterations = 10000 * N as u64 ;
721+ assert_eq ! ( h1, 10593016135521423434 ) ;
722+ assert_eq ! ( h2, 17953629391013907857 ) ;
723+ let mut counts = [ 0 ; N ] ;
724+ let iterations = TRIALS * N ;
714725 for _ in 0 ..iterations {
715726 let bit_index = BloomFilter :: < N > :: bit_index ( & mut h1, h2) ;
716727 let index = bit_index % N ;
717728 counts[ index] += 1 ;
718729 }
719730 assert_even_distribution ( & counts, thresh_pct) ;
720731 }
721- index_hash_distribution_ :: < 512 > ( 0.05 ) ;
722- index_hash_distribution_ :: < 256 > ( 0.05 ) ;
723- index_hash_distribution_ :: < 128 > ( 0.05 ) ;
724- index_hash_distribution_ :: < 64 > ( 0.05 ) ;
732+ index_hash_distribution_ :: < 512 > ( 0.25 ) ;
733+ index_hash_distribution_ :: < 256 > ( 0.25 ) ;
734+ index_hash_distribution_ :: < 128 > ( 0.25 ) ;
735+ index_hash_distribution_ :: < 64 > ( 0.25 ) ;
725736 }
726737
727738 #[ test]
0 commit comments