github.com/wtfutil/wtf@v0.43.0/utils/conversions_test.go (about) 1 package utils 2 3 import ( 4 "testing" 5 6 "github.com/stretchr/testify/assert" 7 ) 8 9 func Test_MapToStrs(t *testing.T) { 10 expected := map[string]string{ 11 "a": "a", 12 "b": "b", 13 "c": "c", 14 } 15 16 source := make(map[string]interface{}) 17 for _, val := range expected { 18 source[val] = val 19 } 20 21 assert.Equal(t, expected, MapToStrs(source)) 22 } 23 24 func Test_IntsToUints(t *testing.T) { 25 tests := []struct { 26 name string 27 src []int 28 expected []uint 29 }{ 30 { 31 name: "empty set", 32 src: []int{}, 33 expected: []uint{}, 34 }, 35 { 36 name: "full set", 37 src: []int{1, 2, 3}, 38 expected: []uint{1, 2, 3}, 39 }, 40 } 41 42 for _, tt := range tests { 43 t.Run(tt.name, func(t *testing.T) { 44 actual := IntsToUints(tt.src) 45 assert.Equal(t, tt.expected, actual) 46 }) 47 } 48 } 49 50 func Test_ToInts(t *testing.T) { 51 expected := []int{1, 2, 3} 52 53 source := make([]interface{}, len(expected)) 54 for idx, val := range expected { 55 source[idx] = val 56 } 57 58 assert.Equal(t, expected, ToInts(source)) 59 } 60 61 func Test_ToStrs(t *testing.T) { 62 expectedInts := []int{1, 2, 3} 63 expectedStrs := []string{"1", "2", "3"} 64 65 fromInts := make([]interface{}, 3) 66 for idx, val := range expectedInts { 67 fromInts[idx] = val 68 } 69 70 fromStrs := make([]interface{}, 3) 71 for idx, val := range expectedStrs { 72 fromStrs[idx] = val 73 } 74 75 assert.Equal(t, expectedStrs, ToStrs(fromInts)) 76 assert.Equal(t, expectedStrs, ToStrs(fromStrs)) 77 } 78 79 func Test_ToUints(t *testing.T) { 80 expected := []uint{1, 2, 3} 81 82 source := make([]interface{}, len(expected)) 83 for idx, val := range expected { 84 source[idx] = val 85 } 86 87 assert.Equal(t, expected, ToUints(source)) 88 }