Tizen_4.0 base
[platform/upstream/docker-engine.git] / hack / integration-cli-on-swarm / agent / master / set_test.go
1 package main
2
3 import (
4         "fmt"
5         "reflect"
6         "testing"
7         "time"
8 )
9
10 func generateInput(inputLen int) []string {
11         input := []string{}
12         for i := 0; i < inputLen; i++ {
13                 input = append(input, fmt.Sprintf("s%d", i))
14         }
15
16         return input
17 }
18
19 func testChunkStrings(t *testing.T, inputLen, numChunks int) {
20         t.Logf("inputLen=%d, numChunks=%d", inputLen, numChunks)
21         input := generateInput(inputLen)
22         result := chunkStrings(input, numChunks)
23         t.Logf("result has %d chunks", len(result))
24         inputReconstructedFromResult := []string{}
25         for i, chunk := range result {
26                 t.Logf("chunk %d has %d elements", i, len(chunk))
27                 inputReconstructedFromResult = append(inputReconstructedFromResult, chunk...)
28         }
29         if !reflect.DeepEqual(input, inputReconstructedFromResult) {
30                 t.Fatal("input != inputReconstructedFromResult")
31         }
32 }
33
34 func TestChunkStrings_4_4(t *testing.T) {
35         testChunkStrings(t, 4, 4)
36 }
37
38 func TestChunkStrings_4_1(t *testing.T) {
39         testChunkStrings(t, 4, 1)
40 }
41
42 func TestChunkStrings_1_4(t *testing.T) {
43         testChunkStrings(t, 1, 4)
44 }
45
46 func TestChunkStrings_1000_8(t *testing.T) {
47         testChunkStrings(t, 1000, 8)
48 }
49
50 func TestChunkStrings_1000_9(t *testing.T) {
51         testChunkStrings(t, 1000, 9)
52 }
53
54 func testShuffleStrings(t *testing.T, inputLen int, seed int64) {
55         t.Logf("inputLen=%d, seed=%d", inputLen, seed)
56         x := generateInput(inputLen)
57         shuffleStrings(x, seed)
58         t.Logf("shuffled: %v", x)
59 }
60
61 func TestShuffleStrings_100(t *testing.T) {
62         testShuffleStrings(t, 100, time.Now().UnixNano())
63 }