mirror of
https://github.com/HDT3213/godis.git
synced 2025-10-05 00:42:43 +08:00
61 lines
1.2 KiB
Go
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
|
|
}
|
|
}
|