@@ -3,30 +3,35 @@ import { keep, discard } from './strain.ts'
33
44describe ( 'strain' , ( ) => {
55 it ( 'keeps on empty array returns empty array' , ( ) => {
6- expect ( keep < number > ( [ ] , ( e : number ) => e < 10 ) ) . toEqual ( [ ] )
6+ const predicate = ( _ : number ) : boolean => true
7+ expect ( keep < number > ( [ ] , predicate ) ) . toEqual ( [ ] )
78 } )
89
910 xit ( 'keeps everything' , ( ) => {
10- expect ( keep < number > ( [ 1 , 2 , 3 ] , ( e : number ) => e < 10 ) ) . toEqual ( [ 1 , 2 , 3 ] )
11+ const predicate = ( _ : number ) : boolean => true
12+ expect ( keep < number > ( [ 1 , 3 , 5 ] , predicate ) ) . toEqual ( [ 1 , 3 , 5 ] )
13+ } )
14+
15+ xit ( 'keeps nothing' , ( ) => {
16+ const predicate = ( _ : number ) : boolean => false
17+ expect ( keep < number > ( [ 1 , 3 , 5 ] , predicate ) ) . toEqual ( [ ] )
1118 } )
1219
1320 xit ( 'keeps first and last' , ( ) => {
14- expect ( keep < number > ( [ 1 , 2 , 3 ] , ( e : number ) => e % 2 === 1 ) ) . toEqual ( [ 1 , 3 ] )
21+ const predicate = ( e : number ) : boolean => e % 2 === 1
22+ expect ( keep < number > ( [ 1 , 2 , 3 ] , predicate ) ) . toEqual ( [ 1 , 3 ] )
1523 } )
1624
1725 xit ( 'keeps neither first nor last' , ( ) => {
18- expect ( keep < number > ( [ 1 , 2 , 3 , 4 , 5 ] , ( e : number ) => e % 2 === 0 ) ) . toEqual ( [
19- 2 , 4 ,
20- ] )
26+ const predicate = ( e : number ) : boolean => e % 2 === 0
27+ expect ( keep < number > ( [ 1 , 2 , 3 ] , predicate ) ) . toEqual ( [ 2 ] )
2128 } )
2229
2330 xit ( 'keeps strings' , ( ) => {
24- const words = 'apple zebra banana zombies cherimoya zelot' . split ( ' ' )
25- const result = keep < string > (
26- words ,
27- ( word : string ) => word . indexOf ( 'z' ) === 0
28- )
29- expect ( result ) . toEqual ( 'zebra zombies zelot' . split ( ' ' ) )
31+ const words = [ 'apple' , 'zebra' , 'banana' , 'zombies' , 'cherimoya' , 'zealot' ]
32+ const predicate = ( word : string ) : boolean => word . indexOf ( 'z' ) === 0
33+ const result = keep < string > ( words , predicate )
34+ expect ( result ) . toEqual ( [ 'zebra' , 'zombies' , 'zealot' ] )
3035 } )
3136
3237 xit ( 'keeps arrays' , ( ) => {
@@ -39,7 +44,8 @@ describe('strain', () => {
3944 [ 2 , 2 , 1 ] ,
4045 [ 1 , 2 , 5 ] ,
4146 ]
42- const result = keep < number [ ] > ( rows , ( row : number [ ] ) => row . indexOf ( 5 ) > - 1 )
47+ const predicate = ( row : number [ ] ) : boolean => row . indexOf ( 5 ) > - 1
48+ const result = keep < number [ ] > ( rows , predicate )
4349 expect ( result ) . toEqual ( [
4450 [ 5 , 5 , 5 ] ,
4551 [ 5 , 1 , 2 ] ,
@@ -49,29 +55,36 @@ describe('strain', () => {
4955 } )
5056
5157 xit ( 'empty discard' , ( ) => {
52- expect ( discard < number > ( [ ] , ( e : number ) => e < 10 ) ) . toEqual ( [ ] )
58+ const predicate = ( _ : number ) : boolean => true
59+ expect ( discard < number > ( [ ] , predicate ) ) . toEqual ( [ ] )
60+ } )
61+
62+ xit ( 'discards everything' , ( ) => {
63+ const predicate = ( _ : number ) : boolean => true
64+ expect ( discard < number > ( [ 1 , 3 , 5 ] , predicate ) ) . toEqual ( [ ] )
5365 } )
5466
5567 it ( 'discards nothing' , ( ) => {
56- expect ( discard < number > ( [ 1 , 2 , 3 ] , ( e : number ) => e > 10 ) ) . toEqual ( [ 1 , 2 , 3 ] )
68+ const predicate = ( _ : number ) : boolean => false
69+ expect ( discard < number > ( [ 1 , 3 , 5 ] , predicate ) ) . toEqual ( [ 1 , 3 , 5 ] )
5770 } )
5871
5972 xit ( 'discards first and last' , ( ) => {
60- expect ( discard < number > ( [ 1 , 2 , 3 ] , ( e : number ) => e % 2 === 1 ) ) . toEqual ( [ 2 ] )
73+ const predicate = ( e : number ) : boolean => e % 2 === 1
74+ expect ( discard < number > ( [ 1 , 2 , 3 ] , predicate ) ) . toEqual ( [ 2 ] )
6175 } )
6276
6377 xit ( 'discards neither first nor last' , ( ) => {
64- const result = discard < number > ( [ 1 , 2 , 3 , 4 , 5 ] , ( e : number ) => e % 2 === 0 )
65- expect ( result ) . toEqual ( [ 1 , 3 , 5 ] )
78+ const predicate = ( e : number ) : boolean => e % 2 === 0
79+ const result = discard < number > ( [ 1 , 2 , 3 ] , predicate )
80+ expect ( result ) . toEqual ( [ 1 , 3 ] )
6681 } )
6782
6883 xit ( 'discards strings' , ( ) => {
69- const words = 'apple zebra banana zombies cherimoya zelot' . split ( ' ' )
70- const result = discard < string > (
71- words ,
72- ( word : string ) => word . indexOf ( 'z' ) === 0
73- )
74- expect ( result ) . toEqual ( 'apple banana cherimoya' . split ( ' ' ) )
84+ const words = [ 'apple' , 'zebra' , 'banana' , 'zombies' , 'cherimoya' , 'zealot' ]
85+ const predicate = ( word : string ) : boolean => word . indexOf ( 'z' ) === 0
86+ const result = discard < string > ( words , predicate )
87+ expect ( result ) . toEqual ( [ 'apple' , 'banana' , 'cherimoya' ] )
7588 } )
7689
7790 xit ( 'discards arrays' , ( ) => {
@@ -84,10 +97,9 @@ describe('strain', () => {
8497 [ 2 , 2 , 1 ] ,
8598 [ 1 , 2 , 5 ] ,
8699 ]
87- const result = discard < number [ ] > (
88- rows ,
89- ( row : number [ ] ) => row . indexOf ( 5 ) > - 1
90- )
100+
101+ const predicate = ( row : number [ ] ) : boolean => row . indexOf ( 5 ) > - 1
102+ const result = discard < number [ ] > ( rows , predicate )
91103 expect ( result ) . toEqual ( [
92104 [ 1 , 2 , 3 ] ,
93105 [ 2 , 1 , 2 ] ,
0 commit comments