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 }