function sumOddFibonacciNumbers(num) {
const fibonacci = [0, 1];
while (fibonacci[fibonacci.length - 1] < num){
fibonacci.push(
fibonacci[fibonacci.length - 1] + fibonacci[fibonacci.length - 2]
);
}
fibonacci[fibonacci.length - 1] !== num &&fibonacci.pop();
return fibonacci.reduce((a, e) => a + (e % 2 === 0 ? 0 : e), 0);
}
/**
* 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);
});
});