sliceutil_test.go 1.1 KB

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