|
|
@@ -58,3 +58,42 @@ func TestGenerator(t *testing.T) {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+func BenchmarkGenerator(b *testing.B) {
|
|
|
+ var input [types.BloomBitLength][types.BloomByteLength]byte
|
|
|
+ b.Run("empty", func(b *testing.B) {
|
|
|
+ b.ReportAllocs()
|
|
|
+ b.ResetTimer()
|
|
|
+ for i := 0; i < b.N; i++ {
|
|
|
+ // Crunch the input through the generator and verify the result
|
|
|
+ gen, err := NewGenerator(types.BloomBitLength)
|
|
|
+ if err != nil {
|
|
|
+ b.Fatalf("failed to create bloombit generator: %v", err)
|
|
|
+ }
|
|
|
+ for j, bloom := range input {
|
|
|
+ if err := gen.AddBloom(uint(j), bloom); err != nil {
|
|
|
+ b.Fatalf("bloom %d: failed to add: %v", i, err)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ })
|
|
|
+ for i := 0; i < types.BloomBitLength; i++ {
|
|
|
+ rand.Read(input[i][:])
|
|
|
+ }
|
|
|
+ b.Run("random", func(b *testing.B) {
|
|
|
+ b.ReportAllocs()
|
|
|
+ b.ResetTimer()
|
|
|
+ for i := 0; i < b.N; i++ {
|
|
|
+ // Crunch the input through the generator and verify the result
|
|
|
+ gen, err := NewGenerator(types.BloomBitLength)
|
|
|
+ if err != nil {
|
|
|
+ b.Fatalf("failed to create bloombit generator: %v", err)
|
|
|
+ }
|
|
|
+ for j, bloom := range input {
|
|
|
+ if err := gen.AddBloom(uint(j), bloom); err != nil {
|
|
|
+ b.Fatalf("bloom %d: failed to add: %v", i, err)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ })
|
|
|
+}
|