aboutsummaryrefslogtreecommitdiff
path: root/weed/udptransfer/endpoint_test.go
blob: 01be073bc51b1701c1490003308bac7334e9e11d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
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")
}