diff --git a/Recursive/FibonacciNumberRecursive.js b/Recursive/FibonacciNumberRecursive.js index f8d463749..4b32e9cb4 100644 --- a/Recursive/FibonacciNumberRecursive.js +++ b/Recursive/FibonacciNumberRecursive.js @@ -1,15 +1,17 @@ -// https://en.wikipedia.org/wiki/Fibonacci_number - /** - * Return the N-th Fibonacci number - * - * @param {number} N - * @returns {number} + * @function Fibonacci + * @description Function to return the N-th Fibonacci number. + * @param {Integer} n - The input integer + * @return {Integer} - Return the N-th Fibonacci number + * @see [Fibonacci](https://en.wikipedia.org/wiki/Fibonacci_number) */ -export const fibonacci = (N) => { - if (N === 0 || N === 1) { - return N + +const fibonacci = (n) => { + if (n < 2) { + return n } - return fibonacci(N - 2) + fibonacci(N - 1) + return fibonacci(n - 2) + fibonacci(n - 1) } + +export { fibonacci } diff --git a/Recursive/test/FibonacciNumberRecursive.test.js b/Recursive/test/FibonacciNumberRecursive.test.js new file mode 100644 index 000000000..fbb67ac84 --- /dev/null +++ b/Recursive/test/FibonacciNumberRecursive.test.js @@ -0,0 +1,19 @@ +import { fibonacci } from '../FibonacciNumberRecursive' + +describe('FibonacciNumberRecursive', () => { + it('should return 0', () => { + expect(fibonacci(0)).toBe(0) + }) + + it('should return 1', () => { + expect(fibonacci(1)).toBe(1) + }) + + it('should return 5', () => { + expect(fibonacci(5)).toBe(5) + }) + + it('should return 9', () => { + expect(fibonacci(9)).toBe(34) + }) +})