function sumOddFibonacciNumbers(num) {
var fibs = [1, 1];
for (var i = 2; fibs[i-2] + fibs[i-1] < num; i++) {
fibs.push(fibs[i-2] + fibs[i-1]);
}
return fibs.reduce(sumOdds);
function sumOdds(acc, val) {
if (val%2 !== 0) {
return acc + val;
}
return 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);
});
});