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  }