From 33e627c4ba0d050c715eedee93f571d1fb24a204 Mon Sep 17 00:00:00 2001
From: MortezaTavasoly <vector.1475225963@gmail.com>
Date: Mon, 23 Oct 2023 05:06:00 -0800
Subject: [PATCH] second commit

---
 10_fibonacci/fibonacci.js      | 14 +++++++++++++-
 10_fibonacci/fibonacci.spec.js | 22 +++++++++++-----------
 2 files changed, 24 insertions(+), 12 deletions(-)

diff --git a/10_fibonacci/fibonacci.js b/10_fibonacci/fibonacci.js
index bb2c8cc..f1795db 100644
--- a/10_fibonacci/fibonacci.js
+++ b/10_fibonacci/fibonacci.js
@@ -1,5 +1,17 @@
-const fibonacci = function() {
+const fibonacci = function (number) {
+  if (number < 0) return "OOPS";
+  if (number === 0) return 0;
 
+  let prev1 = 1;
+  let prev2 = 0;
+
+  for (let i = 2; i <= number; i++) {
+    let current = prev1 + prev2;
+    prev2 = prev1;
+    prev1 = current;
+  }
+
+  return prev1;
 };
 
 // Do not edit below this line
diff --git a/10_fibonacci/fibonacci.spec.js b/10_fibonacci/fibonacci.spec.js
index 7f62213..2312455 100644
--- a/10_fibonacci/fibonacci.spec.js
+++ b/10_fibonacci/fibonacci.spec.js
@@ -1,31 +1,31 @@
-const fibonacci = require('./fibonacci')
+const fibonacci = require("./fibonacci");
 
-describe('fibonacci', () => {
-  test('4th fibonacci number is 3', () => {
+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);
   });
 });