Refactor: Implement SmartCube renderer, improve UI styling, and fix gaps
This commit is contained in:
46
node_modules/@gkucmierz/utils/spec/memoize.spec.mjs
generated
vendored
Normal file
46
node_modules/@gkucmierz/utils/spec/memoize.spec.mjs
generated
vendored
Normal file
@@ -0,0 +1,46 @@
|
||||
|
||||
import {
|
||||
memoize,
|
||||
} from '../src/memoize.mjs';
|
||||
|
||||
describe('memoize', () => {
|
||||
it('called once', () => {
|
||||
let cnt = 0;
|
||||
const add = memoize((a, b) => {
|
||||
++cnt;
|
||||
return a + b;
|
||||
});
|
||||
|
||||
expect(add(1, 2)).toBe(3);
|
||||
expect(cnt).toBe(1);
|
||||
expect(add(1, 2)).toBe(3);
|
||||
expect(cnt).toBe(1);
|
||||
|
||||
expect(add(2, 1)).toBe(3);
|
||||
expect(cnt).toBe(2);
|
||||
});
|
||||
|
||||
it('variable args length', () => {
|
||||
const fn = memoize((...args) => args.length);
|
||||
|
||||
expect(fn()).toBe(0);
|
||||
expect(fn(1)).toBe(1);
|
||||
expect(fn(1, 2)).toBe(2);
|
||||
expect(fn(1, 2, 3)).toBe(3);
|
||||
});
|
||||
|
||||
it('different empty object arrays', () => {
|
||||
let cnt = 0;
|
||||
const fn = memoize(() => ++cnt);
|
||||
const emptyArr = [];
|
||||
fn(emptyArr);
|
||||
expect(cnt).toBe(1);
|
||||
fn(emptyArr);
|
||||
expect(cnt).toBe(1);
|
||||
fn([]);
|
||||
expect(cnt).toBe(2);
|
||||
fn([]);
|
||||
expect(cnt).toBe(3);
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user