52 lines
1.0 KiB
Go
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")
|
|
}
|