Website : rimsha.abasa.com
backdoor
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
var
/
canvas
/
node_modules
/
memoizerific
/
tests
/
Filename :
complex-args.js
back
Copy
var Memoizerific = require('../src/memoizerific'); describe("complex args", () => { 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(50)(function(arg1, arg2, arg3) { return arg1.num * arg2.num; }); memoizedFn(arg1, arg2, arg3); }); it("should be map or similar", () => { console.log(process.env.FORCE_SIMILAR_INSTEAD_OF_MAP === 'true' ? 'SIMILAR() to MAP()' : 'MAP()'); expect(memoizedFn.cache instanceof Map).toEqual(process.env.FORCE_SIMILAR_INSTEAD_OF_MAP !== 'true'); }); it("should not be memoized", () => { memoizedFn = Memoizerific(50)(function(arg1) { return arg1; }); memoizedFn(arg1); expect(memoizedFn.wasMemoized).toEqual(false); var a1 = { a: 1}; memoizedFn(a1); expect(memoizedFn.wasMemoized).toEqual(false); memoizedFn(a1); expect(memoizedFn.wasMemoized).toEqual(true); memoizedFn({ a: 1}); expect(memoizedFn.wasMemoized).toEqual(false); memoizedFn({ a: 1}); expect(memoizedFn.wasMemoized).toEqual(false); memoizedFn({ a: 1}); expect(memoizedFn.wasMemoized).toEqual(false); memoizedFn(a1); expect(memoizedFn.wasMemoized).toEqual(true); expect(memoizedFn.lru.length).toEqual(5); }); it("should be memoized", () => { memoizedFn(arg1, arg2, arg3); expect(memoizedFn.wasMemoized).toEqual(true); expect(memoizedFn.lru.length).toEqual(1); }); it("should have multiple cached items", () => { memoizedFn(arg1, arg2, arg3); memoizedFn(arg1, arg2, 1); expect(memoizedFn.wasMemoized).toEqual(false); expect(memoizedFn.lru.length).toEqual(2); }); });