package bloomfilter import ( "context" "errors" "github.com/go-redis/redis/v8" "testing" ) 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") }