github.com/moby/docker@v26.1.3+incompatible/internal/sliceutil/sliceutil_test.go (about) 1 package sliceutil_test 2 3 import ( 4 "net/netip" 5 "strconv" 6 "testing" 7 8 "github.com/docker/docker/internal/sliceutil" 9 ) 10 11 func TestMap(t *testing.T) { 12 s := []int{1, 2, 3} 13 m := sliceutil.Map(s, func(i int) int { return i * 2 }) 14 if len(m) != len(s) { 15 t.Fatalf("expected len %d, got %d", len(s), len(m)) 16 } 17 for i, v := range m { 18 if expected := s[i] * 2; v != expected { 19 t.Fatalf("expected %d, got %d", expected, v) 20 } 21 } 22 } 23 24 func TestMap_TypeConvert(t *testing.T) { 25 s := []int{1, 2, 3} 26 m := sliceutil.Map(s, func(i int) string { return strconv.Itoa(i) }) 27 if len(m) != len(s) { 28 t.Fatalf("expected len %d, got %d", len(s), len(m)) 29 } 30 for i, v := range m { 31 if expected := strconv.Itoa(s[i]); v != expected { 32 t.Fatalf("expected %s, got %s", expected, v) 33 } 34 } 35 } 36 37 func TestMapper(t *testing.T) { 38 s := []string{"1.2.3.4", "fe80::1"} 39 mapper := sliceutil.Mapper(netip.MustParseAddr) 40 m := mapper(s) 41 if len(m) != len(s) { 42 t.Fatalf("expected len %d, got %d", len(s), len(m)) 43 } 44 for i, v := range m { 45 if expected := netip.MustParseAddr(s[i]); v != expected { 46 t.Fatalf("expected %s, got %s", expected, v) 47 } 48 } 49 }