function sumOddFibonacciNumbers(num) {
// write code here.
let fib = [1, 1];
let fibOdd = [1, 1];
let currentNum = 1;
let count = 2;
while(currentNum < num) {
let fibNum = fib[count - 2] + fib[count - 1];
if(fibNum > num) {
break;
}
fib.push(fibNum);
if(fibNum %2 !== 0) {
fibOdd.push(fibNum);
}
currentNum = fibNum;
count++;
}
return fibOdd.reduce((curr, acc) => curr + acc);
}
/**
* Test Suite
*/
describe('sumOddFibonacciNumbers()', () => {
it('returns sum of all odd Fibonnci numbers', () => {
// arrange
const num = 10;
// act
const result = sumOddFibonacciNumbers(num);
// log
console.log("result 1: ", result);
// assert
expect(result).toBe(10);
});
it('returns sum of all odd Fibonnci numbers 2nd example', () => {
// arrange
const num = 1000;
// act
const result = sumOddFibonacciNumbers(num);
// log
console.log("result 2: ", result);
// assert
expect(result).toBe(1785);
});
});