1
0
Fork 0
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:
Pavel Zavyalov 2022-09-26 17:13:02 +06:00
parent dc30b3f927
commit 3aeb1058f8
No known key found for this signature in database
GPG key ID: D12476F8A1107A26

View file

@ -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
}
}