function getSequence(num) {
const result = [1, 1];
let i, next;
while(true) {
i = result.length
next = result[i - 1] + result[i - 2]
if (next < num) {
result.push(next)
} else {
break;
}
}
return result;
}
function sumOddFibonacciNumbers(num) {
// write code here.
const sequence = getSequence(num);
const odds = sequence.filter(x => x % 2 != 0);
return odds.reduce((acc, cur) => acc + cur, 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);
});
});