1- var assert = require ( 'assert' ) ,
1+ const assert = require ( 'assert' ) ,
22 core = require ( './core' ) ;
33
44describe ( 'Задания core js' , ( ) => {
@@ -14,7 +14,10 @@ describe('Задания core js', () => {
1414
1515 describe ( '#even' , ( ) => {
1616 it ( 'Возвращает корректный массив' , ( ) => {
17- assert . deepEqual ( core . even ( ) , [ 2 , 4 , 6 , 8 , 10 , 12 , 14 , 16 , 18 , 20 ] ) ;
17+ assert . deepStrictEqual (
18+ core . even ( ) ,
19+ [ 2 , 4 , 6 , 8 , 10 , 12 , 14 , 16 , 18 , 20 ]
20+ ) ;
1821 } ) ;
1922 } ) ;
2023
@@ -61,4 +64,25 @@ describe('Задания core js', () => {
6164 assert . equal ( core . fibonacci ( 10 ) , 55 ) ;
6265 } ) ;
6366 } ) ;
67+
68+ describe ( '#getOperationFn' , ( ) => {
69+ it ( 'Возвращает функцию' , ( ) => {
70+ const sumFn = core . getOperationFn ( - 1 , ( a , b ) => a + b ) ;
71+ assert . ok ( typeof sumFn === 'function' ) ;
72+ } ) ;
73+
74+ it ( 'Сохраняет внутреннее значение и применяет операцию' , ( ) => {
75+ const multFn = core . getOperationFn ( - 1 , ( a , b ) => a * b ) ;
76+ assert . strictEqual ( multFn ( - 1 ) , 1 ) ;
77+ assert . strictEqual ( multFn ( 4 ) , 4 ) ;
78+ assert . strictEqual ( multFn ( 2 ) , 8 ) ;
79+ } ) ;
80+
81+ it ( 'По умолчанию всегда возвращает начальное значение, если нет operatorFn' , ( ) => {
82+ const staticFn = core . getOperationFn ( - 1 ) ;
83+ assert . strictEqual ( staticFn ( - 1 ) , - 1 ) ;
84+ assert . strictEqual ( staticFn ( 7 ) , - 1 ) ;
85+ assert . strictEqual ( staticFn ( 0 ) , - 1 ) ;
86+ } ) ;
87+ } ) ;
6488} ) ;
0 commit comments