github.com/andy2046/gopie@v0.7.0/pkg/subset/subset_test.go (about) 1 package subset 2 3 import ( 4 "strconv" 5 "testing" 6 ) 7 8 func TestSubset(t *testing.T) { 9 subsetSize := 10 10 clientSize := 300 11 backendSize := 300 12 loopC := make([]struct{}, clientSize) 13 loopB := make([]struct{}, backendSize) 14 results := make(map[string]int) 15 min, max := clientSize, 1 16 17 clients := make([]int, 0, clientSize) 18 for i := range loopC { 19 clients = append(clients, i) 20 } 21 22 for i := range loopC { 23 backends := make([]string, 0, backendSize) 24 for i := range loopB { 25 backends = append(backends, strconv.Itoa(i)) 26 } 27 sets := Subset(backends, clients[i], subsetSize) 28 for _, b := range sets { 29 if _, ok := results[b]; !ok { 30 results[b] = 1 31 } else { 32 results[b]++ 33 } 34 } 35 } 36 37 t.Log("results:") 38 for k, v := range results { 39 t.Logf("backend %s -> client count %d", k, v) 40 if v > max { 41 max = v 42 } 43 if v < min { 44 min = v 45 } 46 } 47 t.Logf("min -> %d max -> %d (max-min)/min -> %d%%", min, max, 100*(max-min)/min) 48 }