From 392d901f67df35a1f6e42f516f818a246487c357 Mon Sep 17 00:00:00 2001 From: elioat Date: Tue, 20 Aug 2024 16:33:57 -0400 Subject: * --- js/b/tests.js | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) (limited to 'js/b') diff --git a/js/b/tests.js b/js/b/tests.js index 5b8ee87..dac9efa 100644 --- a/js/b/tests.js +++ b/js/b/tests.js @@ -4,7 +4,14 @@ import b from './b'; // curry const add = (x, y) => x + y; const curriedAdd = b.curry(add); +const addThree = (x, y, z) => x + y + z; +const curriedAddThree = b.curry(addThree); +const addTen = b.curry(add)(10); console.assert(curriedAdd(3)(4) === 7, 'Unexpected result from curried function'); +console.assert(addThree(1, 2, 3) === 6, 'Unexpected result from addThree(1, 2, 3)'); +console.assert(curriedAddThree(1)(2)(3) === 6, 'Unexpected result from curried function, curriedAddThree(1)(2)(3)'); +console.assert(curriedAddThree(1, 2, 3) === 6, 'Unexpected result from curried function, curriedAddThree(1, 2, 3)'); +console.assert(addTen(5) === 15, 'Unexpected result from curried function, addTen(5)'); // pipe const addOne = (x) => x + 1; @@ -14,6 +21,15 @@ console.assert(b.pipe(addOne, double)(3) === 8, 'Unexpected result from pipe'); // compose console.assert(b.compose(double, addOne)(3) === 8, 'Unexpected result from compose'); +const addTwo = (x) => x + 2; +const half = (x) => x / 2; +const composed = b.compose(addTwo, half); +const piped = b.pipe(addTwo, half); + +console.assert(composed(1) === 2.5, 'Unexpected result from compose, composed'); +console.assert(piped(1) === 1.5, 'Unexpected result from pipe, piped'); + + // identity console.assert(b.identity(5) === 5, 'Unexpected result from identity'); @@ -36,4 +52,11 @@ console.assert(JSON.stringify(mapDoubles([1, 2, 3])) === JSON.stringify([2, 4, 6 // deepMap const nestedArray = [1, [2, [3, 4]], [5, 6]]; -console.assert(JSON.stringify(b.deepMap()(double, nestedArray)) === JSON.stringify([2, [4, [6, 8]], [10, 12]]), 'Unexpected result from deepMap'); \ No newline at end of file +const nestedArray2 = [1, [2, [3, 4]], [5, 6, [7, 8, [9, 10]]]]; +console.assert(JSON.stringify(b.deepMap()(double, nestedArray)) === JSON.stringify([2, [4, [6, 8]], [10, 12]]), 'Unexpected result from deepMap, nestedArray'); +console.assert(JSON.stringify(b.deepMap()(double, nestedArray2)) === JSON.stringify([2, [4, [6, 8]], [10, 12, [14, 16, [18, 20]]]]), 'Unexpected result from deepMap, nestedArray2'); + +const nestedArray3 = [1, [2, [3, 4]], [5, 6, [7, 8, [9, 10]]]]; +const filterLessThanFive = (x) => x < 5; +const deepMapFilterLessThanFive = b.deepMap()(filterLessThanFive, nestedArray3); +console.assert(JSON.stringify(deepMapFilterLessThanFive) === JSON.stringify([true, [true, [true, true]], [false, false, [false, false, [false, false]]]]), 'Unexpected result from deepMap, nestedArray3'); \ No newline at end of file -- cgit 1.4.1-2-gfad0