69 lines
1.9 KiB
JavaScript
69 lines
1.9 KiB
JavaScript
var Memoizerific = require('../src/memoizerific');
|
|
|
|
describe("surpassed limit", () => {
|
|
var memoizedFn,
|
|
arg1 = { a: { b: 3 }, num: 3 },
|
|
arg2 = { c: { d: 3 }, num: 7 },
|
|
arg3 = [{ f: { g: 3 }, num: 11 }, { h: { i: 3 }, num: 4 }, { j: { k: 3 }, num: 6 }];
|
|
|
|
beforeEach(function() {
|
|
memoizedFn = Memoizerific(2)(function(arg1, arg2, arg3) {
|
|
return arg1.num * arg2.num;
|
|
});
|
|
memoizedFn(arg1, arg2, arg3);
|
|
});
|
|
|
|
it("should be map or similar", () => { expect(memoizedFn.cache instanceof Map).toEqual(process.env.FORCE_SIMILAR_INSTEAD_OF_MAP !== 'true') });
|
|
|
|
it("should replace original memoized", () => {
|
|
memoizedFn(arg1, arg2, arg3);
|
|
expect(memoizedFn.wasMemoized).toEqual(true);
|
|
expect(memoizedFn.lru.length).toEqual(1);
|
|
|
|
memoizedFn(1,1,1);
|
|
memoizedFn(arg1, arg2, arg3);
|
|
expect(memoizedFn.wasMemoized).toEqual(true);
|
|
|
|
memoizedFn(1,1,1);
|
|
expect(memoizedFn.wasMemoized).toEqual(true);
|
|
memoizedFn(2,2,2);
|
|
expect(memoizedFn.wasMemoized).toEqual(false);
|
|
memoizedFn(arg1, arg2, arg3);
|
|
expect(memoizedFn.wasMemoized).toEqual(false);
|
|
expect(memoizedFn.lru.length).toEqual(2);
|
|
|
|
memoizedFn(2,2,2);
|
|
expect(memoizedFn.wasMemoized).toEqual(true);
|
|
expect(memoizedFn.lru.length).toEqual(2);
|
|
|
|
memoizedFn(arg1, arg2, arg3);
|
|
expect(memoizedFn.wasMemoized).toEqual(true);
|
|
expect(memoizedFn.lru.length).toEqual(2);
|
|
});
|
|
|
|
|
|
it("should move original to most recent", () => {
|
|
memoizedFn(arg1, arg2, arg3);
|
|
expect(memoizedFn.wasMemoized).toEqual(true);
|
|
|
|
memoizedFn(1,1,1);
|
|
expect(memoizedFn.wasMemoized).toEqual(false);
|
|
|
|
memoizedFn(arg1, arg2, arg3);
|
|
expect(memoizedFn.wasMemoized).toEqual(true);
|
|
|
|
memoizedFn(2,2,2);
|
|
expect(memoizedFn.wasMemoized).toEqual(false);
|
|
|
|
memoizedFn(arg1, arg2, arg3);
|
|
expect(memoizedFn.wasMemoized).toEqual(true);
|
|
|
|
memoizedFn(3,3,3);
|
|
expect(memoizedFn.wasMemoized).toEqual(false);
|
|
|
|
memoizedFn(arg1, arg2, arg3);
|
|
expect(memoizedFn.wasMemoized).toEqual(true);
|
|
expect(memoizedFn.lru.length).toEqual(2);
|
|
});
|
|
});
|