mirror of
https://github.com/whoisclebs/lodash.git
synced 2026-02-09 02:17:50 +00:00
Update vendors.
This commit is contained in:
88
vendor/underscore/test/arrays.js
vendored
88
vendor/underscore/test/arrays.js
vendored
@@ -143,33 +143,23 @@
|
||||
QUnit.test('uniq', function(assert) {
|
||||
var list = [1, 2, 1, 3, 1, 4];
|
||||
assert.deepEqual(_.uniq(list), [1, 2, 3, 4], 'can find the unique values of an unsorted array');
|
||||
|
||||
list = [1, 1, 1, 2, 2, 3];
|
||||
assert.deepEqual(_.uniq(list, true), [1, 2, 3], 'can find the unique values of a sorted array faster');
|
||||
|
||||
list = [{name: 'moe'}, {name: 'curly'}, {name: 'larry'}, {name: 'curly'}];
|
||||
var iterator = function(value) { return value.name; };
|
||||
assert.deepEqual(_.map(_.uniq(list, false, iterator), iterator), ['moe', 'curly', 'larry'], 'can find the unique values of an array using a custom iterator');
|
||||
list = [{name: 'Moe'}, {name: 'Curly'}, {name: 'Larry'}, {name: 'Curly'}];
|
||||
var expected = [{name: 'Moe'}, {name: 'Curly'}, {name: 'Larry'}];
|
||||
var iterator = function(stooge) { return stooge.name; };
|
||||
assert.deepEqual(_.uniq(list, false, iterator), expected, 'uses the result of `iterator` for uniqueness comparisons (unsorted case)');
|
||||
assert.deepEqual(_.uniq(list, iterator), expected, '`sorted` argument defaults to false when omitted');
|
||||
assert.deepEqual(_.uniq(list, 'name'), expected, 'when `iterator` is a string, uses that key for comparisons (unsorted case)');
|
||||
|
||||
assert.deepEqual(_.map(_.uniq(list, iterator), iterator), ['moe', 'curly', 'larry'], 'can find the unique values of an array using a custom iterator without specifying whether array is sorted');
|
||||
|
||||
iterator = function(value) { return value + 1; };
|
||||
list = [1, 2, 2, 3, 4, 4];
|
||||
assert.deepEqual(_.uniq(list, true, iterator), [1, 2, 3, 4], 'iterator works with sorted array');
|
||||
|
||||
var kittens = [
|
||||
{kitten: 'Celery', cuteness: 8},
|
||||
{kitten: 'Juniper', cuteness: 10},
|
||||
{kitten: 'Spottis', cuteness: 10}
|
||||
];
|
||||
|
||||
var expected = [
|
||||
{kitten: 'Celery', cuteness: 8},
|
||||
{kitten: 'Juniper', cuteness: 10}
|
||||
];
|
||||
|
||||
assert.deepEqual(_.uniq(kittens, true, 'cuteness'), expected, 'string iterator works with sorted array');
|
||||
list = [{score: 8}, {score: 10}, {score: 10}];
|
||||
expected = [{score: 8}, {score: 10}];
|
||||
iterator = function(item) { return item.score; };
|
||||
assert.deepEqual(_.uniq(list, true, iterator), expected, 'uses the result of `iterator` for uniqueness comparisons (sorted case)');
|
||||
assert.deepEqual(_.uniq(list, true, 'score'), expected, 'when `iterator` is a string, uses that key for comparisons (sorted case)');
|
||||
|
||||
assert.deepEqual(_.uniq([{0: 1}, {0: 1}, {0: 1}, {0: 2}], 0), [{0: 1}, {0: 2}], 'can use falsey pluck like iterator');
|
||||
|
||||
var result = (function(){ return _.uniq(arguments); }(1, 2, 1, 3, 1, 4));
|
||||
assert.deepEqual(result, [1, 2, 3, 4], 'works on an arguments object');
|
||||
@@ -177,19 +167,17 @@
|
||||
var a = {}, b = {}, c = {};
|
||||
assert.deepEqual(_.uniq([a, b, a, b, c]), [a, b, c], 'works on values that can be tested for equivalency but not ordered');
|
||||
|
||||
assert.deepEqual(_.uniq(null), []);
|
||||
assert.deepEqual(_.uniq(null), [], 'returns an empty array when `array` is not iterable');
|
||||
|
||||
var context = {};
|
||||
list = [3];
|
||||
_.uniq(list, function(value, index, array) {
|
||||
assert.strictEqual(this, context);
|
||||
assert.strictEqual(value, 3);
|
||||
assert.strictEqual(index, 0);
|
||||
assert.strictEqual(array, list);
|
||||
assert.strictEqual(this, context, 'executes its iterator in the given context');
|
||||
assert.strictEqual(value, 3, 'passes its iterator the value');
|
||||
assert.strictEqual(index, 0, 'passes its iterator the index');
|
||||
assert.strictEqual(array, list, 'passes its iterator the entire array');
|
||||
}, context);
|
||||
|
||||
assert.deepEqual(_.uniq([{a: 1, b: 1}, {a: 1, b: 2}, {a: 1, b: 3}, {a: 2, b: 1}], 'a'), [{a: 1, b: 1}, {a: 2, b: 1}], 'can use pluck like iterator');
|
||||
assert.deepEqual(_.uniq([{0: 1, b: 1}, {0: 1, b: 2}, {0: 1, b: 3}, {0: 2, b: 1}], 0), [{0: 1, b: 1}, {0: 2, b: 1}], 'can use falsey pluck like iterator');
|
||||
});
|
||||
|
||||
QUnit.test('unique', function(assert) {
|
||||
@@ -198,44 +186,54 @@
|
||||
|
||||
QUnit.test('intersection', function(assert) {
|
||||
var stooges = ['moe', 'curly', 'larry'], leaders = ['moe', 'groucho'];
|
||||
assert.deepEqual(_.intersection(stooges, leaders), ['moe'], 'can take the set intersection of two arrays');
|
||||
assert.deepEqual(_.intersection(stooges, leaders), ['moe'], 'can find the set intersection of two arrays');
|
||||
assert.deepEqual(_(stooges).intersection(leaders), ['moe'], 'can perform an OO-style intersection');
|
||||
var result = (function(){ return _.intersection(arguments, leaders); }('moe', 'curly', 'larry'));
|
||||
assert.deepEqual(result, ['moe'], 'works on an arguments object');
|
||||
var theSixStooges = ['moe', 'moe', 'curly', 'curly', 'larry', 'larry'];
|
||||
assert.deepEqual(_.intersection(theSixStooges, leaders), ['moe'], 'returns a duplicate-free array');
|
||||
result = _.intersection([2, 4, 3, 1], [1, 2, 3]);
|
||||
assert.deepEqual(result, [2, 3, 1], 'preserves order of first array');
|
||||
assert.deepEqual(result, [2, 3, 1], 'preserves the order of the first array');
|
||||
result = _.intersection(null, [1, 2, 3]);
|
||||
assert.equal(Object.prototype.toString.call(result), '[object Array]', 'returns an empty array when passed null as first argument');
|
||||
assert.equal(result.length, 0, 'returns an empty array when passed null as first argument');
|
||||
assert.deepEqual(result, [], 'returns an empty array when passed null as the first argument');
|
||||
result = _.intersection([1, 2, 3], null);
|
||||
assert.equal(Object.prototype.toString.call(result), '[object Array]', 'returns an empty array when passed null as argument beyond the first');
|
||||
assert.equal(result.length, 0, 'returns an empty array when passed null as argument beyond the first');
|
||||
assert.deepEqual(result, [], 'returns an empty array when passed null as an argument beyond the first');
|
||||
});
|
||||
|
||||
QUnit.test('union', function(assert) {
|
||||
var result = _.union([1, 2, 3], [2, 30, 1], [1, 40]);
|
||||
assert.deepEqual(result, [1, 2, 3, 30, 40], 'takes the union of a list of arrays');
|
||||
assert.deepEqual(result, [1, 2, 3, 30, 40], 'can find the union of a list of arrays');
|
||||
|
||||
result = _([1, 2, 3]).union([2, 30, 1], [1, 40]);
|
||||
assert.deepEqual(result, [1, 2, 3, 30, 40], 'can perform an OO-style union');
|
||||
|
||||
result = _.union([1, 2, 3], [2, 30, 1], [1, 40, [1]]);
|
||||
assert.deepEqual(result, [1, 2, 3, 30, 40, [1]], 'takes the union of a list of nested arrays');
|
||||
assert.deepEqual(result, [1, 2, 3, 30, 40, [1]], 'can find the union of a list of nested arrays');
|
||||
|
||||
var args = null;
|
||||
(function(){ args = arguments; }(1, 2, 3));
|
||||
result = _.union(args, [2, 30, 1], [1, 40]);
|
||||
assert.deepEqual(result, [1, 2, 3, 30, 40], 'takes the union of a list of arrays');
|
||||
result = _.union([10, 20], [1, 30, 10], [0, 40]);
|
||||
assert.deepEqual(result, [10, 20, 1, 30, 0, 40], 'orders values by their first encounter');
|
||||
|
||||
result = _.union([1, 2, 3], 4);
|
||||
assert.deepEqual(result, [1, 2, 3], 'restrict the union to arrays only');
|
||||
result = (function(){ return _.union(arguments, [2, 30, 1], [1, 40]); }(1, 2, 3));
|
||||
assert.deepEqual(result, [1, 2, 3, 30, 40], 'works on an arguments object');
|
||||
|
||||
assert.deepEqual(_.union([1, 2, 3], 4), [1, 2, 3], 'restricts the union to arrays only');
|
||||
});
|
||||
|
||||
QUnit.test('difference', function(assert) {
|
||||
var result = _.difference([1, 2, 3], [2, 30, 40]);
|
||||
assert.deepEqual(result, [1, 3], 'takes the difference of two arrays');
|
||||
assert.deepEqual(result, [1, 3], 'can find the difference of two arrays');
|
||||
|
||||
result = _([1, 2, 3]).difference([2, 30, 40]);
|
||||
assert.deepEqual(result, [1, 3], 'can perform an OO-style difference');
|
||||
|
||||
result = _.difference([1, 2, 3, 4], [2, 30, 40], [1, 11, 111]);
|
||||
assert.deepEqual(result, [3, 4], 'takes the difference of three arrays');
|
||||
assert.deepEqual(result, [3, 4], 'can find the difference of three arrays');
|
||||
|
||||
result = _.difference([8, 9, 3, 1], [3, 8]);
|
||||
assert.deepEqual(result, [9, 1], 'preserves the order of the first array');
|
||||
|
||||
result = (function(){ return _.difference(arguments, [2, 30, 40]); }(1, 2, 3));
|
||||
assert.deepEqual(result, [1, 3], 'works on an arguments object');
|
||||
|
||||
result = _.difference([1, 2, 3], 1);
|
||||
assert.deepEqual(result, [1, 2, 3], 'restrict the difference to arrays only');
|
||||
|
||||
5
vendor/underscore/test/objects.js
vendored
5
vendor/underscore/test/objects.js
vendored
@@ -728,6 +728,11 @@
|
||||
assert.ok(_.isFinite(0), '0 is finite');
|
||||
assert.ok(_.isFinite(123), 'Ints are finite');
|
||||
assert.ok(_.isFinite(-12.44), 'Floats are finite');
|
||||
if (typeof Symbol === 'function') {
|
||||
assert.ok(!_.isFinite(Symbol()), 'symbols are not numbers');
|
||||
assert.ok(!_.isFinite(Symbol('description')), 'described symbols are not numbers');
|
||||
assert.ok(!_.isFinite(Object(Symbol())), 'boxed symbols are not numbers');
|
||||
}
|
||||
});
|
||||
|
||||
QUnit.test('isNaN', function(assert) {
|
||||
|
||||
Reference in New Issue
Block a user