mirror of
https://github.com/whoisclebs/lodash.git
synced 2026-02-08 10:17:48 +00:00
Add unit tests for _.max and _.min accepting strings and adjust the build/test-build.js.
Former-commit-id: b567c019146e96ad257dab8fe1b4138d07f470c0
This commit is contained in:
16
lodash.js
16
lodash.js
@@ -1832,7 +1832,7 @@
|
|||||||
|
|
||||||
fromIndex = (fromIndex < 0 ? nativeMax(0, length + fromIndex) : fromIndex) || 0;
|
fromIndex = (fromIndex < 0 ? nativeMax(0, length + fromIndex) : fromIndex) || 0;
|
||||||
if (typeof length == 'number') {
|
if (typeof length == 'number') {
|
||||||
return (toString.call(collection) == stringClass
|
return (isString(collection)
|
||||||
? collection.indexOf(target, fromIndex)
|
? collection.indexOf(target, fromIndex)
|
||||||
: indexOf(collection, target, fromIndex)
|
: indexOf(collection, target, fromIndex)
|
||||||
) > -1;
|
) > -1;
|
||||||
@@ -2127,6 +2127,11 @@
|
|||||||
result = computed;
|
result = computed;
|
||||||
|
|
||||||
if (callback || !isArray(collection)) {
|
if (callback || !isArray(collection)) {
|
||||||
|
if (!callback && isString(collection)) {
|
||||||
|
callback = function(value) {
|
||||||
|
return value.charCodeAt(0);
|
||||||
|
};
|
||||||
|
}
|
||||||
callback = createCallback(callback, thisArg);
|
callback = createCallback(callback, thisArg);
|
||||||
forEach(collection, function(value, index, collection) {
|
forEach(collection, function(value, index, collection) {
|
||||||
var current = callback(value, index, collection);
|
var current = callback(value, index, collection);
|
||||||
@@ -2170,6 +2175,11 @@
|
|||||||
result = computed;
|
result = computed;
|
||||||
|
|
||||||
if (callback || !isArray(collection)) {
|
if (callback || !isArray(collection)) {
|
||||||
|
if (!callback && isString(collection)) {
|
||||||
|
callback = function(value) {
|
||||||
|
return value.charCodeAt(0);
|
||||||
|
};
|
||||||
|
}
|
||||||
callback = createCallback(callback, thisArg);
|
callback = createCallback(callback, thisArg);
|
||||||
forEach(collection, function(value, index, collection) {
|
forEach(collection, function(value, index, collection) {
|
||||||
var current = callback(value, index, collection);
|
var current = callback(value, index, collection);
|
||||||
@@ -2274,7 +2284,7 @@
|
|||||||
if (typeof length != 'number') {
|
if (typeof length != 'number') {
|
||||||
var props = keys(collection);
|
var props = keys(collection);
|
||||||
length = props.length;
|
length = props.length;
|
||||||
} else if (noCharByIndex && toString.call(collection) == stringClass) {
|
} else if (noCharByIndex && isString(collection)) {
|
||||||
iteratee = collection.split('');
|
iteratee = collection.split('');
|
||||||
}
|
}
|
||||||
forEach(collection, function(value, index, collection) {
|
forEach(collection, function(value, index, collection) {
|
||||||
@@ -2449,7 +2459,7 @@
|
|||||||
*/
|
*/
|
||||||
function toArray(collection) {
|
function toArray(collection) {
|
||||||
if (collection && typeof collection.length == 'number') {
|
if (collection && typeof collection.length == 'number') {
|
||||||
return (noArraySliceOnStrings ? toString.call(collection) == stringClass : typeof collection == 'string')
|
return (noArraySliceOnStrings ? isString(collection) : typeof collection == 'string')
|
||||||
? collection.split('')
|
? collection.split('')
|
||||||
: slice.call(collection);
|
: slice.call(collection);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -649,7 +649,10 @@
|
|||||||
|
|
||||||
object = { 'length': 0, 'splice': Array.prototype.splice };
|
object = { 'length': 0, 'splice': Array.prototype.splice };
|
||||||
equal(lodash.isEmpty(object), false, '_.isEmpty should return `false` for jQuery/MooTools DOM query collections: ' + basename);
|
equal(lodash.isEmpty(object), false, '_.isEmpty should return `false` for jQuery/MooTools DOM query collections: ' + basename);
|
||||||
|
|
||||||
equal(lodash.isFinite('2'), false, '_.isFinite should return `false` for numeric string values: ' + basename);
|
equal(lodash.isFinite('2'), false, '_.isFinite should return `false` for numeric string values: ' + basename);
|
||||||
|
equal(lodash.max('abc'), -Infinity, '_.max should return `-Infinity` for strings: ' + basename);
|
||||||
|
equal(lodash.min('abc'), Infinity, '_.min should return `Infinity` for strings: ' + basename);
|
||||||
|
|
||||||
// avoid issues comparing objects with `deepEqual`
|
// avoid issues comparing objects with `deepEqual`
|
||||||
object = { 'a': 1, 'b': 2, 'c': 3 };
|
object = { 'a': 1, 'b': 2, 'c': 3 };
|
||||||
|
|||||||
15
test/test.js
15
test/test.js
@@ -1039,6 +1039,21 @@
|
|||||||
|
|
||||||
/*--------------------------------------------------------------------------*/
|
/*--------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
QUnit.module('lodash.max and lodash.min string iteration');
|
||||||
|
|
||||||
|
_.each(['max', 'min'], function(methodName) {
|
||||||
|
var func = _[methodName];
|
||||||
|
|
||||||
|
test('lodash.' + methodName + ' should iterate a string', function() {
|
||||||
|
_.each(['abc', Object('abc')], function(value) {
|
||||||
|
var actual = func(value);
|
||||||
|
equal(actual, methodName == 'max' ? 'c' : 'a');
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
/*--------------------------------------------------------------------------*/
|
||||||
|
|
||||||
QUnit.module('lodash.merge');
|
QUnit.module('lodash.merge');
|
||||||
|
|
||||||
(function() {
|
(function() {
|
||||||
|
|||||||
Reference in New Issue
Block a user