From 14415c890925ebc3e22334658cf960d98509f8de Mon Sep 17 00:00:00 2001 From: urmillive Date: Sat, 28 Dec 2024 21:47:39 +0530 Subject: [PATCH 1/2] Remove Test.js file and associated test logic --- Test.js | 68 --------------------------------------------------------- 1 file changed, 68 deletions(-) diff --git a/Test.js b/Test.js index f96160f..e69de29 100644 --- a/Test.js +++ b/Test.js @@ -1,68 +0,0 @@ -/* eslint-disable no-useless-escape */ -/* eslint-disable no-undef */ -const fs = require("fs"); - -const TESTS_FOLDERS = [ - "./LeetcodeProblemsTests/Algorithms/easy/", - "./LeetcodeProblemsTests/Algorithms/medium/", - "./LeetcodeProblemsTests/Algorithms/hard/" -] - -const REGEX_PATTERN_HIDDEN_FILES = /(^|\/)\.[^\/\.]/g; - -var test_all = async function () { - try { - var problems = []; - for(const i in TESTS_FOLDERS) { - var folder = TESTS_FOLDERS[i]; - var new_problems = await loadProblemsFiles(folder); // await - problems = problems.concat(new_problems); - }; - console.log(problems); - - var solvePromises = problems.map(solve); - - await Promise.all(solvePromises) - } catch (error) { - console.log(error); - throw new Error(error); - } -}; - -var solve = (problem) => { - try { - console.log("Solving: " + problem); - - const tests = require(problem); - console.log("*" * 100); - if (Object.keys(tests).length == 0) { - console.warn("🔴 The problem " + problem + " doesn't have a test method implemented.\n"); - return; - } - for(testIdx in tests) { - tests[testIdx](); - } - console.log("✅ Tests for " + problem + " run successfully \n"); - } catch (error) { - console.log(error); - throw new Error(error); - } -} - -var loadProblemsFiles = (folder) => { - return new Promise(function (resolve, reject) { - fs.readdir(folder, (error, files) => { - if (error) { - reject(error); - } else { - console.log(folder); - new_problems = files.filter((item) => !REGEX_PATTERN_HIDDEN_FILES.test(item)); - new_problems = new_problems.map((item) => folder + item); - - resolve(new_problems); - } - }); - }); -}; - -test_all(); From 1faa35a3443051866bbffcb18d693ae0efa6db97 Mon Sep 17 00:00:00 2001 From: urmillive Date: Sun, 29 Dec 2024 09:30:25 +0530 Subject: [PATCH 2/2] Add test runner for Leetcode problems with dynamic folder loading --- Test.js | 68 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) diff --git a/Test.js b/Test.js index e69de29..80c1b1f 100644 --- a/Test.js +++ b/Test.js @@ -0,0 +1,68 @@ +/* eslint-disable no-useless-escape */ +/* eslint-disable no-undef */ +const fs = require("fs"); + +const TESTS_FOLDERS = [ + "./LeetcodeProblemsTests/Algorithms/easy/", + "./LeetcodeProblemsTests/Algorithms/medium/", + "./LeetcodeProblemsTests/Algorithms/hard/" +] + +const REGEX_PATTERN_HIDDEN_FILES = /(^|\/)\.[^\/\.]/g; + +var test_all = async function () { + try { + var problems = []; + for (const i in TESTS_FOLDERS) { + var folder = TESTS_FOLDERS[ i ]; + var new_problems = await loadProblemsFiles(folder); // await + problems = problems.concat(new_problems); + }; + console.log(problems); + + var solvePromises = problems.map(solve); + + await Promise.all(solvePromises) + } catch (error) { + console.log(error); + throw new Error(error); + } +}; + +var solve = (problem) => { + try { + console.log("Solving: " + problem); + + const tests = require(problem); + console.log("*" * 100); + if (Object.keys(tests).length == 0) { + console.warn("🔴 The problem " + problem + " doesn't have a test method implemented.\n"); + return; + } + for (testIdx in tests) { + tests[ testIdx ](); + } + console.log("✅ Tests for " + problem + " run successfully \n"); + } catch (error) { + console.log(error); + throw new Error(error); + } +} + +var loadProblemsFiles = (folder) => { + return new Promise(function (resolve, reject) { + fs.readdir(folder, (error, files) => { + if (error) { + reject(error); + } else { + console.log(folder); + new_problems = files.filter((item) => !REGEX_PATTERN_HIDDEN_FILES.test(item)); + new_problems = new_problems.map((item) => folder + item); + + resolve(new_problems); + } + }); + }); +}; + +test_all();