differing-num-args.js 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. var Memoizerific = require('../src/memoizerific');
  2. describe("different number of args between calls", () => {
  3. var memoizedFn,
  4. res,
  5. arg1 = 1,
  6. arg2 = 2,
  7. arg3 = 3,
  8. arg4 = 4,
  9. arg5 = 5;
  10. beforeEach(function() {
  11. memoizedFn = Memoizerific(50)(function(arg1, arg2, arg3, arg4, arg5) {
  12. return 'memoized result ' + arguments.length;
  13. });
  14. memoizedFn(arg1, arg2, arg3);
  15. });
  16. it("right number of args", () => {
  17. res = memoizedFn(arg1, arg2, arg4);
  18. expect(res).toEqual('memoized result 3');
  19. expect(memoizedFn.wasMemoized).toEqual(false);
  20. expect(memoizedFn.lru.length).toEqual(2);
  21. });
  22. it("one more arg", () => {
  23. expect(function() { memoizedFn(arg1, arg2, arg3, arg4) }).toThrow();
  24. /*
  25. res = memoizedFn(arg1, arg2, arg3, arg4);
  26. expect(res).toEqual('memoized result 4');
  27. expect(memoizedFn.wasMemoized).toEqual(true);
  28. expect(memoizedFn.lru.length).toEqual(1);
  29. */
  30. });
  31. it("several more args", () => {
  32. expect(function() { memoizedFn(arg1, arg2, arg3, arg4, arg5) }).toThrow();
  33. /*
  34. res = memoizedFn(arg1, arg2, arg3, arg4, arg5);
  35. expect(res).toEqual('memoized result 5');
  36. expect(memoizedFn.wasMemoized).toEqual(true);
  37. expect(memoizedFn.lru.length).toEqual(1);
  38. */
  39. });
  40. it("one fewer args", () => {
  41. expect(function() { memoizedFn(arg1, arg2) }).toThrow();
  42. /*
  43. res = memoizedFn(arg1, arg2);
  44. expect(res).toEqual('memoized result 2');
  45. expect(memoizedFn.wasMemoized).toEqual(true);
  46. expect(memoizedFn.lru.length).toEqual(1);
  47. */
  48. });
  49. it("several fewer args", () => {
  50. expect(function() { memoizedFn(arg1) }).toThrow();
  51. /*
  52. res = memoizedFn(arg1);
  53. expect(res).toEqual('memoized result 1');
  54. expect(memoizedFn.wasMemoized).toEqual(true);
  55. expect(memoizedFn.lru.length).toEqual(1);
  56. */
  57. });
  58. });