From 232df8964d8d29ec66960a15170e8e2d32702a6f Mon Sep 17 00:00:00 2001 From: Pooja Khandhadia Date: Mon, 7 Oct 2019 12:51:34 +0000 Subject: [PATCH] Add fibonacci tests --- src/_Classics_/fibonacci/fibonacci.test.js | 39 ++++++++++++++++++++++ src/_Classics_/fibonacci/index.js | 8 ++++- 2 files changed, 46 insertions(+), 1 deletion(-) create mode 100644 src/_Classics_/fibonacci/fibonacci.test.js diff --git a/src/_Classics_/fibonacci/fibonacci.test.js b/src/_Classics_/fibonacci/fibonacci.test.js new file mode 100644 index 00000000..cd1f33e1 --- /dev/null +++ b/src/_Classics_/fibonacci/fibonacci.test.js @@ -0,0 +1,39 @@ +const { fibonacci, fibonacciMemoized, fibonacciTabular } = require('.'); + +describe('Find the Fibonacci Sum for a given index', () => { + + it('should return 1 when index is 0', () => { + expect(fibonacci(0)).toEqual(1); + expect(fibonacciMemoized(0)).toEqual(1); + expect(fibonacciTabular(0)).toEqual(1); //failing + }); + + it('should return 1 when index is 1', () => { + expect(fibonacci(1)).toEqual(1); + expect(fibonacciMemoized(1)).toEqual(1); + expect(fibonacciTabular(1)).toEqual(1); + }); + + it('should return 1 when index is 2', () => { + expect(fibonacci(2)).toEqual(1); + expect(fibonacciMemoized(2)).toEqual(1); + expect(fibonacciTabular(2)).toEqual(1); + }); + + it('should return 55 when index is 10', () => { + expect(fibonacci(10)).toEqual(55); + expect(fibonacciTabular(10)).toEqual(55); + expect(fibonacciMemoized(10)).toEqual(55); + }); + + it('should return 1.7147923024004204e+106 when index is 510', () => { + expect(fibonacciMemoized(510)).toEqual(1.7147923024004204e+106); + expect(fibonacciTabular(510)).toEqual(1.7147923024004204e+106); + }); + + it('should return 1 when index is negative', () => { + expect(fibonacci(-1)).toEqual(1); + expect(fibonacciMemoized(-1)).toEqual(1); + expect(fibonacciTabular(-1)).toEqual(1); //failing + }); +}); diff --git a/src/_Classics_/fibonacci/index.js b/src/_Classics_/fibonacci/index.js index e0852c5f..206a725f 100644 --- a/src/_Classics_/fibonacci/index.js +++ b/src/_Classics_/fibonacci/index.js @@ -38,7 +38,7 @@ function fibonacciMemoized(index, cache) { /** * Using the bottom up approach, also known as tabular method */ - +// @TODO: Handle this function for indexes 0 and negative numbers function fibonacciTabular(n) { const table = [0, 1]; @@ -49,6 +49,12 @@ function fibonacciTabular(n) { return table[n]; } +module.exports = { + fibonacci, + fibonacciMemoized, + fibonacciTabular +} + // const number = 50; // console.log(`Fib normal - ${fibonacci(number)}`);