Compare commits

..

4 Commits

2 changed files with 31 additions and 12 deletions

View File

@ -1,5 +1,18 @@
const fibonacci = function() { const fibonacci = function(number) {
if (number == 0) {
return 0;
}
if (number < 0) {
return "OOPS";
}
let a = 1, b = 1;
let sum = a;
for (let i = 0;
i < number - 2;
i++, (i % 2 == 0) ? a = sum : b = sum) {
sum = a + b;
}
return sum;
}; };
// Do not edit below this line // Do not edit below this line

View File

@ -4,34 +4,40 @@ describe('fibonacci', () => {
test('4th fibonacci number is 3', () => { test('4th fibonacci number is 3', () => {
expect(fibonacci(4)).toBe(3); expect(fibonacci(4)).toBe(3);
}); });
test.skip('6th fibonacci number is 8', () => { test('6th fibonacci number is 8', () => {
expect(fibonacci(6)).toBe(8); expect(fibonacci(6)).toBe(8);
}); });
test.skip('10th fibonacci number is 55', () => { test('10th fibonacci number is 55', () => {
expect(fibonacci(10)).toBe(55); expect(fibonacci(10)).toBe(55);
}); });
test.skip('15th fibonacci number is 610', () => { test('15th fibonacci number is 610', () => {
expect(fibonacci(15)).toBe(610); expect(fibonacci(15)).toBe(610);
}); });
test.skip('25th fibonacci number is 75025', () => { test('25th fibonacci number is 75025', () => {
expect(fibonacci(25)).toBe(75025); expect(fibonacci(25)).toBe(75025);
}); });
test.skip('0th fibonacci number is 0', () => { test('1st fibonacci number is 1', () => {
expect(fibonacci(1)).toBe(1);
});
test('2nd fibonacci number is 1', () => {
expect(fibonacci(2)).toBe(1);
});
test('0th fibonacci number is 0', () => {
expect(fibonacci(0)).toBe(0); expect(fibonacci(0)).toBe(0);
}); });
test.skip('doesn\'t accept negatives', () => { test('doesn\'t accept negatives', () => {
expect(fibonacci(-25)).toBe("OOPS"); expect(fibonacci(-25)).toBe("OOPS");
}); });
test.skip('DOES accept strings', () => { test('DOES accept strings', () => {
expect(fibonacci("0")).toBe(0); expect(fibonacci("0")).toBe(0);
}); });
test.skip('DOES accept strings', () => { test('DOES accept strings', () => {
expect(fibonacci("1")).toBe(1); expect(fibonacci("1")).toBe(1);
}); });
test.skip('DOES accept strings', () => { test('DOES accept strings', () => {
expect(fibonacci("2")).toBe(1); expect(fibonacci("2")).toBe(1);
}); });
test.skip('DOES accept strings', () => { test('DOES accept strings', () => {
expect(fibonacci("8")).toBe(21); expect(fibonacci("8")).toBe(21);
}); });
}); });