HEX
Server: nginx/1.18.0
System: Linux test-ipsremont 5.4.0-214-generic #234-Ubuntu SMP Fri Mar 14 23:50:27 UTC 2025 x86_64
User: ips (1000)
PHP: 8.0.30
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: //var/www/design.system/node_modules/memoizerific/tests/differing-num-args.js
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);
		*/
	});
});