summaryrefslogtreecommitdiff
path: root/tst/memoize.test.ts
diff options
context:
space:
mode:
authorElizabeth Hunt <me@liz.coffee>2025-07-27 17:03:10 -0700
committerElizabeth Hunt <me@liz.coffee>2025-07-27 18:30:30 -0700
commit9970036d203ba2d0a46b35ba6fad21d49441cdd4 (patch)
treea585d13933bf4149dcb07e28526063d071453105 /tst/memoize.test.ts
downloadpengueno-9970036d203ba2d0a46b35ba6fad21d49441cdd4.tar.gz
pengueno-9970036d203ba2d0a46b35ba6fad21d49441cdd4.zip
hai
Diffstat (limited to 'tst/memoize.test.ts')
-rw-r--r--tst/memoize.test.ts24
1 files changed, 24 insertions, 0 deletions
diff --git a/tst/memoize.test.ts b/tst/memoize.test.ts
new file mode 100644
index 0000000..e3d9050
--- /dev/null
+++ b/tst/memoize.test.ts
@@ -0,0 +1,24 @@
+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);
+});