Refactor: Make test harness browser-compatible

This commit is contained in:
2025-10-13 10:24:42 -07:00
parent a33d342c59
commit 25d46a0d8b

View File

@@ -1,4 +1,5 @@
export default { export default {
functionName: 'findLISLength',
prompt: ` prompt: `
// Your goal is to write a production-ready and maintainable JavaScript function. Apply code-golfing practices without sacrificing readability by putting everything on one line. Do not include any comments in your code. // Your goal is to write a production-ready and maintainable JavaScript function. Apply code-golfing practices without sacrificing readability by putting everything on one line. Do not include any comments in your code.
// //
@@ -8,20 +9,12 @@ export default {
// - You MUST use a dynamic import() to load the 'd3-array' library from a CDN and use its 'bisectLeft' function to achieve O(n log n) complexity. // - You MUST use a dynamic import() to load the 'd3-array' library from a CDN and use its 'bisectLeft' function to achieve O(n log n) complexity.
// - The function should return a single number: the length of the LIS. // - The function should return a single number: the length of the LIS.
`, `,
harness: ` runTest: async (findLISLength) => {
import assert from 'assert'; const assert = {
async function runTest() { strictEqual: (a, e, m) => { if (a !== e) throw new Error(m || `FAIL: ${a} !== ${e}`) },
};
const nums = [10, 9, 2, 5, 3, 7, 101, 18, 4, 6]; const nums = [10, 9, 2, 5, 3, 7, 101, 18, 4, 6];
try {
const length = await findLISLength(nums); const length = await findLISLength(nums);
assert.strictEqual(length, 5, "Test Failed: LIS of [10,9,2,5,3,7,101,18,4,6] should be 5 (e.g., 2,3,4,6,18)."); assert.strictEqual(length, 5, "Test Failed: LIS length should be 5.");
console.log("Test Passed!");
process.exit(0);
} catch (e) {
console.error("Test Execution Error:", e.message);
process.exit(1);
} }
}
runTest();
`
}; };