Add more lazy tests.

This commit is contained in:
jdalton
2015-01-31 10:24:04 -08:00
parent 29e3d9eff5
commit 4e3a72388d

View File

@@ -3580,25 +3580,30 @@
} }
}); });
test('should work in a lazy chain sequence', 4, function() { test('should work in a lazy chain sequence', 6, function() {
if (!isNpm) { if (!isNpm) {
var array = [1, 2, 3, 4, 5, 6, 7, 8], var array = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
predicate = function(value) { return value > 1; }, values = [],
predicate = function(value) { values.push(value); return value > 2; },
actual = _(array).drop(2).drop().value(); actual = _(array).drop(2).drop().value();
deepEqual(actual, [4, 5, 6, 7, 8]); deepEqual(actual, [4, 5, 6, 7, 8, 9, 10]);
actual = _(array).filter(predicate).drop(2).drop().value(); actual = _(array).filter(predicate).drop(2).drop().value();
deepEqual(actual, [5, 6, 7, 8]); deepEqual(actual, [6, 7, 8, 9, 10]);
deepEqual(values, array);
actual = _(array).drop(2).dropRight().drop().dropRight(2).value(); actual = _(array).drop(2).dropRight().drop().dropRight(2).value();
deepEqual(actual, [4, 5]); deepEqual(actual, [4, 5, 6, 7]);
actual = _(array).filter(predicate).drop(2).dropRight().drop().dropRight(2).value(); values = [];
deepEqual(actual, [5]);
actual = _(array).drop().filter(predicate).drop(2).dropRight().drop().dropRight(2).value();
deepEqual(actual, [6, 7]);
deepEqual(values, array.slice(1));
} }
else { else {
skipTest(4); skipTest(6);
} }
}); });
}()); }());
@@ -3656,25 +3661,30 @@
} }
}); });
test('should work in a lazy chain sequence', 4, function() { test('should work in a lazy chain sequence', 6, function() {
if (!isNpm) { if (!isNpm) {
var array = [1, 2, 3, 4, 5, 6, 7, 8], var array = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
predicate = function(value) { return value < 8; }, values = [],
predicate = function(value) { values.push(value); return value < 9; },
actual = _(array).dropRight(2).dropRight().value(); actual = _(array).dropRight(2).dropRight().value();
deepEqual(actual, [1, 2, 3, 4, 5]); deepEqual(actual, [1, 2, 3, 4, 5, 6, 7]);
actual = _(array).filter(predicate).dropRight(2).dropRight().value(); actual = _(array).filter(predicate).dropRight(2).dropRight().value();
deepEqual(actual, [1, 2, 3, 4]); deepEqual(actual, [1, 2, 3, 4, 5]);
deepEqual(values, array);
actual = _(array).dropRight(2).drop().dropRight().drop(2).value(); actual = _(array).dropRight(2).drop().dropRight().drop(2).value();
deepEqual(actual, [4, 5]); deepEqual(actual, [4, 5, 6, 7]);
actual = _(array).filter(predicate).dropRight(2).drop().dropRight().drop(2).value(); values = [];
deepEqual(actual, [4]);
actual = _(array).dropRight().filter(predicate).dropRight(2).drop().dropRight().drop(2).value();
deepEqual(actual, [4, 5]);
deepEqual(values, array.slice(0, -1));
} }
else { else {
skipTest(4); skipTest(6);
} }
}); });
}()); }());
@@ -4282,25 +4292,30 @@
} }
}); });
test('should work in a lazy chain sequence', 4, function() { test('should work in a lazy chain sequence', 6, function() {
if (!isNpm) { if (!isNpm) {
var array = [1, 2, 3, 4, 5, 6, 7, 8], var array = [1, 2, 3, 4, 5, 6, 7, 8, 9 , 10],
predicate = function(value) { return value > 1; }, values = [],
predicate = function(value) { values.push(value); return value > 2; },
actual = _(array).take(2).take().value(); actual = _(array).take(2).take().value();
deepEqual(actual, [1]); deepEqual(actual, [1]);
actual = _(array).filter(predicate).take(2).take().value(); actual = _(array).filter(predicate).take(2).take().value();
deepEqual(actual, [2]); deepEqual(actual, [3]);
deepEqual(values, array.slice(0, 3));
actual = _(array).take(6).takeRight(4).take(2).takeRight().value(); actual = _(array).take(6).takeRight(4).take(2).takeRight().value();
deepEqual(actual, [4]); deepEqual(actual, [4]);
actual = _(array).filter(predicate).take(6).takeRight(4).take(2).takeRight().value(); values = [];
deepEqual(actual, [5]);
actual = _(array).take(array.length - 1).filter(predicate).take(6).takeRight(4).take(2).takeRight().value();
deepEqual(actual, [6]);
deepEqual(values, array.slice(0, -2));
} }
else { else {
skipTest(4); skipTest(6);
} }
}); });
}()); }());
@@ -4358,25 +4373,30 @@
} }
}); });
test('should work in a lazy chain sequence', 4, function() { test('should work in a lazy chain sequence', 6, function() {
if (!isNpm) { if (!isNpm) {
var array = [1, 2, 3, 4, 5, 6, 7, 8], var array = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
predicate = function(value) { return value < 8; }, values = [],
predicate = function(value) { values.push(value); return value < 9; },
actual = _(array).takeRight(2).takeRight().value(); actual = _(array).takeRight(2).takeRight().value();
deepEqual(actual, [8]); deepEqual(actual, [10]);
actual = _(array).filter(predicate).takeRight(2).takeRight().value(); actual = _(array).filter(predicate).takeRight(2).takeRight().value();
deepEqual(actual, [7]); deepEqual(actual, [8]);
deepEqual(values, array);
actual = _(array).takeRight(6).take(4).takeRight(2).take().value(); actual = _(array).takeRight(6).take(4).takeRight(2).take().value();
deepEqual(actual, [5]); deepEqual(actual, [7]);
values = [];
actual = _(array).filter(predicate).takeRight(6).take(4).takeRight(2).take().value(); actual = _(array).filter(predicate).takeRight(6).take(4).takeRight(2).take().value();
deepEqual(actual, [4]); deepEqual(actual, [5]);
deepEqual(values, array);
} }
else { else {
skipTest(4); skipTest(6);
} }
}); });
}()); }());
@@ -5778,7 +5798,7 @@
} }
}); });
test('should work in a lazy chain sequence', 2, function() { test('should work in a lazy chain sequence', 4, function() {
if (!isNpm) { if (!isNpm) {
var array = [1, 2, 3], var array = [1, 2, 3],
values = []; values = [];
@@ -5791,9 +5811,21 @@
deepEqual(actual, []); deepEqual(actual, []);
deepEqual(values, [1, 2]); deepEqual(values, [1, 2]);
values = [];
actual = _(array).filter(function(value) {
values.push(value);
return value < 3;
})
.initial()
.value();
deepEqual(actual, [1]);
deepEqual(values, array);
} }
else { else {
skipTest(2); skipTest(4);
} }
}); });
}()); }());
@@ -9018,7 +9050,7 @@
test('should not not error on DOM elements', 1, function() { test('should not not error on DOM elements', 1, function() {
var object1 = { 'el': document && document.createElement('div') }, var object1 = { 'el': document && document.createElement('div') },
object2 = { 'el': document && document.createElement('div') }, object2 = { 'el': document && document.createElement('div') },
pairs = [[{}, object1], [object2, object1]], pairs = [[{}, object1], [object1, object2]],
expected = _.map(pairs, _.constant(true)); expected = _.map(pairs, _.constant(true));
var actual = _.map(pairs, function(pair) { var actual = _.map(pairs, function(pair) {
@@ -11329,7 +11361,7 @@
} }
}); });
test('should work in a lazy chain sequence', 2, function() { test('should work in a lazy chain sequence', 4, function() {
if (!isNpm) { if (!isNpm) {
var array = [1, 2, 3], var array = [1, 2, 3],
values = []; values = [];
@@ -11342,9 +11374,21 @@
deepEqual(actual, []); deepEqual(actual, []);
deepEqual(values, [2, 3]); deepEqual(values, [2, 3]);
values = [];
actual = _(array).filter(function(value) {
values.push(value);
return value > 1;
})
.rest()
.value();
deepEqual(actual, [3]);
deepEqual(values, array);
} }
else { else {
skipTest(2); skipTest(4);
} }
}); });
@@ -14308,18 +14352,20 @@
} }
}); });
test('should would in a hybrid chain sequence', 2, function() { test('should work in a hybrid chain sequence', 4, function() {
if (!isNpm) { if (!isNpm) {
var array = [1, 2, 3, null], var array = [1, 2, 3, null];
actual = _(array).map(_.identity).compact().reverse().value();
deepEqual(actual, [3, 2, 1]); _.each(['map', 'filter'], function(methodName) {
var actual = _(array)[methodName](_.identity).compact().reverse().value();
deepEqual(actual, [3, 2, 1]);
actual = _([1, 2, 3, null]).map(_.identity).compact().pull(1).push(4).reverse().value() actual = _(array.slice()).pull(2)[methodName](_.identity).compact().pull(1).push(4).reverse().value();
deepEqual(actual, [4, 3, 2]); deepEqual(actual, [4, 3]);
});
} }
else { else {
skipTest(2); skipTest(4);
} }
}); });
}()); }());