import { memoize } from '@emprespresso/pengueno'; interface RefCounter { inc(by: number): number; } test('memoizes', () => { let _c = 0; const c: RefCounter = { inc(by: number): number { _c += by; return _c; }, }; const incBy = memoize((n: number) => c.inc(n)); expect(incBy(1)).toBe(1); expect(incBy(2)).toBe(3); expect(incBy(20)).toBe(23); expect(incBy(20)).toBe(23); expect(incBy(1)).toBe(1); expect(incBy(2)).toBe(3); });