mirror of
https://github.com/anyproto/anytype-heart.git
synced 2025-06-10 18:10:49 +09:00
[feat-GO-212-changes-for-kanban] add tests for random length
This commit is contained in:
parent
dc30b3f927
commit
3aeb1058f8
1 changed files with 43 additions and 4 deletions
|
@ -32,9 +32,9 @@ func Test_ChangesApply(t *testing.T) {
|
|||
assert.Equal(t, changed, res)
|
||||
}
|
||||
|
||||
func Test_RandomSameLength(t *testing.T) {
|
||||
for i := 0; i< 1000; i++ {
|
||||
l := randNum(5, 100)
|
||||
func Test_SameLength(t *testing.T) {
|
||||
for i := 0; i < 10000; i++ {
|
||||
l := randNum(5, 200)
|
||||
origin := getRandArray(l)
|
||||
changed := make([]string, len(origin))
|
||||
copy(changed, origin)
|
||||
|
@ -48,7 +48,46 @@ func Test_RandomSameLength(t *testing.T) {
|
|||
}
|
||||
}
|
||||
|
||||
func Test_DifferentLength(t *testing.T) {
|
||||
for i := 0; i < 10000; i++ {
|
||||
l := randNum(5, 200)
|
||||
origin := getRandArray(l)
|
||||
changed := make([]string, len(origin))
|
||||
copy(changed, origin)
|
||||
rand.Shuffle(len(changed),
|
||||
func(i, j int) { changed[i], changed[j] = changed[j], changed[i] })
|
||||
|
||||
delCnt := randNum(0, 10)
|
||||
for i := 0; i < delCnt; i++ {
|
||||
l := len(changed) - 1
|
||||
if l <= 0 {
|
||||
continue
|
||||
}
|
||||
delIdx := randNum(0, l)
|
||||
changed = Remove(changed, changed[delIdx])
|
||||
}
|
||||
|
||||
insCnt := randNum(0, 10)
|
||||
for i := 0; i < insCnt; i++ {
|
||||
l := len(changed) - 1
|
||||
if l <= 0 {
|
||||
continue
|
||||
}
|
||||
insIdx := randNum(0, l)
|
||||
changed = Insert(changed, insIdx, []string{bson.NewObjectId().Hex()}...)
|
||||
}
|
||||
|
||||
chs := Diff(origin, changed)
|
||||
res := ApplyChanges(origin, chs)
|
||||
|
||||
assert.Equal(t, res, changed)
|
||||
}
|
||||
}
|
||||
|
||||
func randNum(min, max int) int{
|
||||
if max <= min {
|
||||
return max
|
||||
}
|
||||
rand.Seed(time.Now().UnixNano())
|
||||
return rand.Intn(max - min) + min
|
||||
}
|
||||
|
@ -59,4 +98,4 @@ func getRandArray(len int) []string {
|
|||
res[i] = bson.NewObjectId().Hex()
|
||||
}
|
||||
return res
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue