UNPKG

memoizerific

Version:

Fast, small, efficient JavaScript memoization lib to memoize JS functions

69 lines (58 loc) 1.75 kB
var Memoizerific = require('../src/memoizerific'); describe("different number of args between calls", () => { var memoizedFn, res, arg1 = 1, arg2 = 2, arg3 = 3, arg4 = 4, arg5 = 5; beforeEach(function() { memoizedFn = Memoizerific(50)(function(arg1, arg2, arg3, arg4, arg5) { return 'memoized result ' + arguments.length; }); memoizedFn(arg1, arg2, arg3); }); it("right number of args", () => { res = memoizedFn(arg1, arg2, arg4); expect(res).toEqual('memoized result 3'); expect(memoizedFn.wasMemoized).toEqual(false); expect(memoizedFn.lru.length).toEqual(2); }); it("one more arg", () => { expect(function() { memoizedFn(arg1, arg2, arg3, arg4) }).toThrow(); /* res = memoizedFn(arg1, arg2, arg3, arg4); expect(res).toEqual('memoized result 4'); expect(memoizedFn.wasMemoized).toEqual(true); expect(memoizedFn.lru.length).toEqual(1); */ }); it("several more args", () => { expect(function() { memoizedFn(arg1, arg2, arg3, arg4, arg5) }).toThrow(); /* res = memoizedFn(arg1, arg2, arg3, arg4, arg5); expect(res).toEqual('memoized result 5'); expect(memoizedFn.wasMemoized).toEqual(true); expect(memoizedFn.lru.length).toEqual(1); */ }); it("one fewer args", () => { expect(function() { memoizedFn(arg1, arg2) }).toThrow(); /* res = memoizedFn(arg1, arg2); expect(res).toEqual('memoized result 2'); expect(memoizedFn.wasMemoized).toEqual(true); expect(memoizedFn.lru.length).toEqual(1); */ }); it("several fewer args", () => { expect(function() { memoizedFn(arg1) }).toThrow(); /* res = memoizedFn(arg1); expect(res).toEqual('memoized result 1'); expect(memoizedFn.wasMemoized).toEqual(true); expect(memoizedFn.lru.length).toEqual(1); */ }); });