function sumOddFibonacciNumbers(num) {
// assuming the lowest num value is 1, sum must be at least 2.
// initialize lowest values.
let sum = 2
let lastnum = 1
const fibArray = [1,1]
while (lastnum <= num) {
lastnum = fibArray[0] + fibArray[1]
fibArray[0] = fibArray[1]
fibArray[1] = lastnum
if ((lastnum <= num) && (lastnum % 2)) sum += lastnum
}
return sum
}
/**
* 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);
});
it('returns sum of all odd Fibonnci numbers 2nd example', () => {
// arrange
const num = 4000000;
// act
const result = sumOddFibonacciNumbers(num);
// log
console.log("result 3: ", result);
// assert
expect(result).toBe(4613732);
});
});