Skip to content

Commit b7be9b8

Browse files
committed
migrate from testify to is
1 parent 8f4c959 commit b7be9b8

File tree

12 files changed

+199
-140
lines changed

12 files changed

+199
-140
lines changed

README.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,9 @@ And much more.
2020

2121
+ Uses the power of Go 1.18+ generics.
2222
+ No code generation.
23-
+ Sync and async versions.
23+
+ No dependencies (except [is](https://github.com/matryer/is) for testing).
24+
+ Pure Go.
25+
+ Sync and async versions of all the main functions.
2426
+ For slices and channels.
2527

2628
```bash

channels/channel_test.go

Lines changed: 35 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,11 @@ import (
55
"testing"
66

77
"github.com/life4/genesis/channels"
8-
"github.com/stretchr/testify/require"
8+
"github.com/matryer/is"
99
)
1010

1111
func TestToSlice(t *testing.T) {
12+
is := is.New(t)
1213
f := func(given []int) {
1314
c := make(chan int, 1)
1415
go func() {
@@ -18,14 +19,15 @@ func TestToSlice(t *testing.T) {
1819
close(c)
1920
}()
2021
actual := channels.ToSlice(c)
21-
require.Equal(t, given, actual)
22+
is.Equal(given, actual)
2223
}
2324
f([]int{})
2425
f([]int{1})
2526
f([]int{1, 2, 3, 1, 2})
2627
}
2728

2829
func TestAny(t *testing.T) {
30+
is := is.New(t)
2931
f := func(given []int, expected bool) {
3032
even := func(t int) bool { return t%2 == 0 }
3133
c := make(chan int, 1)
@@ -36,7 +38,7 @@ func TestAny(t *testing.T) {
3638
close(c)
3739
}()
3840
actual := channels.Any(c, even)
39-
require.Equal(t, expected, actual)
41+
is.Equal(expected, actual)
4042
}
4143
f([]int{}, false)
4244
f([]int{1}, false)
@@ -49,6 +51,7 @@ func TestAny(t *testing.T) {
4951
}
5052

5153
func TestAll(t *testing.T) {
54+
is := is.New(t)
5255
f := func(given []int, expected bool) {
5356
even := func(t int) bool { return t%2 == 0 }
5457
c := make(chan int, 1)
@@ -59,7 +62,7 @@ func TestAll(t *testing.T) {
5962
close(c)
6063
}()
6164
actual := channels.All(c, even)
62-
require.Equal(t, expected, actual)
65+
is.Equal(expected, actual)
6366
}
6467
f([]int{}, true)
6568
f([]int{1}, false)
@@ -71,6 +74,7 @@ func TestAll(t *testing.T) {
7174
}
7275

7376
func TestEach(t *testing.T) {
77+
is := is.New(t)
7478
f := func(given []int) {
7579
c := make(chan int, 1)
7680
go func() {
@@ -84,7 +88,7 @@ func TestEach(t *testing.T) {
8488
channels.Each(c, mapper)
8589
close(result)
8690
actual := channels.ToSlice(result)
87-
require.Equal(t, given, actual)
91+
is.Equal(given, actual)
8892
}
8993

9094
f([]int{})
@@ -94,6 +98,7 @@ func TestEach(t *testing.T) {
9498
}
9599

96100
func TestChunkEvery(t *testing.T) {
101+
is := is.New(t)
97102
f := func(size int, given []int, expected [][]int) {
98103
c := make(chan int, 1)
99104
go func() {
@@ -107,7 +112,7 @@ func TestChunkEvery(t *testing.T) {
107112
for el := range result {
108113
actual = append(actual, el)
109114
}
110-
require.Equal(t, expected, actual)
115+
is.Equal(expected, actual)
111116
}
112117
f(2, []int{}, [][]int{})
113118
f(2, []int{1}, [][]int{{1}})
@@ -117,6 +122,7 @@ func TestChunkEvery(t *testing.T) {
117122
}
118123

119124
func TestCount(t *testing.T) {
125+
is := is.New(t)
120126
f := func(element int, given []int, expected int) {
121127
c := make(chan int, 1)
122128
go func() {
@@ -126,7 +132,7 @@ func TestCount(t *testing.T) {
126132
close(c)
127133
}()
128134
actual := channels.Count(c, element)
129-
require.Equal(t, expected, actual)
135+
is.Equal(expected, actual)
130136
}
131137
f(1, []int{}, 0)
132138
f(1, []int{1}, 1)
@@ -135,6 +141,7 @@ func TestCount(t *testing.T) {
135141
}
136142

137143
func TestDrop(t *testing.T) {
144+
is := is.New(t)
138145
f := func(count int, given []int, expected []int) {
139146
c := make(chan int, 1)
140147
go func() {
@@ -148,7 +155,7 @@ func TestDrop(t *testing.T) {
148155
for el := range result {
149156
actual = append(actual, el)
150157
}
151-
require.Equal(t, expected, actual)
158+
is.Equal(expected, actual)
152159
}
153160
f(1, []int{}, []int{})
154161
f(1, []int{2}, []int{})
@@ -160,6 +167,7 @@ func TestDrop(t *testing.T) {
160167
}
161168

162169
func TestFilter(t *testing.T) {
170+
is := is.New(t)
163171
f := func(given []int, expected []int) {
164172
even := func(t int) bool { return t%2 == 0 }
165173
c := make(chan int, 1)
@@ -171,7 +179,7 @@ func TestFilter(t *testing.T) {
171179
}()
172180
result := channels.Filter(c, even)
173181
actual := channels.ToSlice(result)
174-
require.Equal(t, expected, actual)
182+
is.Equal(expected, actual)
175183
}
176184
f([]int{}, []int{})
177185
f([]int{1}, []int{})
@@ -180,6 +188,7 @@ func TestFilter(t *testing.T) {
180188
}
181189

182190
func TestMap(t *testing.T) {
191+
is := is.New(t)
183192
f := func(given []int, expected []int) {
184193
double := func(el int) int { return (el * 2) }
185194
c := make(chan int, 1)
@@ -201,14 +210,15 @@ func TestMap(t *testing.T) {
201210
}()
202211

203212
actual := channels.ToSlice(c2)
204-
require.Equal(t, expected, actual)
213+
is.Equal(expected, actual)
205214
}
206215
f([]int{}, []int{})
207216
f([]int{1}, []int{2})
208217
f([]int{1, 2, 3}, []int{2, 4, 6})
209218
}
210219

211220
func TestMax(t *testing.T) {
221+
is := is.New(t)
212222
f := func(given []int, expected int, expectedErr error) {
213223
c := make(chan int, 1)
214224
go func() {
@@ -218,8 +228,8 @@ func TestMax(t *testing.T) {
218228
close(c)
219229
}()
220230
actual, actualErr := channels.Max(c)
221-
require.Equal(t, expected, actual)
222-
require.Equal(t, expectedErr, actualErr)
231+
is.Equal(expected, actual)
232+
is.Equal(expectedErr, actualErr)
223233
}
224234
f([]int{}, 0, channels.ErrEmpty)
225235
f([]int{1, 4, 2}, 4, nil)
@@ -228,6 +238,7 @@ func TestMax(t *testing.T) {
228238
}
229239

230240
func TestMin(t *testing.T) {
241+
is := is.New(t)
231242
f := func(given []int, expected int, expectedErr error) {
232243
c := make(chan int, 1)
233244
go func() {
@@ -237,8 +248,8 @@ func TestMin(t *testing.T) {
237248
close(c)
238249
}()
239250
actual, actualErr := channels.Min(c)
240-
require.Equal(t, expected, actual)
241-
require.Equal(t, expectedErr, actualErr)
251+
is.Equal(expected, actual)
252+
is.Equal(expectedErr, actualErr)
242253
}
243254
f([]int{}, 0, channels.ErrEmpty)
244255
f([]int{4, 1, 2}, 1, nil)
@@ -247,6 +258,7 @@ func TestMin(t *testing.T) {
247258
}
248259

249260
func TestReduce(t *testing.T) {
261+
is := is.New(t)
250262
f := func(given []int, expected int) {
251263
c := make(chan int, 1)
252264
go func() {
@@ -257,7 +269,7 @@ func TestReduce(t *testing.T) {
257269
}()
258270
sum := func(el int, acc int) int { return (el) + acc }
259271
actual := channels.Reduce(c, 0, sum)
260-
require.Equal(t, expected, actual)
272+
is.Equal(expected, actual)
261273
}
262274
f([]int{}, 0)
263275
f([]int{1}, 1)
@@ -266,6 +278,7 @@ func TestReduce(t *testing.T) {
266278
}
267279

268280
func TestScan(t *testing.T) {
281+
is := is.New(t)
269282
f := func(given []int, expected []int) {
270283
c := make(chan int, 1)
271284
go func() {
@@ -287,7 +300,7 @@ func TestScan(t *testing.T) {
287300
}()
288301

289302
actual := channels.ToSlice(c2)
290-
require.Equal(t, expected, actual)
303+
is.Equal(expected, actual)
291304
}
292305
f([]int{}, []int{})
293306
f([]int{1}, []int{1})
@@ -296,6 +309,7 @@ func TestScan(t *testing.T) {
296309
}
297310

298311
func TestSum(t *testing.T) {
312+
is := is.New(t)
299313
f := func(given []int, expected int) {
300314
c := make(chan int, 1)
301315
go func() {
@@ -305,7 +319,7 @@ func TestSum(t *testing.T) {
305319
close(c)
306320
}()
307321
actual := channels.Sum(c)
308-
require.Equal(t, expected, actual)
322+
is.Equal(expected, actual)
309323
}
310324
f([]int{}, 0)
311325
f([]int{1}, 1)
@@ -314,20 +328,22 @@ func TestSum(t *testing.T) {
314328
}
315329

316330
func TestTake(t *testing.T) {
331+
is := is.New(t)
317332
f := func(count int, given int, expected []int) {
318333
ctx, cancel := context.WithCancel(context.Background())
319334
seq := channels.Repeat(ctx, given)
320335
seq2 := channels.Take(seq, count)
321336
actual := channels.ToSlice(seq2)
322337
cancel()
323-
require.Equal(t, expected, actual)
338+
is.Equal(expected, actual)
324339
}
325340
f(0, 1, []int{})
326341
f(1, 1, []int{1})
327342
f(2, 1, []int{1, 1})
328343
}
329344

330345
func TestTee(t *testing.T) {
346+
is := is.New(t)
331347
f := func(count int, given []int) {
332348
c := make(chan int, 1)
333349
go func() {
@@ -340,7 +356,7 @@ func TestTee(t *testing.T) {
340356
for _, ch := range chans {
341357
go func(ch chan int) {
342358
actual := channels.ToSlice(ch)
343-
require.Equal(t, given, actual)
359+
is.Equal(given, actual)
344360
}(ch)
345361
}
346362
}

channels/sequence_test.go

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,54 +5,58 @@ import (
55
"testing"
66

77
"github.com/life4/genesis/channels"
8-
"github.com/stretchr/testify/require"
8+
"github.com/matryer/is"
99
)
1010

1111
func TestCounter(t *testing.T) {
12+
is := is.New(t)
1213
f := func(start int, step int, count int, expected []int) {
1314
ctx, cancel := context.WithCancel(context.Background())
1415
seq := channels.Counter(ctx, start, step)
1516
seq2 := channels.Take(seq, count)
1617
actual := channels.ToSlice(seq2)
1718
cancel()
18-
require.Equal(t, expected, actual)
19+
is.Equal(expected, actual)
1920
}
2021
f(1, 2, 4, []int{1, 3, 5, 7})
2122
}
2223

2324
func TestExponential(t *testing.T) {
25+
is := is.New(t)
2426
f := func(start int, factor int, count int, expected []int) {
2527
ctx, cancel := context.WithCancel(context.Background())
2628
seq := channels.Exponential(ctx, start, factor)
2729
seq2 := channels.Take(seq, count)
2830
actual := channels.ToSlice(seq2)
2931
cancel()
30-
require.Equal(t, expected, actual)
32+
is.Equal(expected, actual)
3133
}
3234
f(1, 1, 4, []int{1, 1, 1, 1})
3335
f(1, 2, 4, []int{1, 2, 4, 8})
3436
}
3537

3638
func TestIterate(t *testing.T) {
39+
is := is.New(t)
3740
f := func(start int, count int, expected []int) {
3841
ctx, cancel := context.WithCancel(context.Background())
3942
double := func(val int) int { return val * 2 }
4043
seq := channels.Iterate(ctx, start, double)
4144
seq2 := channels.Take(seq, count)
4245
actual := channels.ToSlice(seq2)
4346
cancel()
44-
require.Equal(t, expected, actual)
47+
is.Equal(expected, actual)
4548
}
4649
f(1, 4, []int{1, 2, 4, 8})
4750
}
4851

4952
func TestRange(t *testing.T) {
53+
is := is.New(t)
5054
f := func(start int, stop int, step int, expected []int) {
5155
ctx, cancel := context.WithCancel(context.Background())
5256
seq := channels.Range(ctx, start, stop, step)
5357
actual := channels.ToSlice(seq)
5458
cancel()
55-
require.Equal(t, expected, actual)
59+
is.Equal(expected, actual)
5660
}
5761
f(1, 4, 1, []int{1, 2, 3})
5862
f(3, 0, -1, []int{3, 2, 1})
@@ -61,24 +65,26 @@ func TestRange(t *testing.T) {
6165
}
6266

6367
func TestRepeat(t *testing.T) {
68+
is := is.New(t)
6469
f := func(count int, given int, expected []int) {
6570
ctx, cancel := context.WithCancel(context.Background())
6671
seq := channels.Repeat(ctx, given)
6772
seq2 := channels.Take(seq, count)
6873
actual := channels.ToSlice(seq2)
6974
cancel()
70-
require.Equal(t, expected, actual)
75+
is.Equal(expected, actual)
7176
}
7277
f(2, 1, []int{1, 1})
7378
}
7479

7580
func TestReplicate(t *testing.T) {
81+
is := is.New(t)
7682
f := func(count int, given int, expected []int) {
7783
ctx, cancel := context.WithCancel(context.Background())
7884
seq := channels.Replicate(ctx, given, count)
7985
actual := channels.ToSlice(seq)
8086
cancel()
81-
require.Equal(t, expected, actual)
87+
is.Equal(expected, actual)
8288
}
8389
f(0, 1, []int{})
8490
f(1, 1, []int{1})

go.mod

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,4 @@ module github.com/life4/genesis
22

33
go 1.18
44

5-
require github.com/stretchr/testify v1.7.0
6-
7-
require (
8-
github.com/davecgh/go-spew v1.1.0 // indirect
9-
github.com/pmezard/go-difflib v1.0.0 // indirect
10-
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c // indirect
11-
)
5+
require github.com/matryer/is v1.4.0

0 commit comments

Comments
 (0)