From 0e16261d324085eee2b45bd1dfb4932e95410941 Mon Sep 17 00:00:00 2001
From: abduldoesramen <abdulrehman821337@gmail.com>
Date: Fri, 7 Jul 2023 10:56:36 +1000
Subject: [PATCH] :white_check_mark: fibonacci all test passing

---
 10_fibonacci/fibonacci.js      | 16 +++++++++++++++-
 10_fibonacci/fibonacci.spec.js | 16 ++++++++--------
 2 files changed, 23 insertions(+), 9 deletions(-)

diff --git a/10_fibonacci/fibonacci.js b/10_fibonacci/fibonacci.js
index bb2c8cc..c4e79cc 100644
--- a/10_fibonacci/fibonacci.js
+++ b/10_fibonacci/fibonacci.js
@@ -1,5 +1,19 @@
-const fibonacci = function() {
+const fibonacci = function (findNum) {
 
+    /* Perform checks to validate input */
+    if (findNum === 0 || findNum === 1) {
+        return 1;
+    } else if (findNum < 0) {
+        return "OOPS";
+    } else if (typeof findNum === "string") {
+        findNum = Number(findNum)
+    }
+
+    const fibArray = [1, 1];
+    for (i = 2; i < findNum; i++) {
+        fibArray.push(fibArray[i-1] + fibArray[i-2])
+    }
+    return fibArray[findNum - 1]
 };
 
 // Do not edit below this line
diff --git a/10_fibonacci/fibonacci.spec.js b/10_fibonacci/fibonacci.spec.js
index 7f62213..32f38ee 100644
--- a/10_fibonacci/fibonacci.spec.js
+++ b/10_fibonacci/fibonacci.spec.js
@@ -4,28 +4,28 @@ describe('fibonacci', () => {
   test('4th fibonacci number is 3', () => {
     expect(fibonacci(4)).toBe(3);
   });
-  test.skip('6th fibonacci number is 8', () => {
+  test('6th fibonacci number is 8', () => {
     expect(fibonacci(6)).toBe(8);
   });
-  test.skip('10th fibonacci number is 55', () => {
+  test('10th fibonacci number is 55', () => {
     expect(fibonacci(10)).toBe(55);
   });
-  test.skip('15th fibonacci number is 610', () => {
+  test('15th fibonacci number is 610', () => {
     expect(fibonacci(15)).toBe(610);
   });
-  test.skip('25th fibonacci number is 75025', () => {
+  test('25th fibonacci number is 75025', () => {
     expect(fibonacci(25)).toBe(75025);
   });
-  test.skip('doesn\'t accept negatives', () => {
+  test('doesn\'t accept negatives', () => {
     expect(fibonacci(-25)).toBe("OOPS");
   });
-  test.skip('DOES accept strings', () => {
+  test('DOES accept strings', () => {
     expect(fibonacci("1")).toBe(1);
   });
-  test.skip('DOES accept strings', () => {
+  test('DOES accept strings', () => {
     expect(fibonacci("2")).toBe(1);
   });
-  test.skip('DOES accept strings', () => {
+  test('DOES accept strings', () => {
     expect(fibonacci("8")).toBe(21);
   });
 });