github.com/yankunsam/loki/v2@v2.6.3-0.20220817130409-389df5235c27/pkg/util/shard_test.go (about)

     1  package util
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/stretchr/testify/assert"
     7  )
     8  
     9  func TestShuffleShardExpectedInstancesPerZone(t *testing.T) {
    10  	tests := []struct {
    11  		shardSize int
    12  		numZones  int
    13  		expected  int
    14  	}{
    15  		{
    16  			shardSize: 1,
    17  			numZones:  1,
    18  			expected:  1,
    19  		},
    20  		{
    21  			shardSize: 1,
    22  			numZones:  3,
    23  			expected:  1,
    24  		},
    25  		{
    26  			shardSize: 3,
    27  			numZones:  3,
    28  			expected:  1,
    29  		},
    30  		{
    31  			shardSize: 4,
    32  			numZones:  3,
    33  			expected:  2,
    34  		},
    35  		{
    36  			shardSize: 6,
    37  			numZones:  3,
    38  			expected:  2,
    39  		},
    40  	}
    41  
    42  	for _, test := range tests {
    43  		assert.Equal(t, test.expected, ShuffleShardExpectedInstancesPerZone(test.shardSize, test.numZones))
    44  	}
    45  }
    46  
    47  func TestShuffleShardExpectedInstances(t *testing.T) {
    48  	tests := []struct {
    49  		shardSize int
    50  		numZones  int
    51  		expected  int
    52  	}{
    53  		{
    54  			shardSize: 1,
    55  			numZones:  1,
    56  			expected:  1,
    57  		},
    58  		{
    59  			shardSize: 1,
    60  			numZones:  3,
    61  			expected:  3,
    62  		},
    63  		{
    64  			shardSize: 3,
    65  			numZones:  3,
    66  			expected:  3,
    67  		},
    68  		{
    69  			shardSize: 4,
    70  			numZones:  3,
    71  			expected:  6,
    72  		},
    73  		{
    74  			shardSize: 6,
    75  			numZones:  3,
    76  			expected:  6,
    77  		},
    78  	}
    79  
    80  	for _, test := range tests {
    81  		assert.Equal(t, test.expected, ShuffleShardExpectedInstances(test.shardSize, test.numZones))
    82  	}
    83  }