123456789101112131415161718192021222324252627282930313233343536373839404142 |
- package udptransfer
- import (
- "fmt"
- "math/rand"
- "sort"
- "testing"
- )
- func Test_insert_delete_rid(t *testing.T) {
- var a []uint32
- var b = make([]uint32, 0, 1e3)
- var uniq = make(map[uint32]int)
- // insert into a with random
- for i := 0; i < cap(b); i++ {
- n := uint32(rand.Int31())
- if _, y := uniq[n]; !y {
- b = append(b, n)
- uniq[n] = 1
- }
- dups := 1
- if i&0xf == 0xf {
- dups = 3
- }
- for j := 0; j < dups; j++ {
- if aa := insertRid(a, n); aa != nil {
- a = aa
- }
- }
- }
- sort.Sort(u32Slice(b))
- bStr := fmt.Sprintf("%d", b)
- aStr := fmt.Sprintf("%d", a)
- assert(aStr == bStr, t, "a!=b")
- for i := 0; i < len(b); i++ {
- if aa := deleteRid(a, b[i]); aa != nil {
- a = aa
- }
- }
- assert(len(a) == 0, t, "a!=0")
- }
|