function sumOddFibonacciNumbers(num) {
let arr = [1, 1];
function isOdd(value) {
return value % 2 !== 0;
}
function add(a, b) {
return a + b;
}
while (arr[arr.length - 1] + arr[arr.length - 2] <= num) {
let newNum = arr[arr.length - 1] + arr[arr.length - 2];
arr.push(newNum);
}
var filtered = arr.filter(isOdd);
var sumOdd = filtered.reduce(add);
return sumOdd;
}
sumOddFibonacciNumbers(75025);
/**
* 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);
});
});