spica
Version:
Supervisor, Coroutine, Channel, select, AtomicPromise, Cancellation, Cache, List, Queue, Stack, and some utils.
45 lines (38 loc) • 1.03 kB
text/typescript
import { memoize, reduce } from './memoize';
import { Cache } from './cache';
describe('Unit: lib/memoize', () => {
describe('memoize', () => {
it('Map', () => {
let cnt = 0;
const f = memoize<number, number>(key => key + ++cnt);
assert(f(0) === 1);
assert(f(0) === 1);
});
it('Cache', () => {
let cnt = 0;
const f = memoize<number, number>(key => key + ++cnt, new Cache(9));
assert(f(0) === 1);
assert(f(0) === 1);
});
it('Array', () => {
let cnt = 0;
const f = memoize<number, number>(key => key + ++cnt, []);
assert(f(0) === 1);
assert(f(0) === 1);
});
it('Object', () => {
let cnt = 0;
const f = memoize<number, number>(key => key + ++cnt, {});
assert(f(0) === 1);
assert(f(0) === 1);
});
});
describe('reduce', () => {
it('', () => {
let cnt = 0;
const f = reduce<number, number>(key => key + ++cnt);
assert(f(0) === 1);
assert(f(0) === 1);
});
});
});