Files
redis-go/datastruct/set/set_test.go
2024-07-29 13:59:18 +08:00

61 lines
1.2 KiB
Go

package set
import (
"github.com/hdt3213/godis/lib/utils"
"strconv"
"testing"
)
func TestSet(t *testing.T) {
size := 10
set := Make()
for i := 0; i < size; i++ {
set.Add(strconv.Itoa(i))
}
for i := 0; i < size; i++ {
ok := set.Has(strconv.Itoa(i))
if !ok {
t.Error("expected true actual false, key: " + strconv.Itoa(i))
}
}
for i := 0; i < size; i++ {
ok := set.Remove(strconv.Itoa(i))
if ok != 1 {
t.Error("expected true actual false, key: " + strconv.Itoa(i))
}
}
for i := 0; i < size; i++ {
ok := set.Has(strconv.Itoa(i))
if ok {
t.Error("expected false actual true, key: " + strconv.Itoa(i))
}
}
}
func TestSetScan(t *testing.T) {
set := Make()
size := 10
for i := 0; i < size; i++ {
str := "a" + utils.RandString(5)
set.Add(str)
}
keys, nextCursor := set.SetScan(0, size, "*")
if len(keys) != size {
t.Errorf("expect %d keys, actual: %d", size, len(keys))
return
}
if nextCursor != 0 {
t.Errorf("expect 0, actual: %d", nextCursor)
return
}
for i := 0; i < size; i++ {
str := "b" + utils.RandString(5)
set.Add(str)
}
keys, _ = set.SetScan(0, size*2, "a*")
if len(keys) != size {
t.Errorf("expect %d keys, actual: %d", size, len(keys))
return
}
}