mirror of
https://github.com/whoisclebs/lodash.git
synced 2026-02-06 17:47:49 +00:00
Add more MapCache tests.
This commit is contained in:
48
test/test.js
48
test/test.js
@@ -12514,34 +12514,44 @@
|
|||||||
});
|
});
|
||||||
|
|
||||||
QUnit.test('should expose a `cache` object on the `memoized` function which implements `Map` interface', function(assert) {
|
QUnit.test('should expose a `cache` object on the `memoized` function which implements `Map` interface', function(assert) {
|
||||||
assert.expect(22);
|
assert.expect(110);
|
||||||
|
|
||||||
lodashStable.times(2, function(index) {
|
lodashStable.times(2, function(index) {
|
||||||
var resolver = index ? identity : null;
|
var resolver = index ? identity : null;
|
||||||
|
|
||||||
var memoized = _.memoize(function(value) {
|
var cacheKeys = [
|
||||||
return 'value:' + value;
|
['a', 'b', 'c'],
|
||||||
}, resolver);
|
[null, undefined, NaN],
|
||||||
|
[1, 2, 3],
|
||||||
|
[true, false, -Infinity],
|
||||||
|
[{ 'a': 1 }, { 'b': 2 }, { 'c': 3 }]
|
||||||
|
];
|
||||||
|
|
||||||
var cache = memoized.cache;
|
lodashStable.each(cacheKeys, function(keys) {
|
||||||
|
var memoized = _.memoize(function(key) {
|
||||||
|
return 'value:' + lodashStable.indexOf(keys, key);
|
||||||
|
}, resolver);
|
||||||
|
|
||||||
memoized('a');
|
var cache = memoized.cache;
|
||||||
memoized('b');
|
|
||||||
memoized('c');
|
|
||||||
|
|
||||||
assert.strictEqual(cache.has('a'), true);
|
memoized(keys[0]);
|
||||||
assert.strictEqual(cache.has('b'), true);
|
memoized(keys[1]);
|
||||||
assert.strictEqual(cache.has('c'), true);
|
memoized(keys[2]);
|
||||||
|
|
||||||
assert.strictEqual(cache.get('a'), 'value:a');
|
assert.strictEqual(cache.has(keys[0]), true);
|
||||||
assert.strictEqual(cache['delete']('a'), true);
|
assert.strictEqual(cache.has(keys[1]), true);
|
||||||
assert.strictEqual(cache.has('a'), false);
|
assert.strictEqual(cache.has(keys[2]), true);
|
||||||
assert.strictEqual(cache.get('a'), undefined);
|
|
||||||
assert.strictEqual(cache['delete']('a'), false);
|
|
||||||
|
|
||||||
assert.strictEqual(cache.clear(), undefined);
|
assert.strictEqual(cache.get(keys[0]), 'value:0');
|
||||||
assert.strictEqual(cache.has('b'), false);
|
assert.strictEqual(cache['delete'](keys[0]), true);
|
||||||
assert.strictEqual(cache.has('c'), false);
|
assert.strictEqual(cache.has(keys[0]), false);
|
||||||
|
assert.strictEqual(cache.get(keys[0]), undefined);
|
||||||
|
assert.strictEqual(cache['delete'](keys[0]), false);
|
||||||
|
|
||||||
|
assert.strictEqual(cache.clear(), undefined);
|
||||||
|
assert.strictEqual(cache.has(keys[1]), false);
|
||||||
|
assert.strictEqual(cache.has(keys[2]), false);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user