提交 9437b3af 作者: Jakub Sztandera

test: 100% coverage on blocks/set

License: MIT
Signed-off-by: 's avatarJakub Sztandera <kubuxu@protonmail.ch>
上级 685cd28d
package set
import (
"testing"
bu "github.com/ipfs/go-ipfs/blocks/blocksutil"
k "github.com/ipfs/go-ipfs/blocks/key"
)
func exampleKeys() []k.Key {
res := make([]k.Key, 1<<8)
gen := bu.NewBlockGenerator()
for i := uint64(0); i < 1<<8; i++ {
res[i] = gen.Next().Key()
}
return res
}
func checkSet(set BlockSet, keySlice []k.Key, t *testing.T) {
for i, key := range keySlice {
if i&(1<<2) == 0 {
if set.HasKey(key) == false {
t.Error("key should be in the set")
}
} else if i&(1<<1) == 0 {
if set.HasKey(key) == true {
t.Error("key shouldn't be in the set")
}
} else if i&(1<<0) == 0 {
if set.HasKey(key) == false {
t.Error("key should be in the set")
}
}
}
}
func TestSetWorks(t *testing.T) {
set := NewSimpleBlockSet()
keys := exampleKeys()
for i, key := range keys {
if i&(1<<0) == 0 {
set.AddBlock(key)
}
}
for i, key := range keys {
if i&(1<<1) == 0 {
set.RemoveBlock(key)
}
}
for i, key := range keys {
if (i)&(1<<2) == 0 {
set.AddBlock(key)
}
}
checkSet(set, keys, t)
addedKeys := set.GetKeys()
newSet := SimpleSetFromKeys(addedKeys)
// same check works on a new set
checkSet(newSet, keys, t)
bloom := set.GetBloomFilter()
for _, key := range addedKeys {
if bloom.Find([]byte(key)) == false {
t.Error("bloom doesn't contain expected key")
}
}
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论