55 * https://opensource.org/licenses/MIT
66 */
77
8- import { groupBy , rotate } from "@util/array"
8+ import { groupBy , rotate , sum } from "@util/array"
99
10- test ( 'group by' , ( ) => {
11- const arr = [
12- [ 1 , 2 ] ,
13- [ 1 , 3 ] ,
14- [ 2 , 3 ] ,
15- [ 3 , 4 ] ,
16- [ 2 , 9 ]
17- ]
18- // Find the max value of each group
19- const maxMap = groupBy ( arr , a => a [ 0 ] , arr => Math . max ( ...arr . map ( a => a [ 1 ] ) ) )
20- expect ( maxMap ) . toEqual ( {
21- 1 : 3 ,
22- 2 : 9 ,
23- 3 : 4
10+ describe ( "util/array" , ( ) => {
11+
12+ test ( 'group by' , ( ) => {
13+ const arr = [
14+ [ 1 , 2 ] ,
15+ [ 1 , 3 ] ,
16+ [ 2 , 3 ] ,
17+ [ 3 , 4 ] ,
18+ [ 2 , 9 ]
19+ ]
20+ // Find the max value of each group
21+ const maxMap = groupBy ( arr , a => a [ 0 ] , arr => Math . max ( ...arr . map ( a => a [ 1 ] ) ) )
22+ expect ( maxMap ) . toEqual ( {
23+ 1 : 3 ,
24+ 2 : 9 ,
25+ 3 : 4
26+ } )
27+ const allVal = groupBy ( arr , _ => undefined , arr => arr . map ( a => a [ 1 ] ) )
28+ expect ( allVal ) . toEqual ( { undefined : [ 2 , 3 , 3 , 4 , 9 ] } )
29+ } )
30+
31+ test ( "rotate" , ( ) => {
32+ const arr = [ 1 , 2 , 3 , 4 , 5 , 6 ]
33+ // Left rotate for 1 time
34+ rotate ( arr )
35+ expect ( arr ) . toEqual ( [ 2 , 3 , 4 , 5 , 6 , 1 ] )
36+ // Left rotate again for 2 times
37+ rotate ( arr , 2 , false )
38+ expect ( arr ) . toEqual ( [ 4 , 5 , 6 , 1 , 2 , 3 ] )
39+ // Right rotate for 3 times
40+ rotate ( arr , 3 , true )
41+ expect ( arr ) . toEqual ( [ 1 , 2 , 3 , 4 , 5 , 6 ] )
2442 } )
25- const allVal = groupBy ( arr , _ => undefined , arr => arr . map ( a => a [ 1 ] ) )
26- expect ( allVal ) . toEqual ( { undefined : [ 2 , 3 , 3 , 4 , 9 ] } )
27- } )
2843
29- test ( "rotate" , ( ) => {
30- const arr = [ 1 , 2 , 3 , 4 , 5 , 6 ]
31- // Left rotate for 1 time
32- rotate ( arr )
33- expect ( arr ) . toEqual ( [ 2 , 3 , 4 , 5 , 6 , 1 ] )
34- // Left rotate again for 2 times
35- rotate ( arr , 2 , false )
36- expect ( arr ) . toEqual ( [ 4 , 5 , 6 , 1 , 2 , 3 ] )
37- // Right rotate for 3 times
38- rotate ( arr , 3 , true )
39- expect ( arr ) . toEqual ( [ 1 , 2 , 3 , 4 , 5 , 6 ] )
40- } )
44+ test ( "sum" , ( ) => {
45+ let arr : number [ ] = [ 1 , undefined , 2 , 3 , 4 , null , NaN ]
46+ expect ( 10 ) . toEqual ( sum ( arr ) )
47+
48+ arr = undefined
49+ expect ( 0 ) . toEqual ( sum ( arr ) )
50+ } )
51+ } )
0 commit comments