Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions code_to_optimize/js/code_to_optimize_mocha/codeflash.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# Codeflash Configuration for Mocha CJS JavaScript Project
module_root: "."
tests_root: "tests"
test_framework: "mocha"
formatter_cmds: []
60 changes: 60 additions & 0 deletions code_to_optimize/js/code_to_optimize_mocha/fibonacci.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
/**
* Fibonacci implementations - CommonJS module
* Intentionally inefficient for optimization testing.
*/

/**
* Calculate the nth Fibonacci number using naive recursion.
* This is intentionally slow to demonstrate optimization potential.
* @param {number} n - The index of the Fibonacci number to calculate
* @returns {number} The nth Fibonacci number
*/
function fibonacci(n) {
if (n <= 1) {
return n;
}
return fibonacci(n - 1) + fibonacci(n - 2);
}

/**
* Check if a number is a Fibonacci number.
* @param {number} num - The number to check
* @returns {boolean} True if num is a Fibonacci number
*/
function isFibonacci(num) {
// A number is Fibonacci if one of (5*n*n + 4) or (5*n*n - 4) is a perfect square
const check1 = 5 * num * num + 4;
const check2 = 5 * num * num - 4;
return isPerfectSquare(check1) || isPerfectSquare(check2);
}

/**
* Check if a number is a perfect square.
* @param {number} n - The number to check
* @returns {boolean} True if n is a perfect square
*/
function isPerfectSquare(n) {
const sqrt = Math.sqrt(n);
return sqrt === Math.floor(sqrt);
}

/**
* Generate an array of Fibonacci numbers up to n.
* @param {number} n - The number of Fibonacci numbers to generate
* @returns {number[]} Array of Fibonacci numbers
*/
function fibonacciSequence(n) {
const result = [];
for (let i = 0; i < n; i++) {
result.push(fibonacci(i));
}
return result;
}

// CommonJS exports
module.exports = {
fibonacci,
isFibonacci,
isPerfectSquare,
fibonacciSequence,
};
Loading
Loading