goBloomFilter/bloomfilter_test.go
2025-05-09 18:07:21 +08:00

52 lines
1.0 KiB
Go

package bloomfilter
import (
"context"
"errors"
"testing"
"github.com/redis/go-redis/v9"
)
func TestBloomFilter_Local(t *testing.T) {
filter := NewBloomFilter(10000, 0.1)
err := filter.Add([]byte("key1"))
if err != nil {
t.Error(err)
}
err = filter.Add([]byte("key2"))
if err != nil {
t.Error(err)
}
t.Error(filter.MightContain([]byte("key1")))
t.Error(filter.MightContain([]byte("key2")))
t.Error(filter.MightContain([]byte("key13")))
}
func TestBloomFilter_Redis(t *testing.T) {
client := redis.NewClient(&redis.Options{
Addr: "192.168.8.1:6379",
})
filter := NewBloomFilter(10000, 0.1, UseRedis(client, "redhatbloom"))
err := filter.Add([]byte("key1"))
if err != nil && !errors.Is(err, redis.Nil) {
t.Error(err)
}
err = filter.Add([]byte("key2"))
if err != nil && !errors.Is(err, redis.Nil) {
t.Error(err)
}
t.Error(filter.MightContain([]byte("key1")))
t.Error(filter.MightContain([]byte("key2")))
t.Error(filter.MightContain([]byte("key13")))
client.Del(context.Background(), "redhatbloom")
}