1+ import { curry2 , curry3 , curry4 , curry5 , curry6 , curry7 } from '../../src/util/curry'
2+
3+ describe ( 'curry' , ( ) => {
4+ it ( 'should work with 2 arguments' , ( ) => {
5+ const add = ( a : number , b : number ) => a + b
6+ const add1to = curry2 ( add ) ( 1 )
7+
8+ expect ( add1to ( 2 ) ) . toEqual ( 3 )
9+ } )
10+
11+ it ( 'should work with 3 arguments' , ( ) => {
12+ const add = ( a : number , b : number , c : number ) => a + b + c
13+ const addCurried = curry3 ( add )
14+ const add3to = addCurried ( 1 ) ( 2 )
15+
16+ expect ( add3to ( 2 ) ) . toEqual ( 5 )
17+ } )
18+
19+ it ( 'should work with 4 arguments' , ( ) => {
20+ const add = ( a : number , b : number , c : number , d : number ) => a + b + c + d
21+ const addCurried = curry4 ( add )
22+ const add3to = addCurried ( 1 ) ( 1 ) ( 1 )
23+
24+ expect ( add3to ( 2 ) ) . toEqual ( 5 )
25+ } )
26+
27+ it ( 'should work with 5 arguments' , ( ) => {
28+ const add = ( a : number , b : number , c : number , d : number , e : number ) => a + b + c + d + e
29+ const addCurried = curry5 ( add )
30+ const add4to = addCurried ( 1 ) ( 1 ) ( 1 ) ( 1 )
31+
32+ expect ( add4to ( 1 ) ) . toEqual ( 5 )
33+ } )
34+
35+ it ( 'should work with 6 arguments' , ( ) => {
36+ const add = ( a : number , b : number , c : number , d : number , e : number , f : number ) => a + b + c + d + e + f
37+ const addCurried = curry6 ( add )
38+ const add5to = addCurried ( 1 ) ( 1 ) ( 1 ) ( 1 ) ( 1 )
39+
40+ expect ( add5to ( 1 ) ) . toEqual ( 6 )
41+ } )
42+
43+ it ( 'should work with 7 arguments' , ( ) => {
44+ const add = ( a : number , b : number , c : number , d : number , e : number , f : number , g : number ) => a + b + c + d + e + f + g
45+ const addCurried = curry7 ( add )
46+ const add6to = addCurried ( 1 ) ( 1 ) ( 1 ) ( 1 ) ( 1 ) ( 1 )
47+
48+ expect ( add6to ( 1 ) ) . toEqual ( 7 )
49+ } )
50+ } )
0 commit comments