split test

This commit is contained in:
mossid 2018-10-16 04:09:41 +09:00
parent 9d809d7855
commit 27b8322a27
2 changed files with 75 additions and 69 deletions

75
store/list_test.go Normal file
View File

@ -0,0 +1,75 @@
package store
import (
"math/rand"
"testing"
sdk "github.com/cosmos/cosmos-sdk/types"
"github.com/stretchr/testify/require"
)
func TestList(t *testing.T) {
key := sdk.NewKVStoreKey("test")
ctx, cdc := defaultComponents(key)
store := ctx.KVStore(key)
lm := NewList(cdc, store)
val := S{1, true}
var res S
lm.Push(val)
require.Equal(t, uint64(1), lm.Len())
lm.Get(uint64(0), &res)
require.Equal(t, val, res)
val = S{2, false}
lm.Set(uint64(0), val)
lm.Get(uint64(0), &res)
require.Equal(t, val, res)
val = S{100, false}
lm.Push(val)
require.Equal(t, uint64(2), lm.Len())
lm.Get(uint64(1), &res)
require.Equal(t, val, res)
lm.Delete(uint64(1))
require.Equal(t, uint64(2), lm.Len())
lm.Iterate(&res, func(index uint64) (brk bool) {
var temp S
lm.Get(index, &temp)
require.Equal(t, temp, res)
require.True(t, index != 1)
return
})
lm.Iterate(&res, func(index uint64) (brk bool) {
lm.Set(index, S{res.I + 1, !res.B})
return
})
lm.Get(uint64(0), &res)
require.Equal(t, S{3, true}, res)
}
func TestListRandom(t *testing.T) {
key := sdk.NewKVStoreKey("test")
ctx, cdc := defaultComponents(key)
store := ctx.KVStore(key)
list := NewList(cdc, store)
mocklist := []uint32{}
for i := 0; i < 100; i++ {
item := rand.Uint32()
list.Push(item)
mocklist = append(mocklist, item)
}
for k, v := range mocklist {
var i uint32
require.NotPanics(t, func() { list.Get(uint64(k), &i) })
require.Equal(t, v, i)
}
}

View File

@ -1,7 +1,6 @@
package store
import (
// "math/rand"
"testing"
"github.com/stretchr/testify/require"
@ -30,52 +29,6 @@ func defaultComponents(key sdk.StoreKey) (sdk.Context, *codec.Codec) {
return ctx, cdc
}
func TestList(t *testing.T) {
key := sdk.NewKVStoreKey("test")
ctx, cdc := defaultComponents(key)
store := ctx.KVStore(key)
lm := NewList(cdc, store)
val := S{1, true}
var res S
lm.Push(val)
require.Equal(t, uint64(1), lm.Len())
lm.Get(uint64(0), &res)
require.Equal(t, val, res)
val = S{2, false}
lm.Set(uint64(0), val)
lm.Get(uint64(0), &res)
require.Equal(t, val, res)
val = S{100, false}
lm.Push(val)
require.Equal(t, uint64(2), lm.Len())
lm.Get(uint64(1), &res)
require.Equal(t, val, res)
lm.Delete(uint64(1))
require.Equal(t, uint64(2), lm.Len())
lm.Iterate(&res, func(index uint64) (brk bool) {
var temp S
lm.Get(index, &temp)
require.Equal(t, temp, res)
require.True(t, index != 1)
return
})
lm.Iterate(&res, func(index uint64) (brk bool) {
lm.Set(index, S{res.I + 1, !res.B})
return
})
lm.Get(uint64(0), &res)
require.Equal(t, S{3, true}, res)
}
func TestQueue(t *testing.T) {
key := sdk.NewKVStoreKey("test")
ctx, cdc := defaultComponents(key)
@ -146,26 +99,4 @@ func TestKeys(t *testing.T) {
err = cdc.UnmarshalBinary(store.Get(TopKey()), &top)
require.Nil(t, err)
require.Equal(t, top, queue.getTop())
}
/*
func TestListRandom(t *testing.T) {
key := sdk.NewKVStoreKey("test")
ctx, cdc := defaultComponents(key)
store := ctx.KVStore(key)
list := NewList(cdc, store)
mocklist := []uint32{}
for i := 0; i < 10000; {
limit := rand.Int31() % 1000
for j := int32(0); j < limit; j++ {
item := rand.Uint32()
list.Push(item)
mocklist = append(mocklist, item)
}
require.Equal()
}
}
*/