1
- package tuple
1
+ package tuple_test
2
2
3
3
import (
4
4
"testing"
5
5
6
6
"github.com/stretchr/testify/require"
7
+ "github.com/barweiss/go-tuple"
7
8
)
8
9
9
10
{ {/* These variables can be used when the context of dot changes. */} }
10
11
{ {$indexes := .Indexes} }
11
12
{ {$len := .Len} }
12
13
13
14
func TestT{ {.Len} }_New(t *testing.T) {
14
- tup := New{{len .Indexes} }({ {range .Indexes} }{ {. | quote} },{ {end} })
15
- require.Equal(t, T{ {.Len} }[{ {range $i , $index := .Indexes} }{ {if gt $i 0} }, { {end} }string{ {end} }]{
15
+ tup := tuple. New{{len .Indexes} }({ {range .Indexes} }{ {. | quote} },{ {end} })
16
+ require.Equal(t, tuple. T{ {.Len} }[{ {range $i , $index := .Indexes} }{ {if gt $i 0} }, { {end} }string{ {end} }]{
16
17
{{range .Indexes -} }
17
18
V{ {.} }: { {. | quote} },
18
19
{ {end} }
19
20
}, tup)
20
21
}
21
22
22
23
func TestT{ {.Len} }_Len(t *testing.T) {
23
- tup := New{{len .Indexes} }({ {range .Indexes} }{ {. | quote} },{ {end} })
24
+ tup := tuple. New{{len .Indexes} }({ {range .Indexes} }{ {. | quote} },{ {end} })
24
25
require.Equal(t, { {.Len} }, tup.Len())
25
26
}
26
27
27
28
func TestT{ {.Len} }_Values(t *testing.T) {
28
- tup := New{{len .Indexes} }({ {range .Indexes} }{ {. | quote} },{ {end} })
29
+ tup := tuple. New{{len .Indexes} }({ {range .Indexes} }{ {. | quote} },{ {end} })
29
30
{ {range $i , $index := .Indexes} }{ {if gt $i 0} }, { {end} }v{ {$index } }{ {end} } := tup.Values()
30
31
{ {range .Indexes -} }
31
32
require.Equal(t, { {. | quote} }, v{ {.} })
32
33
{ {end -} }
33
34
}
34
35
35
36
func TestT{ {.Len} }_String(t *testing.T) {
36
- tup := New{{len .Indexes} }({ {range .Indexes} }{ {. | quote} },{ {end} })
37
+ tup := tuple. New{{len .Indexes} }({ {range .Indexes} }{ {. | quote} },{ {end} })
37
38
require.Equal(t, `[{ {range $i , $index := .Indexes} }{ {if gt $i 0} } { {end} }{ {. | quote} }{ {end} }]`, tup.String())
38
39
}
39
40
40
41
func TestT{ {.Len} }_GoString(t *testing.T) {
41
- tup := New{{len .Indexes} }({ {range .Indexes} }{ {. | quote} },{ {end} })
42
+ tup := tuple. New{{len .Indexes} }({ {range .Indexes} }{ {. | quote} },{ {end} })
42
43
require.Equal(t, `tuple.T{ {.Len} }[{ {range $i , $index := .Indexes} }{ {if gt $i 0} }, { {end} }string{ {end} }]{
43
44
{{- range $i , $index := .Indexes -} }
44
45
{ {- if gt $i 0} }, { {end -} }
@@ -48,14 +49,14 @@ func TestT{{.Len}}_GoString(t *testing.T) {
48
49
}
49
50
50
51
func TestT{ {.Len} }_ToArray(t *testing.T) {
51
- tup := New{{len .Indexes} }({ {range .Indexes} }{ {. | quote} },{ {end} })
52
+ tup := tuple. New{{len .Indexes} }({ {range .Indexes} }{ {. | quote} },{ {end} })
52
53
require.Equal(t, [{ {.Len} }]any{
53
54
{{range .Indexes -} }{ {. | quote} },{ {end} }
54
55
}, tup.Array())
55
56
}
56
57
57
58
func TestT{ {.Len} }_ToSlice(t *testing.T) {
58
- tup := New{{len .Indexes} }({ {range .Indexes} }{ {. | quote} },{ {end} })
59
+ tup := tuple. New{{len .Indexes} }({ {range .Indexes} }{ {. | quote} },{ {end} })
59
60
require.Equal(t, []any{
60
61
{{range .Indexes -} }{ {. | quote} },{ {end} }
61
62
}, tup.Slice())
@@ -93,8 +94,8 @@ func TestT{{.Len}}_FromArrayX(t *testing.T) {
93
94
94
95
for _, tt := range tests {
95
96
t.Run(tt.name, func(t *testing.T) {
96
- do := func () T{{.Len} }[{ {range $i , $index := .Indexes} }{ {if gt $i 0} }, { {end} }string{ {end} }] {
97
- return FromArray{{.Len} }X[{ {range $i , $index := .Indexes} }{ {if gt $i 0} }, { {end} }string{ {end} }](tt.array)
97
+ do := func () tuple. T{{.Len} }[{ {range $i , $index := .Indexes} }{ {if gt $i 0} }, { {end} }string{ {end} }] {
98
+ return tuple. FromArray{{.Len} }X[{ {range $i , $index := .Indexes} }{ {if gt $i 0} }, { {end} }string{ {end} }](tt.array)
98
99
}
99
100
100
101
if tt.wantPanic {
@@ -104,7 +105,7 @@ func TestT{{.Len}}_FromArrayX(t *testing.T) {
104
105
return
105
106
}
106
107
107
- require.Equal(t, New{ {len .Indexes} }({ {range .Indexes} }{ {. | quote} },{ {end} }), do())
108
+ require.Equal(t, tuple. New{ {len .Indexes} }({ {range .Indexes} }{ {. | quote} },{ {end} }), do())
108
109
})
109
110
}
110
111
}
@@ -141,14 +142,14 @@ func TestT{{.Len}}_FromArray(t *testing.T) {
141
142
142
143
for _, tt := range tests {
143
144
t.Run(tt.name, func(t *testing.T) {
144
- tup, err := FromArray{{.Len} }[{ {range $i , $index := .Indexes} }{ {if gt $i 0} }, { {end} }string{ {end} }](tt.array)
145
+ tup, err := tuple. FromArray{{.Len} }[{ {range $i , $index := .Indexes} }{ {if gt $i 0} }, { {end} }string{ {end} }](tt.array)
145
146
if tt.wantErr {
146
147
require.Error(t, err)
147
148
return
148
149
}
149
150
150
151
require.NoError(t, err)
151
- require.Equal(t, New{ {len .Indexes} }({ {range .Indexes} }{ {. | quote} },{ {end} }), tup)
152
+ require.Equal(t, tuple. New{ {len .Indexes} }({ {range .Indexes} }{ {. | quote} },{ {end} }), tup)
152
153
})
153
154
}
154
155
}
@@ -205,8 +206,8 @@ func TestT{{.Len}}_FromSliceX(t *testing.T) {
205
206
206
207
for _, tt := range tests {
207
208
t.Run(tt.name, func(t *testing.T) {
208
- do := func () T{{.Len} }[{ {range $i , $index := .Indexes} }{ {if gt $i 0} }, { {end} }string{ {end} }] {
209
- return FromSlice{{.Len} }X[{ {range $i , $index := .Indexes} }{ {if gt $i 0} }, { {end} }string{ {end} }](tt.slice)
209
+ do := func () tuple. T{{.Len} }[{ {range $i , $index := .Indexes} }{ {if gt $i 0} }, { {end} }string{ {end} }] {
210
+ return tuple. FromSlice{{.Len} }X[{ {range $i , $index := .Indexes} }{ {if gt $i 0} }, { {end} }string{ {end} }](tt.slice)
210
211
}
211
212
212
213
if tt.wantPanic {
@@ -216,7 +217,7 @@ func TestT{{.Len}}_FromSliceX(t *testing.T) {
216
217
return
217
218
}
218
219
219
- require.Equal(t, New{ {len .Indexes} }({ {range .Indexes} }{ {. | quote} },{ {end} }), do())
220
+ require.Equal(t, tuple. New{ {len .Indexes} }({ {range .Indexes} }{ {. | quote} },{ {end} }), do())
220
221
})
221
222
}
222
223
}
@@ -273,14 +274,14 @@ func TestT{{.Len}}_FromSlice(t *testing.T) {
273
274
274
275
for _, tt := range tests {
275
276
t.Run(tt.name, func(t *testing.T) {
276
- tup, err := FromSlice{{.Len} }[{ {range $i , $index := .Indexes} }{ {if gt $i 0} }, { {end} }string{ {end} }](tt.slice)
277
+ tup, err := tuple. FromSlice{{.Len} }[{ {range $i , $index := .Indexes} }{ {if gt $i 0} }, { {end} }string{ {end} }](tt.slice)
277
278
if tt.wantErr {
278
279
require.Error(t, err)
279
280
return
280
281
}
281
282
282
283
require.NoError(t, err)
283
- require.Equal(t, New{ {len .Indexes} }({ {range .Indexes} }{ {. | quote} },{ {end} }), tup)
284
+ require.Equal(t, tuple. New{ {len .Indexes} }({ {range .Indexes} }{ {. | quote} },{ {end} }), tup)
284
285
})
285
286
}
286
287
}
0 commit comments