function sumOddFibonacciNumbers(num) {
// write code here.
if (num < 2) return 2;
const cache = [1, 1];
let sumOfOddFibNums = 2;
while (cache[0] + cache[1] <= num) {
const nextFibNum = cache[0] + cache[1];
if (nextFibNum % 2) {
sumOfOddFibNums += nextFibNum;
}
cache[0] = cache[1];
cache[1] = nextFibNum;
}
return sumOfOddFibNums;
}
/**
* 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);
});
});