function sumOddFibonacciNumbers(num) {
// check input
if (num < 1) {
return "please use a positive number"
} else if (num === 1) {
return 1;
}
// create Fibonacci Sequence
const fibonacciSequence = [1, 1]
let index = 1;
let nextValue = 0;
while ( nextValue < num) {
nextValue = fibonacciSequence[index] + fibonacciSequence[index-1]
if (nextValue < num) {
fibonacciSequence.push(nextValue)
index++
}
}
return fibonacciSequence.reduce(
(acc, nextFibSeq) => acc += nextFibSeq % 2 !== 0 ? nextFibSeq : 0,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);
});
});