From 31b2a22c343a42d9e144086896f408169e5fe434 Mon Sep 17 00:00:00 2001 From: Timur Shemsedinov Date: Mon, 31 Jan 2022 21:48:34 +0200 Subject: [PATCH 1/5] Add first test example --- Tasks/size.js | 3 +-- Tests/size.js | 19 +++++++++++++++++++ test.js | 24 ++++++++++++++++++++++++ 3 files changed, 44 insertions(+), 2 deletions(-) create mode 100644 Tests/size.js create mode 100644 test.js diff --git a/Tasks/size.js b/Tasks/size.js index b53cb878..24ada48f 100644 --- a/Tasks/size.js +++ b/Tasks/size.js @@ -11,5 +11,4 @@ let size = (size) => { } }; -const result = size(123456); -console.log(result); +require('../Tests/size.js')(size); diff --git a/Tests/size.js b/Tests/size.js new file mode 100644 index 00000000..ad5c07c2 --- /dev/null +++ b/Tests/size.js @@ -0,0 +1,19 @@ +'use strict'; + +const test = require('../test.js'); + +const cases = [ + [0, '0 byte'], + [1, '1 byte'], + [12, '12 byte'], + [123, '123 byte'], + [1234, '1 kb'], + [12345, '12 kb'], + [123456, '123 kb'], + [1234567, '1 mb'], + [12345678, '12 mb'], + [123456789, '123 mb'], + [1234567890, '1 gb'], +]; + +module.exports = test(cases); diff --git a/test.js b/test.js new file mode 100644 index 00000000..4fbc4e16 --- /dev/null +++ b/test.js @@ -0,0 +1,24 @@ +'use strict'; + +const assert = require('assert').strict; + +module.exports = (cases) => (fn) => { + let passed = 0; + for (const [x, expected] of cases) { + const msg = `Case: ${fn.name}(${x}) ->`; + let res; + try { + res = fn(x); + } catch (err) { + console.log(`${msg} ${res}, exception: ${err.stack}`); + continue; + } + try { + assert.deepEqual(res, expected); + passed++; + } catch { + console.log(`${msg} ${res}, expected: ${expected}`); + } + } + console.log(`Passed: ${passed} of ${cases.length}`); +}; From f6915b7cd2df9cf24bb37f1c2f40b83f0c309002 Mon Sep 17 00:00:00 2001 From: Timur Shemsedinov Date: Mon, 31 Jan 2022 23:59:28 +0200 Subject: [PATCH 2/5] Add colors --- test.js | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/test.js b/test.js index 4fbc4e16..e3eca50c 100644 --- a/test.js +++ b/test.js @@ -2,6 +2,19 @@ const assert = require('assert').strict; +const COLOR_WARN = '\x1b[1;33m'; +const COLOR_ERROR = '\x1b[0;31m'; +const COLOR_INFO = '\x1b[1;37m'; +const COLOR_NORM = '\x1b[0m'; + +const logger = (color) => (s) => { + console.log(color + s + COLOR_NORM); +}; + +logger.warn = logger(COLOR_WARN); +logger.error = logger(COLOR_ERROR); +logger.info = logger(COLOR_INFO); + module.exports = (cases) => (fn) => { let passed = 0; for (const [x, expected] of cases) { @@ -10,15 +23,15 @@ module.exports = (cases) => (fn) => { try { res = fn(x); } catch (err) { - console.log(`${msg} ${res}, exception: ${err.stack}`); + logger.error(`${msg} ${res}, exception: ${err.stack}`); continue; } try { assert.deepEqual(res, expected); passed++; } catch { - console.log(`${msg} ${res}, expected: ${expected}`); + logger.warn(`${msg} ${res}, expected: ${expected}`); } } - console.log(`Passed: ${passed} of ${cases.length}`); + logger.info(`Passed: ${passed} of ${cases.length}`); }; From 1a7aad42de8773d3ec3e2cc876ebd001403da83b Mon Sep 17 00:00:00 2001 From: Timur Shemsedinov Date: Tue, 1 Feb 2022 01:31:40 +0200 Subject: [PATCH 3/5] Put args into array --- Tests/size.js | 22 +++++++++++----------- test.js | 6 +++--- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/Tests/size.js b/Tests/size.js index ad5c07c2..60da8ad6 100644 --- a/Tests/size.js +++ b/Tests/size.js @@ -3,17 +3,17 @@ const test = require('../test.js'); const cases = [ - [0, '0 byte'], - [1, '1 byte'], - [12, '12 byte'], - [123, '123 byte'], - [1234, '1 kb'], - [12345, '12 kb'], - [123456, '123 kb'], - [1234567, '1 mb'], - [12345678, '12 mb'], - [123456789, '123 mb'], - [1234567890, '1 gb'], + [[0], '0 byte'], + [[1], '1 byte'], + [[12], '12 byte'], + [[123], '123 byte'], + [[1234], '1 kb'], + [[12345], '12 kb'], + [[123456], '123 kb'], + [[1234567], '1 mb'], + [[12345678], '12 mb'], + [[123456789], '123 mb'], + [[1234567890], '1 gb'], ]; module.exports = test(cases); diff --git a/test.js b/test.js index e3eca50c..587d146f 100644 --- a/test.js +++ b/test.js @@ -17,11 +17,11 @@ logger.info = logger(COLOR_INFO); module.exports = (cases) => (fn) => { let passed = 0; - for (const [x, expected] of cases) { - const msg = `Case: ${fn.name}(${x}) ->`; + for (const [args, expected] of cases) { + const msg = `Case: ${fn.name}(${[...args].join(', ')}) ->`; let res; try { - res = fn(x); + res = fn(...args); } catch (err) { logger.error(`${msg} ${res}, exception: ${err.stack}`); continue; From 1400e4e150bee2e9b63293b965fe2dec371d2eab Mon Sep 17 00:00:00 2001 From: Timur Shemsedinov Date: Tue, 1 Feb 2022 01:46:16 +0200 Subject: [PATCH 4/5] Improve test output --- test.js | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/test.js b/test.js index 587d146f..362c5786 100644 --- a/test.js +++ b/test.js @@ -2,7 +2,6 @@ const assert = require('assert').strict; -const COLOR_WARN = '\x1b[1;33m'; const COLOR_ERROR = '\x1b[0;31m'; const COLOR_INFO = '\x1b[1;37m'; const COLOR_NORM = '\x1b[0m'; @@ -11,26 +10,36 @@ const logger = (color) => (s) => { console.log(color + s + COLOR_NORM); }; -logger.warn = logger(COLOR_WARN); logger.error = logger(COLOR_ERROR); logger.info = logger(COLOR_INFO); +const serialize = (args) => [...args].map((x) => { + const type = typeof x; + if (type === 'object') return JSON.stringify(x); + if (type === 'string') return `'${x}'`; + if (type === 'number') return x.toString(); + return x.toString(); +}).join(', '); + module.exports = (cases) => (fn) => { let passed = 0; for (const [args, expected] of cases) { - const msg = `Case: ${fn.name}(${[...args].join(', ')}) ->`; + const msg = `Case: ${fn.name}(${serialize(args)}) ->`; let res; try { res = fn(...args); } catch (err) { - logger.error(`${msg} ${res}, exception: ${err.stack}`); + const result = JSON.stringify(res); + logger.error(`${msg} ${result}, exception: ${err.stack}`); continue; } try { assert.deepEqual(res, expected); passed++; } catch { - logger.warn(`${msg} ${res}, expected: ${expected}`); + const result = JSON.stringify(res); + const ex = JSON.stringify(expected); + logger.error(`${msg} ${result}, expected: ${ex}`); } } logger.info(`Passed: ${passed} of ${cases.length}`); From 6251f1b0c152ca83fb9d79eb21b3e7f70d3fb40b Mon Sep 17 00:00:00 2001 From: Timur Shemsedinov Date: Tue, 1 Feb 2022 14:45:15 +0200 Subject: [PATCH 5/5] Refactor tests to new structure --- Tasks/between.js | 3 +-- Tasks/compare.js | 3 +-- Tasks/count.js | 3 +-- Tasks/day.js | 3 +-- Tasks/difference.js | 3 +-- Tasks/distinct.js | 3 +-- Tasks/drop.js | 3 +-- Tasks/duplicate.js | 3 +-- Tasks/except.js | 3 +-- Tasks/filter.js | 3 +-- Tasks/find.js | 3 +-- Tasks/inc.js | 3 +-- Tasks/intersection.js | 3 +-- Tasks/invert.js | 3 +-- Tasks/ip.js | 3 +-- Tasks/longest.js | 3 +-- Tasks/merge.js | 3 +-- Tasks/month.js | 3 +-- Tasks/only.js | 3 +-- Tasks/password.js | 1 + Tasks/plane.js | 3 +-- Tasks/quotes.js | 3 +-- Tasks/random.js | 1 + Tasks/range.js | 3 +-- Tasks/replace.js | 3 +-- Tasks/reverse.js | 3 +-- Tasks/sample.js | 1 + Tasks/section.js | 3 +-- Tasks/shuffle.js | 1 + Tasks/skip.js | 3 +-- Tasks/split.js | 3 +-- Tasks/sum.js | 3 +-- Tasks/take.js | 3 +-- Tasks/types.js | 3 +-- Tasks/validate.js | 3 +-- Tasks/words.js | 3 +-- Tasks/zip.js | 3 +-- Tests/between.js | 9 +++++++++ Tests/compare.js | 9 +++++++++ Tests/count.js | 9 +++++++++ Tests/day.js | 9 +++++++++ Tests/difference.js | 9 +++++++++ Tests/distinct.js | 9 +++++++++ Tests/drop.js | 9 +++++++++ Tests/duplicate.js | 9 +++++++++ Tests/except.js | 9 +++++++++ Tests/filter.js | 9 +++++++++ Tests/find.js | 9 +++++++++ Tests/inc.js | 12 ++++++++++++ Tests/intersection.js | 9 +++++++++ Tests/invert.js | 9 +++++++++ Tests/ip.js | 9 +++++++++ Tests/longest.js | 9 +++++++++ Tests/merge.js | 9 +++++++++ Tests/month.js | 9 +++++++++ Tests/only.js | 9 +++++++++ Tests/plane.js | 9 +++++++++ Tests/quotes.js | 9 +++++++++ Tests/range.js | 9 +++++++++ Tests/replace.js | 12 ++++++++++++ Tests/reverse.js | 9 +++++++++ Tests/section.js | 9 +++++++++ Tests/skip.js | 16 ++++++++++++++++ Tests/split.js | 9 +++++++++ Tests/sum.js | 9 +++++++++ Tests/take.js | 9 +++++++++ Tests/types.js | 12 ++++++++++++ Tests/validate.js | 9 +++++++++ Tests/words.js | 9 +++++++++ Tests/zip.js | 12 ++++++++++++ 70 files changed, 353 insertions(+), 66 deletions(-) create mode 100644 Tests/between.js create mode 100644 Tests/compare.js create mode 100644 Tests/count.js create mode 100644 Tests/day.js create mode 100644 Tests/difference.js create mode 100644 Tests/distinct.js create mode 100644 Tests/drop.js create mode 100644 Tests/duplicate.js create mode 100644 Tests/except.js create mode 100644 Tests/filter.js create mode 100644 Tests/find.js create mode 100644 Tests/inc.js create mode 100644 Tests/intersection.js create mode 100644 Tests/invert.js create mode 100644 Tests/ip.js create mode 100644 Tests/longest.js create mode 100644 Tests/merge.js create mode 100644 Tests/month.js create mode 100644 Tests/only.js create mode 100644 Tests/plane.js create mode 100644 Tests/quotes.js create mode 100644 Tests/range.js create mode 100644 Tests/replace.js create mode 100644 Tests/reverse.js create mode 100644 Tests/section.js create mode 100644 Tests/skip.js create mode 100644 Tests/split.js create mode 100644 Tests/sum.js create mode 100644 Tests/take.js create mode 100644 Tests/types.js create mode 100644 Tests/validate.js create mode 100644 Tests/words.js create mode 100644 Tests/zip.js diff --git a/Tasks/between.js b/Tasks/between.js index b6518095..5c8ef4f8 100644 --- a/Tasks/between.js +++ b/Tasks/between.js @@ -18,5 +18,4 @@ getvaluebetween = (str, p, s) => { return str; }; -const result = getvaluebetween('Hello and bye!', '<', '>'); -console.log(result); +require('../Tests/between.js')(getvaluebetween); diff --git a/Tasks/compare.js b/Tasks/compare.js index 942f8be6..f15f4de2 100644 --- a/Tasks/compare.js +++ b/Tasks/compare.js @@ -15,5 +15,4 @@ let compare = (first_values, ...parameters_LIST) => { return e; }; -const result = compare({ a: 1, c: 'hello' }, { a: 1, c: 'hello' }); -console.log(result); +require('../Tests/compare.js')(compare); diff --git a/Tasks/count.js b/Tasks/count.js index 45c868c8..23815767 100644 --- a/Tasks/count.js +++ b/Tasks/count.js @@ -14,5 +14,4 @@ count = (obj) => { return sum; }; -const result = count({ a: 1, b: 'two', c: 3, d: 4 }); -console.log(result); +require('../Tests/count.js')(count); diff --git a/Tasks/day.js b/Tasks/day.js index 6192e0a0..365acc3d 100644 --- a/Tasks/day.js +++ b/Tasks/day.js @@ -12,5 +12,4 @@ _parse_day_ = (s) => { return -1; }; -const result = _parse_day_('friday'); -console.log(result); +require('../Tests/day.js')(_parse_day_); diff --git a/Tasks/difference.js b/Tasks/difference.js index a28b6035..1b2c529c 100644 --- a/Tasks/difference.js +++ b/Tasks/difference.js @@ -16,5 +16,4 @@ const diff = (DIFF = function diff(object_1, object_2) { return object_1; }); -const result = diff({ a: 'uno', b: 'due' }, { a: 'uno', c: 'tre' }); -console.log(result); +require('../Tests/difference.js')(diff); diff --git a/Tasks/distinct.js b/Tasks/distinct.js index a634e1c2..3b3ab4b8 100644 --- a/Tasks/distinct.js +++ b/Tasks/distinct.js @@ -14,5 +14,4 @@ DISTINCT = (data) => { return data; }; -const result = DISTINCT([1, 2, 1, 3, 1, 4]); -console.log(result); +require('../Tests/distinct.js')(DISTINCT); diff --git a/Tasks/drop.js b/Tasks/drop.js index ee0c0e26..afc05375 100644 --- a/Tasks/drop.js +++ b/Tasks/drop.js @@ -21,5 +21,4 @@ DroP = (D, ...X) => { return D; }; -const result = DroP({ a: 'uno', b: 'due', c: 'tre' }, 'b', 'f'); -console.log(result); +require('../Tests/drop.js')(DroP); diff --git a/Tasks/duplicate.js b/Tasks/duplicate.js index 4aadf735..7c27ff45 100644 --- a/Tasks/duplicate.js +++ b/Tasks/duplicate.js @@ -11,5 +11,4 @@ duplicate = (value, N) => { } }; -const result = duplicate('abc', 5); -console.log(result); +require('../Tests/duplicate.js')(duplicate); diff --git a/Tasks/except.js b/Tasks/except.js index 9fa3c38e..dc71b8b7 100644 --- a/Tasks/except.js +++ b/Tasks/except.js @@ -16,5 +16,4 @@ EXCEPT = (incomingvaluesarray, ...no) => { return incomingvaluesarray; }; -const result = EXCEPT({ a: 1, b: 'two', c: 3, d: 4 }, 'a', 'd'); -console.log(result); +require('../Tests/except.js')(EXCEPT); diff --git a/Tasks/filter.js b/Tasks/filter.js index 16086e32..57870fe3 100644 --- a/Tasks/filter.js +++ b/Tasks/filter.js @@ -10,5 +10,4 @@ Filter = (T, t) => { return T; }; -const result = Filter([1, 2, 'three', 4, 5, 'six'], 'number'); -console.log(result); +require('../Tests/filter.js')(Filter); diff --git a/Tasks/find.js b/Tasks/find.js index 994eb51e..d64139d4 100644 --- a/Tasks/find.js +++ b/Tasks/find.js @@ -14,5 +14,4 @@ find = (object, ...rest) => { return undefined; }; -const result = find({ a: 1, b: 2, c: 'hello', d: false }, 'hello'); -console.log(result); +require('../Tests/find.js')(find); diff --git a/Tasks/inc.js b/Tasks/inc.js index bd13b24a..38dda4ec 100644 --- a/Tasks/inc.js +++ b/Tasks/inc.js @@ -9,5 +9,4 @@ let inc_numbers = (format_complete, ...rest_variables) => { return format_complete; }; -const result = inc_numbers({ a: 1, b: 2, c: 'hello', d: false }); -console.log(result); +require('../Tests/inc.js')(inc_numbers); diff --git a/Tasks/intersection.js b/Tasks/intersection.js index e9b43ef3..e9983c2c 100644 --- a/Tasks/intersection.js +++ b/Tasks/intersection.js @@ -22,5 +22,4 @@ intersection = function intersection(object_1, object_2) { return object_1; }; -const result = intersection({ a: 'uno', b: 'due' }, { a: 'uno', c: 'tre' }); -console.log(result); +require('../Tests/intersection.js')(intersection); diff --git a/Tasks/invert.js b/Tasks/invert.js index 32851e74..8553f5a0 100644 --- a/Tasks/invert.js +++ b/Tasks/invert.js @@ -11,5 +11,4 @@ invert = (A, i, j, k) => { return T; }; -const result = invert([100, 200, 300, 400]); -console.log(result); +require('../Tests/invert.js')(invert); diff --git a/Tasks/ip.js b/Tasks/ip.js index f9f833b2..99db2e9b 100644 --- a/Tasks/ip.js +++ b/Tasks/ip.js @@ -14,5 +14,4 @@ Parseip = (i) => { return a; }; -const result = Parseip('127.0.0.1'); -console.log(result); +require('../Tests/ip.js')(Parseip); diff --git a/Tasks/longest.js b/Tasks/longest.js index 334b833b..c3643c87 100644 --- a/Tasks/longest.js +++ b/Tasks/longest.js @@ -25,5 +25,4 @@ const longest = function (line = [], maxRandom = Math.random) { return s; }; -const result = longest(['Roma', 'Kiev', 'Beijing', 'Barcelona', 'Omsk']); -console.log(result); +require('../Tests/longest.js')(longest); diff --git a/Tasks/merge.js b/Tasks/merge.js index 40b1484f..ca92e437 100644 --- a/Tasks/merge.js +++ b/Tasks/merge.js @@ -13,5 +13,4 @@ merge_two_objects = function merge_two_objects(object_1, object_2) { return object_1, object_2, object_3; }; -const result = merge_two_objects({ a: 'uno', b: 'due' }, { c: 'tre' }); -console.log(result); +require('../Tests/merge.js')(merge_two_objects); diff --git a/Tasks/month.js b/Tasks/month.js index d5c0f069..eeddcb0a 100644 --- a/Tasks/month.js +++ b/Tasks/month.js @@ -23,5 +23,4 @@ Month = (s) => { return -1; }; -const result = Month('february'); -console.log(result); +require('../Tests/month.js')(Month); diff --git a/Tasks/only.js b/Tasks/only.js index 66d11414..891d2f88 100644 --- a/Tasks/only.js +++ b/Tasks/only.js @@ -13,5 +13,4 @@ only = (W, ...only) => { return W; }; -const result = only({ a: 1, b: 'two', c: 3, d: 4 }, 'a', 'd'); -console.log(result); +require('../Tests/only.js')(only); diff --git a/Tasks/password.js b/Tasks/password.js index 999a2851..c3038045 100644 --- a/Tasks/password.js +++ b/Tasks/password.js @@ -10,5 +10,6 @@ let GeneratePassword = (alphabet, length) => { return key; }; +//require('../Tests/password.js')(GeneratePassword); const result = GeneratePassword('abc123', 7); console.log(result); diff --git a/Tasks/plane.js b/Tasks/plane.js index 70b6f703..2c856ba1 100644 --- a/Tasks/plane.js +++ b/Tasks/plane.js @@ -15,5 +15,4 @@ const_plane = function(arr, res=[]) { return res } -const result = const_plane([1, [[2]], [3, 4], [5], [6, [7, 8]]]); -console.log(result); +require('../Tests/plane.js')(const_plane); diff --git a/Tasks/quotes.js b/Tasks/quotes.js index b9f46fa9..b88f5a6f 100644 --- a/Tasks/quotes.js +++ b/Tasks/quotes.js @@ -27,5 +27,4 @@ quotes = function (s) { return res.join(EMPTY); }; -const result = quotes('Hello "Marcus"! Ave "Marcus"!'); -console.log(result); +require('../Tests/quotes.js')(quotes); diff --git a/Tasks/random.js b/Tasks/random.js index 20f3b76a..168a2781 100644 --- a/Tasks/random.js +++ b/Tasks/random.js @@ -9,5 +9,6 @@ Random = (min, max) => { } }; +//require('../Tests/random.js')(Random); const result = Random(1, 9); console.log(result); diff --git a/Tasks/range.js b/Tasks/range.js index f9b9bdd8..2ef891b0 100644 --- a/Tasks/range.js +++ b/Tasks/range.js @@ -13,5 +13,4 @@ _range = (...Range) => { return Range; }; -const result = _range(10, 15); -console.log(result); +require('../Tests/range.js')(_range); diff --git a/Tasks/replace.js b/Tasks/replace.js index fd3b6fc3..deeeee29 100644 --- a/Tasks/replace.js +++ b/Tasks/replace.js @@ -19,5 +19,4 @@ Replace = (str, substr, newstr) => { } }; -const result = Replace('Hello and bye!', '', 'Marcus'); -console.log(result); +require('../Tests/replace.js')(Replace); diff --git a/Tasks/reverse.js b/Tasks/reverse.js index d61e766b..d2d05cae 100644 --- a/Tasks/reverse.js +++ b/Tasks/reverse.js @@ -11,5 +11,4 @@ Reverse = (DATA) => { return DATA; }; -const result = Reverse({ a: 'uno', b: 'due', c: 'tre' }); -console.log(result); +require('../Tests/reverse.js')(Reverse); diff --git a/Tasks/sample.js b/Tasks/sample.js index c6a75f76..c9db347c 100644 --- a/Tasks/sample.js +++ b/Tasks/sample.js @@ -5,5 +5,6 @@ const SAMPLE = (arr) => { return arr; }; +//require('../Tests/sample.js')(SAMPLE); const result = SAMPLE([123, 456, 789, 222, 333, 444]); console.log(result); diff --git a/Tasks/section.js b/Tasks/section.js index c373e14e..a968050f 100644 --- a/Tasks/section.js +++ b/Tasks/section.js @@ -9,5 +9,4 @@ SectionString = (s, t) => { } }; -const result = SectionString('All you need is JavaScript', 'is'); -console.log(result); +require('../Tests/section.js')(SectionString); diff --git a/Tasks/shuffle.js b/Tasks/shuffle.js index 28967cfd..9e22d7aa 100644 --- a/Tasks/shuffle.js +++ b/Tasks/shuffle.js @@ -8,5 +8,6 @@ let Shuffle = (...List) => { } }; +//require('../Tests/shuffle.js')(Shuffle); const result = Shuffle(['a', 'b', 'c', 'd', 'e']); console.log(result); diff --git a/Tasks/skip.js b/Tasks/skip.js index cf37d381..dccffdbf 100644 --- a/Tasks/skip.js +++ b/Tasks/skip.js @@ -13,5 +13,4 @@ Skip = (T, ...Remove) => { return T; }; -const result = Skip([1, 2, 3, 4, 5], 2, 5); -console.log(result); +require('../Tests/skip.js')(Skip); diff --git a/Tasks/split.js b/Tasks/split.js index c94910e6..4a8fbbeb 100644 --- a/Tasks/split.js +++ b/Tasks/split.js @@ -7,5 +7,4 @@ let split_Array = (index, array) => { return [begin, array]; }; -const result = split_Array(3, ['a', 'b', 'c', 'd', 'e']); -console.log(result); +require('../Tests/split.js')(split_Array); diff --git a/Tasks/sum.js b/Tasks/sum.js index 9344b198..b7db9e24 100644 --- a/Tasks/sum.js +++ b/Tasks/sum.js @@ -17,5 +17,4 @@ const k = (sum = function (s = () => {}) { sum.push(sum.length - 1); }); -const result = sum([5, true, 'string', 7, 'hello']); -console.log(result); +require('../Tests/sum.js')(sum); diff --git a/Tasks/take.js b/Tasks/take.js index e1ae3462..d64aaee3 100644 --- a/Tasks/take.js +++ b/Tasks/take.js @@ -10,5 +10,4 @@ tAKe = (DX, ...xor) => { return 'a', 'b', 'c', 'd', DX; }; -const result = tAKe({ a: 'uno', b: 'due', c: 'tre' }, 'b', 'c'); -console.log(result); +require('../Tests/take.js')(tAKe); diff --git a/Tasks/types.js b/Tasks/types.js index 8d731621..424cb61c 100644 --- a/Tasks/types.js +++ b/Tasks/types.js @@ -15,5 +15,4 @@ types_ = function (s) { s.length; }; -const result = types_([5, true, 'string', 7, 'hello']); -console.log(result); +require('../Tests/types.js')(types_); diff --git a/Tasks/validate.js b/Tasks/validate.js index 2714ac56..89e85343 100644 --- a/Tasks/validate.js +++ b/Tasks/validate.js @@ -21,5 +21,4 @@ const isValidate = (T) => { } }; -const result = isValidate('Marcus Aurelius'); -console.log(result); +require('../Tests/validate.js')(isValidate); diff --git a/Tasks/words.js b/Tasks/words.js index dd713d48..e81384b6 100644 --- a/Tasks/words.js +++ b/Tasks/words.js @@ -38,5 +38,4 @@ Words = function (s) { return number_of_words_in_s; }; -const result = Words('Hello Marcus Aureluis'); -console.log(result); +require('../Tests/words.js')(Words); diff --git a/Tasks/zip.js b/Tasks/zip.js index 583499b1..8443f36e 100644 --- a/Tasks/zip.js +++ b/Tasks/zip.js @@ -14,5 +14,4 @@ const zip = function (a = [], b = []) { return b; }; -const result = zip(['Roma', 'Kiev', 'Beijing'], [100, 200, 300]); -console.log(result); +require('../Tests/zip.js')(zip); diff --git a/Tests/between.js b/Tests/between.js new file mode 100644 index 00000000..bae6ec95 --- /dev/null +++ b/Tests/between.js @@ -0,0 +1,9 @@ +'use strict'; + +const test = require('../test.js'); + +const cases = [ + [['Hello and bye!', '<', '>'], 'username'], +]; + +module.exports = test(cases); diff --git a/Tests/compare.js b/Tests/compare.js new file mode 100644 index 00000000..c47cac13 --- /dev/null +++ b/Tests/compare.js @@ -0,0 +1,9 @@ +'use strict'; + +const test = require('../test.js'); + +const cases = [ + [[{ a: 1, c: 'hello' }, { a: 1, c: 'hello' }], true], +]; + +module.exports = test(cases); diff --git a/Tests/count.js b/Tests/count.js new file mode 100644 index 00000000..6f87ad27 --- /dev/null +++ b/Tests/count.js @@ -0,0 +1,9 @@ +'use strict'; + +const test = require('../test.js'); + +const cases = [ + [[{ a: 1, b: 'two', c: 3, d: 4 }], 8], +]; + +module.exports = test(cases); diff --git a/Tests/day.js b/Tests/day.js new file mode 100644 index 00000000..932ed8a2 --- /dev/null +++ b/Tests/day.js @@ -0,0 +1,9 @@ +'use strict'; + +const test = require('../test.js'); + +const cases = [ + [['friday'], 6], +]; + +module.exports = test(cases); diff --git a/Tests/difference.js b/Tests/difference.js new file mode 100644 index 00000000..2bb0f982 --- /dev/null +++ b/Tests/difference.js @@ -0,0 +1,9 @@ +'use strict'; + +const test = require('../test.js'); + +const cases = [ + [[{ a: 'uno', b: 'due' }, { a: 'uno', c: 'tre' }], { b: 'due' }], +]; + +module.exports = test(cases); diff --git a/Tests/distinct.js b/Tests/distinct.js new file mode 100644 index 00000000..0bcc2140 --- /dev/null +++ b/Tests/distinct.js @@ -0,0 +1,9 @@ +'use strict'; + +const test = require('../test.js'); + +const cases = [ + [[[1, 2, 1, 3, 1, 4]], [1, 2, 3, 4]], +]; + +module.exports = test(cases); diff --git a/Tests/drop.js b/Tests/drop.js new file mode 100644 index 00000000..7baff962 --- /dev/null +++ b/Tests/drop.js @@ -0,0 +1,9 @@ +'use strict'; + +const test = require('../test.js'); + +const cases = [ + [[{ a: 'uno', b: 'due', c: 'tre' }, 'b', 'f'], { a: 'uno', c: 'tre' }], +]; + +module.exports = test(cases); diff --git a/Tests/duplicate.js b/Tests/duplicate.js new file mode 100644 index 00000000..262d3ce1 --- /dev/null +++ b/Tests/duplicate.js @@ -0,0 +1,9 @@ +'use strict'; + +const test = require('../test.js'); + +const cases = [ + [['abc', 5], ['abc', 'abc', 'abc', 'abc', 'abc']], +]; + +module.exports = test(cases); diff --git a/Tests/except.js b/Tests/except.js new file mode 100644 index 00000000..9a013f20 --- /dev/null +++ b/Tests/except.js @@ -0,0 +1,9 @@ +'use strict'; + +const test = require('../test.js'); + +const cases = [ + [[{ a: 1, b: 'two', c: 3, d: 4 }, 'a', 'd'], { b: 'two', c: 3 }], +]; + +module.exports = test(cases); diff --git a/Tests/filter.js b/Tests/filter.js new file mode 100644 index 00000000..5ba7a33a --- /dev/null +++ b/Tests/filter.js @@ -0,0 +1,9 @@ +'use strict'; + +const test = require('../test.js'); + +const cases = [ + [[[1, 2, 'three', 4, 5, 'six'], 'number'], [1, 2, 4, 5]], +]; + +module.exports = test(cases); diff --git a/Tests/find.js b/Tests/find.js new file mode 100644 index 00000000..a50af4ef --- /dev/null +++ b/Tests/find.js @@ -0,0 +1,9 @@ +'use strict'; + +const test = require('../test.js'); + +const cases = [ + [[{ a: 1, b: 2, c: 'hello', d: false }, 'hello'], 'c'], +]; + +module.exports = test(cases); diff --git a/Tests/inc.js b/Tests/inc.js new file mode 100644 index 00000000..1745d9e4 --- /dev/null +++ b/Tests/inc.js @@ -0,0 +1,12 @@ +'use strict'; + +const test = require('../test.js'); + +const cases = [ + [ + [{ a: 1, b: 2, c: 'hello', d: false }], + { a: 2, b: 3, c: 'hello', d: false }, + ], +]; + +module.exports = test(cases); diff --git a/Tests/intersection.js b/Tests/intersection.js new file mode 100644 index 00000000..c7a0b674 --- /dev/null +++ b/Tests/intersection.js @@ -0,0 +1,9 @@ +'use strict'; + +const test = require('../test.js'); + +const cases = [ + [[{ a: 'uno', b: 'due' }, { a: 'uno', c: 'tre' }], { a: 'uno' }], +]; + +module.exports = test(cases); diff --git a/Tests/invert.js b/Tests/invert.js new file mode 100644 index 00000000..24996933 --- /dev/null +++ b/Tests/invert.js @@ -0,0 +1,9 @@ +'use strict'; + +const test = require('../test.js'); + +const cases = [ + [[[100, 200, 300, 400]], [400, 300, 200, 100]], +]; + +module.exports = test(cases); diff --git a/Tests/ip.js b/Tests/ip.js new file mode 100644 index 00000000..33871d75 --- /dev/null +++ b/Tests/ip.js @@ -0,0 +1,9 @@ +'use strict'; + +const test = require('../test.js'); + +const cases = [ + [['127.0.0.1'], [127, 0, 0, 1]], +]; + +module.exports = test(cases); diff --git a/Tests/longest.js b/Tests/longest.js new file mode 100644 index 00000000..8460d85f --- /dev/null +++ b/Tests/longest.js @@ -0,0 +1,9 @@ +'use strict'; + +const test = require('../test.js'); + +const cases = [ + [[['Roma', 'Kiev', 'Beijing', 'Barcelona', 'Omsk']], 'Barcelona'], +]; + +module.exports = test(cases); diff --git a/Tests/merge.js b/Tests/merge.js new file mode 100644 index 00000000..ea94e4a8 --- /dev/null +++ b/Tests/merge.js @@ -0,0 +1,9 @@ +'use strict'; + +const test = require('../test.js'); + +const cases = [ + [[{ a: 'uno', b: 'due' }, { c: 'tre' }], { a: 'uno', b: 'due', c: 'tre' }], +]; + +module.exports = test(cases); diff --git a/Tests/month.js b/Tests/month.js new file mode 100644 index 00000000..b05c42ff --- /dev/null +++ b/Tests/month.js @@ -0,0 +1,9 @@ +'use strict'; + +const test = require('../test.js'); + +const cases = [ + [['february'], 2], +]; + +module.exports = test(cases); diff --git a/Tests/only.js b/Tests/only.js new file mode 100644 index 00000000..878c07d3 --- /dev/null +++ b/Tests/only.js @@ -0,0 +1,9 @@ +'use strict'; + +const test = require('../test.js'); + +const cases = [ + [[{ a: 1, b: 'two', c: 3, d: 4 }, 'a', 'd'], { a: 1, d: 4 }], +]; + +module.exports = test(cases); diff --git a/Tests/plane.js b/Tests/plane.js new file mode 100644 index 00000000..1155051e --- /dev/null +++ b/Tests/plane.js @@ -0,0 +1,9 @@ +'use strict'; + +const test = require('../test.js'); + +const cases = [ + [[[1, [[2]], [3, 4], [5], [6, [7, 8]]]], [1, 2, 3, 4, 5, 6, 7, 8]], +]; + +module.exports = test(cases); diff --git a/Tests/quotes.js b/Tests/quotes.js new file mode 100644 index 00000000..65ef5646 --- /dev/null +++ b/Tests/quotes.js @@ -0,0 +1,9 @@ +'use strict'; + +const test = require('../test.js'); + +const cases = [ + [['Hello "Marcus"! Ave "Marcus"!'], 'Hello «Marcus»! Ave «Marcus»!'], +]; + +module.exports = test(cases); diff --git a/Tests/range.js b/Tests/range.js new file mode 100644 index 00000000..4dcfd45c --- /dev/null +++ b/Tests/range.js @@ -0,0 +1,9 @@ +'use strict'; + +const test = require('../test.js'); + +const cases = [ + [[10, 15], [10, 11, 12, 13, 14, 15]], +]; + +module.exports = test(cases); diff --git a/Tests/replace.js b/Tests/replace.js new file mode 100644 index 00000000..405e77aa --- /dev/null +++ b/Tests/replace.js @@ -0,0 +1,12 @@ +'use strict'; + +const test = require('../test.js'); + +const cases = [ + [ + ['Hello and bye!', '', 'Marcus'], + 'Hello Marcus and bye!', + ], +]; + +module.exports = test(cases); diff --git a/Tests/reverse.js b/Tests/reverse.js new file mode 100644 index 00000000..e406bf09 --- /dev/null +++ b/Tests/reverse.js @@ -0,0 +1,9 @@ +'use strict'; + +const test = require('../test.js'); + +const cases = [ + [[{ a: 'uno', b: 'due', c: 'tre' }], { uno: 'a', due: 'b', tre: 'c' }], +]; + +module.exports = test(cases); diff --git a/Tests/section.js b/Tests/section.js new file mode 100644 index 00000000..9ce5fde4 --- /dev/null +++ b/Tests/section.js @@ -0,0 +1,9 @@ +'use strict'; + +const test = require('../test.js'); + +const cases = [ + [['All you need is JavaScript', 'is'], ['All you need ', ' JavaScript']], +]; + +module.exports = test(cases); diff --git a/Tests/skip.js b/Tests/skip.js new file mode 100644 index 00000000..4627085e --- /dev/null +++ b/Tests/skip.js @@ -0,0 +1,16 @@ +'use strict'; + +const test = require('../test.js'); + +const cases = [ + [[[]], []], + [[[-1, 0, 1], 0], [-1, 1]], + [[[-1, 0, 1], -1, 1], [0]], + [[[1, 2, 3, 4, 5], 2, 5], [1, 3, 4]], + [[[1, 2, 3, 4, 5], 7], [1, 2, 3, 4, 5]], + [[[1, 2, 3, 4, 5], 2], [1, 3, 4, 5]], + [[[1, 2, 3, 4, 5]], [1, 2, 3, 4, 5]], + [[[1, 2, 3, 4, 5], -1, 0], [1, 2, 3, 4, 5]], +]; + +module.exports = test(cases); diff --git a/Tests/split.js b/Tests/split.js new file mode 100644 index 00000000..99ef819a --- /dev/null +++ b/Tests/split.js @@ -0,0 +1,9 @@ +'use strict'; + +const test = require('../test.js'); + +const cases = [ + [[3, ['a', 'b', 'c', 'd', 'e']], [['a', 'b', 'c'], ['d', 'e']]], +]; + +module.exports = test(cases); diff --git a/Tests/sum.js b/Tests/sum.js new file mode 100644 index 00000000..0ac9418e --- /dev/null +++ b/Tests/sum.js @@ -0,0 +1,9 @@ +'use strict'; + +const test = require('../test.js'); + +const cases = [ + [[[5, true, 'string', 7, 'hello']], 12], +]; + +module.exports = test(cases); diff --git a/Tests/take.js b/Tests/take.js new file mode 100644 index 00000000..4c4b9dca --- /dev/null +++ b/Tests/take.js @@ -0,0 +1,9 @@ +'use strict'; + +const test = require('../test.js'); + +const cases = [ + [[{ a: 'uno', b: 'due', c: 'tre' }, 'b', 'c'], { b: 'due', c: 'tre' }], +]; + +module.exports = test(cases); diff --git a/Tests/types.js b/Tests/types.js new file mode 100644 index 00000000..abfba242 --- /dev/null +++ b/Tests/types.js @@ -0,0 +1,12 @@ +'use strict'; + +const test = require('../test.js'); + +const cases = [ + [ + [[5, true, 'string', 7, 'hello']], + { number: 2, boolean: 1, string: 2 }, + ], +]; + +module.exports = test(cases); diff --git a/Tests/validate.js b/Tests/validate.js new file mode 100644 index 00000000..0f47da40 --- /dev/null +++ b/Tests/validate.js @@ -0,0 +1,9 @@ +'use strict'; + +const test = require('../test.js'); + +const cases = [ + [['Marcus Aurelius'], true], +]; + +module.exports = test(cases); diff --git a/Tests/words.js b/Tests/words.js new file mode 100644 index 00000000..948a9518 --- /dev/null +++ b/Tests/words.js @@ -0,0 +1,9 @@ +'use strict'; + +const test = require('../test.js'); + +const cases = [ + [['Hello Marcus Aureluis'], 3], +]; + +module.exports = test(cases); diff --git a/Tests/zip.js b/Tests/zip.js new file mode 100644 index 00000000..be428a2e --- /dev/null +++ b/Tests/zip.js @@ -0,0 +1,12 @@ +'use strict'; + +const test = require('../test.js'); + +const cases = [ + [ + [['Roma', 'Kiev', 'Beijing'], [100, 200, 300]], + [['Roma', 100], ['Kiev', 200], ['Beijing', 300]], + ], +]; + +module.exports = test(cases);