surpassed-limit.js 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. var Memoizerific = require('../src/memoizerific');
  2. describe("surpassed limit", () => {
  3. var memoizedFn,
  4. arg1 = { a: { b: 3 }, num: 3 },
  5. arg2 = { c: { d: 3 }, num: 7 },
  6. arg3 = [{ f: { g: 3 }, num: 11 }, { h: { i: 3 }, num: 4 }, { j: { k: 3 }, num: 6 }];
  7. beforeEach(function() {
  8. memoizedFn = Memoizerific(2)(function(arg1, arg2, arg3) {
  9. return arg1.num * arg2.num;
  10. });
  11. memoizedFn(arg1, arg2, arg3);
  12. });
  13. it("should be map or similar", () => { expect(memoizedFn.cache instanceof Map).toEqual(process.env.FORCE_SIMILAR_INSTEAD_OF_MAP !== 'true') });
  14. it("should replace original memoized", () => {
  15. memoizedFn(arg1, arg2, arg3);
  16. expect(memoizedFn.wasMemoized).toEqual(true);
  17. expect(memoizedFn.lru.length).toEqual(1);
  18. memoizedFn(1,1,1);
  19. memoizedFn(arg1, arg2, arg3);
  20. expect(memoizedFn.wasMemoized).toEqual(true);
  21. memoizedFn(1,1,1);
  22. expect(memoizedFn.wasMemoized).toEqual(true);
  23. memoizedFn(2,2,2);
  24. expect(memoizedFn.wasMemoized).toEqual(false);
  25. memoizedFn(arg1, arg2, arg3);
  26. expect(memoizedFn.wasMemoized).toEqual(false);
  27. expect(memoizedFn.lru.length).toEqual(2);
  28. memoizedFn(2,2,2);
  29. expect(memoizedFn.wasMemoized).toEqual(true);
  30. expect(memoizedFn.lru.length).toEqual(2);
  31. memoizedFn(arg1, arg2, arg3);
  32. expect(memoizedFn.wasMemoized).toEqual(true);
  33. expect(memoizedFn.lru.length).toEqual(2);
  34. });
  35. it("should move original to most recent", () => {
  36. memoizedFn(arg1, arg2, arg3);
  37. expect(memoizedFn.wasMemoized).toEqual(true);
  38. memoizedFn(1,1,1);
  39. expect(memoizedFn.wasMemoized).toEqual(false);
  40. memoizedFn(arg1, arg2, arg3);
  41. expect(memoizedFn.wasMemoized).toEqual(true);
  42. memoizedFn(2,2,2);
  43. expect(memoizedFn.wasMemoized).toEqual(false);
  44. memoizedFn(arg1, arg2, arg3);
  45. expect(memoizedFn.wasMemoized).toEqual(true);
  46. memoizedFn(3,3,3);
  47. expect(memoizedFn.wasMemoized).toEqual(false);
  48. memoizedFn(arg1, arg2, arg3);
  49. expect(memoizedFn.wasMemoized).toEqual(true);
  50. expect(memoizedFn.lru.length).toEqual(2);
  51. });
  52. });