dist-javascript-algorithms-and-data-structures
Version:
Algorithms and data-structures implemented on JavaScript
34 lines (30 loc) • 1.74 kB
JavaScript
"use strict";
var _fibonacciNthClosedForm = _interopRequireDefault(require("../fibonacciNthClosedForm"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
describe('fibonacciClosedForm', () => {
it('should throw an error when trying to calculate fibonacci for not allowed positions', () => {
const calculateFibonacciForNotAllowedPosition = () => {
(0, _fibonacciNthClosedForm.default)(76);
};
expect(calculateFibonacciForNotAllowedPosition).toThrow();
});
it('should calculate fibonacci correctly', () => {
expect((0, _fibonacciNthClosedForm.default)(1)).toBe(1);
expect((0, _fibonacciNthClosedForm.default)(2)).toBe(1);
expect((0, _fibonacciNthClosedForm.default)(3)).toBe(2);
expect((0, _fibonacciNthClosedForm.default)(4)).toBe(3);
expect((0, _fibonacciNthClosedForm.default)(5)).toBe(5);
expect((0, _fibonacciNthClosedForm.default)(6)).toBe(8);
expect((0, _fibonacciNthClosedForm.default)(7)).toBe(13);
expect((0, _fibonacciNthClosedForm.default)(8)).toBe(21);
expect((0, _fibonacciNthClosedForm.default)(20)).toBe(6765);
expect((0, _fibonacciNthClosedForm.default)(30)).toBe(832040);
expect((0, _fibonacciNthClosedForm.default)(50)).toBe(12586269025);
expect((0, _fibonacciNthClosedForm.default)(70)).toBe(190392490709135);
expect((0, _fibonacciNthClosedForm.default)(71)).toBe(308061521170129);
expect((0, _fibonacciNthClosedForm.default)(72)).toBe(498454011879264);
expect((0, _fibonacciNthClosedForm.default)(73)).toBe(806515533049393);
expect((0, _fibonacciNthClosedForm.default)(74)).toBe(1304969544928657);
expect((0, _fibonacciNthClosedForm.default)(75)).toBe(2111485077978050);
});
});