mirror of
https://github.com/moby/moby.git
synced 2026-01-11 10:41:43 +00:00
And generate the ServiceInfo struct from the Swagger spec. Signed-off-by: Cory Snider <csnider@mirantis.com>
85 lines
1.8 KiB
Go
85 lines
1.8 KiB
Go
package iterutil
|
|
|
|
import (
|
|
"maps"
|
|
"slices"
|
|
"strconv"
|
|
"strings"
|
|
"testing"
|
|
|
|
"gotest.tools/v3/assert"
|
|
)
|
|
|
|
func TestSameValues(t *testing.T) {
|
|
a := []int{1, 2, 3, 4, 3}
|
|
b := []int{3, 4, 3, 2, 1}
|
|
c := []int{1, 2, 3, 4}
|
|
|
|
assert.Check(t, SameValues(slices.Values(a), slices.Values(a)))
|
|
assert.Check(t, SameValues(slices.Values(c), slices.Values(c)))
|
|
assert.Check(t, SameValues(slices.Values(a), slices.Values(b)))
|
|
assert.Check(t, !SameValues(slices.Values(a), slices.Values(c)))
|
|
}
|
|
|
|
func TestDeref(t *testing.T) {
|
|
a := make([]*int, 3)
|
|
for i := range a {
|
|
a[i] = &i
|
|
}
|
|
b := slices.Collect(Deref(slices.Values(a)))
|
|
assert.DeepEqual(t, b, []int{0, 1, 2})
|
|
}
|
|
|
|
func TestChain(t *testing.T) {
|
|
a := []int{1, 2, 3}
|
|
b := []int{4, 5}
|
|
c := []int{6}
|
|
|
|
ab := Chain(slices.Values(a), slices.Values(b))
|
|
abc := Chain(ab, slices.Values(c))
|
|
|
|
assert.DeepEqual(t, slices.Collect(ab), []int{1, 2, 3, 4, 5})
|
|
assert.DeepEqual(t, slices.Collect(abc), []int{1, 2, 3, 4, 5, 6})
|
|
}
|
|
|
|
func TestChain2(t *testing.T) {
|
|
a := map[string]int{
|
|
"a": 1,
|
|
"b": 2,
|
|
"c": 3,
|
|
}
|
|
b := map[string]int{
|
|
"d": 4,
|
|
"e": 5,
|
|
}
|
|
c := map[string]int{
|
|
"f": 6,
|
|
}
|
|
|
|
ab := Chain2(maps.All(a), maps.All(b))
|
|
abc := Chain2(ab, maps.All(c))
|
|
|
|
expab := maps.Clone(a)
|
|
maps.Insert(expab, maps.All(b))
|
|
|
|
expabc := maps.Clone(expab)
|
|
maps.Insert(expabc, maps.All(c))
|
|
|
|
assert.DeepEqual(t, maps.Collect(ab), expab)
|
|
assert.DeepEqual(t, maps.Collect(abc), expabc)
|
|
}
|
|
|
|
func TestMap(t *testing.T) {
|
|
a := []int{1, 2, 3}
|
|
b := slices.Collect(Map(slices.Values(a), strconv.Itoa))
|
|
assert.DeepEqual(t, b, []string{"1", "2", "3"})
|
|
}
|
|
|
|
func TestMap2(t *testing.T) {
|
|
a := map[string]int{"a": 1, "b": 2, "c": 3}
|
|
b := maps.Collect(Map2(maps.All(a), func(k string, v int) (string, string) {
|
|
return strings.ToUpper(k), strconv.Itoa(v)
|
|
}))
|
|
assert.DeepEqual(t, b, map[string]string{"A": "1", "B": "2", "C": "3"})
|
|
}
|