58 lines
1.3 KiB
JavaScript
58 lines
1.3 KiB
JavaScript
var Memoizerific = require('../src/memoizerific');
|
|
|
|
describe("wasMemoized", () => {
|
|
var memoizedFn;
|
|
|
|
beforeEach(function() {
|
|
memoizedFn = Memoizerific(50)(function(arg1, arg2, arg3) {
|
|
return arg1.num * arg2.num;
|
|
});
|
|
});
|
|
|
|
it("should be false before any invocations", () => {
|
|
expect(memoizedFn.wasMemoized).toEqual(false);
|
|
});
|
|
|
|
it("should be false after one invocation", () => {
|
|
memoizedFn(1, 2, 3);
|
|
expect(memoizedFn.wasMemoized).toEqual(false);
|
|
});
|
|
|
|
it("should be true", () => {
|
|
memoizedFn(1, 2, 3);
|
|
memoizedFn(1, 2, 3);
|
|
expect(memoizedFn.wasMemoized).toEqual(true);
|
|
});
|
|
|
|
it("should be false", () => {
|
|
memoizedFn(1, 2, 3);
|
|
memoizedFn(1, 2, 3);
|
|
memoizedFn(4, 5, 6);
|
|
expect(memoizedFn.wasMemoized).toEqual(false);
|
|
});
|
|
});
|
|
|
|
describe("limit", () => {
|
|
var memoizedFn;
|
|
|
|
beforeEach(function() {
|
|
memoizedFn = Memoizerific(43)(function(arg1, arg2, arg3) {
|
|
return arg1.num * arg2.num;
|
|
});
|
|
});
|
|
|
|
it("should be correct after no invocations", () => {
|
|
expect(memoizedFn.limit).toEqual(43);
|
|
});
|
|
|
|
it("should be correct after one invocation", () => {
|
|
memoizedFn(1, 2, 3);
|
|
expect(memoizedFn.limit).toEqual(43);
|
|
});
|
|
|
|
it("should be correct after multiple invocations", () => {
|
|
memoizedFn(1, 2, 3);
|
|
memoizedFn(4, 5, 6);
|
|
expect(memoizedFn.limit).toEqual(43);
|
|
});
|
|
}); |