github.com/searKing/golang/go@v1.2.74/exp/slices/map_test.go (about) 1 // Copyright 2022 The searKing Author. All rights reserved. 2 // Use of this source code is governed by a BSD-style 3 // license that can be found in the LICENSE file. 4 5 package slices_test 6 7 import ( 8 "fmt" 9 "strconv" 10 "testing" 11 12 slices_ "github.com/searKing/golang/go/exp/slices" 13 "golang.org/x/exp/slices" 14 ) 15 16 func TestMap(t *testing.T) { 17 tests := []struct { 18 data []int 19 want []string 20 }{ 21 {nil, nil}, 22 {[]int{}, []string{}}, 23 {[]int{0}, []string{"0"}}, 24 {[]int{1, 0}, []string{"1", "0"}}, 25 {[]int{1, 2}, []string{"1", "2"}}, 26 {[]int{0, 1, 2}, []string{"0", "1", "2"}}, 27 {[]int{0, 1, 0, 2}, []string{"0", "1", "0", "2"}}, 28 } 29 for _, tt := range tests { 30 t.Run(fmt.Sprintf("%v", tt.data), func(t *testing.T) { 31 { 32 got := slices_.Map(tt.data) 33 34 if slices.Compare(got, tt.want) != 0 { 35 t.Errorf("slices_.Filter(%v) = %v, want %v", tt.data, got, tt.want) 36 } 37 } 38 }) 39 } 40 } 41 42 func TestMapFunc(t *testing.T) { 43 tests := []struct { 44 data []int 45 want []string 46 }{ 47 {nil, nil}, 48 {[]int{}, []string{}}, 49 {[]int{0}, []string{"0"}}, 50 {[]int{1, 0}, []string{"1", "0"}}, 51 {[]int{1, 2}, []string{"1", "2"}}, 52 {[]int{0, 1, 2}, []string{"0", "1", "2"}}, 53 {[]int{0, 1, 0, 2}, []string{"0", "1", "0", "2"}}, 54 } 55 for _, tt := range tests { 56 t.Run(fmt.Sprintf("%v", tt.data), func(t *testing.T) { 57 { 58 got := slices_.MapFunc(tt.data, func(e int) string { 59 return strconv.Itoa(e) 60 }) 61 62 if slices.Compare(got, tt.want) != 0 { 63 t.Errorf("slices_.FilterFunc(%v, func(e int) bool {return e != 0}) = %v, want %v", tt.data, got, tt.want) 64 } 65 } 66 }) 67 } 68 }