github.com/vc42/parquet-go@v0.0.0-20240320194221-1a9adb5f23f5/bloom/block_test.go (about) 1 package bloom_test 2 3 import ( 4 "math" 5 "testing" 6 7 "github.com/vc42/parquet-go/bloom" 8 ) 9 10 func TestBlock(t *testing.T) { 11 for i := uint64(0); i < math.MaxUint32; i = (i * 2) + 1 { 12 x := uint32(i) 13 b := bloom.Block{} 14 b.Insert(x) 15 if !b.Check(x) { 16 t.Fatalf("bloom filter block does not contain the value that was inserted: %d", x) 17 } 18 if b.Check(x - 1) { 19 t.Fatalf("bloom filter block contains value that was not inserted: %d", ^x) 20 } 21 if b.Check(x + 1) { 22 t.Fatalf("bloom filter block contains value that was not inserted: %d", ^x) 23 } 24 if b.Check(^x) { 25 t.Fatalf("bloom filter block contains value that was not inserted: %d", ^x) 26 } 27 } 28 } 29 30 func BenchmarkBlockInsert(b *testing.B) { 31 x := bloom.Block{} 32 for i := 0; i < b.N; i++ { 33 x.Insert(uint32(i)) 34 } 35 b.SetBytes(bloom.BlockSize) 36 } 37 38 func BenchmarkBlockCheck(b *testing.B) { 39 x := bloom.Block{} 40 x.Insert(42) 41 for i := 0; i < b.N; i++ { 42 x.Check(42) 43 } 44 b.SetBytes(bloom.BlockSize) 45 }