mirror of
				https://github.com/traefik/traefik.git
				synced 2025-10-31 00:11:38 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			85 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			85 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| package ecs
 | |
| 
 | |
| import (
 | |
| 	"testing"
 | |
| 
 | |
| 	"github.com/stretchr/testify/assert"
 | |
| )
 | |
| 
 | |
| func TestChunkIDs(t *testing.T) {
 | |
| 	testCases := []struct {
 | |
| 		desc     string
 | |
| 		count    int
 | |
| 		expected []int
 | |
| 	}{
 | |
| 		{
 | |
| 			desc:     "0 element",
 | |
| 			count:    0,
 | |
| 			expected: []int(nil),
 | |
| 		},
 | |
| 		{
 | |
| 			desc:     "1 element",
 | |
| 			count:    1,
 | |
| 			expected: []int{1},
 | |
| 		},
 | |
| 		{
 | |
| 			desc:     "99 elements, 1 chunk",
 | |
| 			count:    99,
 | |
| 			expected: []int{99},
 | |
| 		},
 | |
| 		{
 | |
| 			desc:     "100 elements, 1 chunk",
 | |
| 			count:    100,
 | |
| 			expected: []int{100},
 | |
| 		},
 | |
| 		{
 | |
| 			desc:     "101 elements, 2 chunks",
 | |
| 			count:    101,
 | |
| 			expected: []int{100, 1},
 | |
| 		},
 | |
| 		{
 | |
| 			desc:     "199 elements, 2 chunks",
 | |
| 			count:    199,
 | |
| 			expected: []int{100, 99},
 | |
| 		},
 | |
| 		{
 | |
| 			desc:     "200 elements, 2 chunks",
 | |
| 			count:    200,
 | |
| 			expected: []int{100, 100},
 | |
| 		},
 | |
| 		{
 | |
| 			desc:     "201 elements, 3 chunks",
 | |
| 			count:    201,
 | |
| 			expected: []int{100, 100, 1},
 | |
| 		},
 | |
| 		{
 | |
| 			desc:     "555 elements, 5 chunks",
 | |
| 			count:    555,
 | |
| 			expected: []int{100, 100, 100, 100, 100, 55},
 | |
| 		},
 | |
| 		{
 | |
| 			desc:     "1001 elements, 11 chunks",
 | |
| 			count:    1001,
 | |
| 			expected: []int{100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 1},
 | |
| 		},
 | |
| 	}
 | |
| 
 | |
| 	for _, test := range testCases {
 | |
| 		t.Run(test.desc, func(t *testing.T) {
 | |
| 			t.Parallel()
 | |
| 
 | |
| 			var IDs []string
 | |
| 			for range test.count {
 | |
| 				IDs = append(IDs, "a")
 | |
| 			}
 | |
| 
 | |
| 			var outCount []int
 | |
| 			for el := range chunkIDs(IDs) {
 | |
| 				outCount = append(outCount, len(el))
 | |
| 			}
 | |
| 
 | |
| 			assert.Equal(t, test.expected, outCount)
 | |
| 		})
 | |
| 	}
 | |
| }
 |