UNPKG

1.61 kBJavaScriptView Raw
1var lazyIterators = require("../lib/lazy-iterators");
2
3exports.convertingArrayToIteratorAndBack = function(test) {
4 var original = ["apple", "banana", "coconut"];
5 var iterator = lazyIterators.fromArray(original);
6 var reconstituted = iterator.toArray();
7 test.deepEqual(original, reconstituted);
8 test.done();
9};
10
11exports.mapAppliesFunctionToEveryElement = function(test) {
12 var original = [1, 2, 3];
13 var squared = lazyIterators.fromArray(original).map(function(i) {
14 return i * i;
15 }).toArray();
16 test.deepEqual([1, 4, 9], squared);
17 test.done();
18};
19
20exports.mappingFunctionIsOnlyCalledWhenNecessary = function(test) {
21 var original = [1, 2, 3];
22 var faultySquared = lazyIterators.fromArray(original).map(function(i) {
23 if (i === 1) {
24 return i;
25 } else {
26 throw new Error("Can only calculate the square of one");
27 }
28 }).first();
29 test.deepEqual(1, faultySquared);
30 test.done();
31};
32
33exports.filterRetainsElementsThatSatisfyPredicate = function(test) {
34 var original = [1, 2, 3, 4];
35 var even = lazyIterators.fromArray(original).filter(function(i) {
36 return i % 2 === 0;
37 }).toArray();
38 test.deepEqual([2, 4], even);
39 test.done();
40};
41
42exports.firstReturnsFirstElementOfArray = function(test) {
43 var original = [1, 2, 3, 4];
44 var first = lazyIterators.fromArray(original).first();
45 test.deepEqual(1, first);
46 test.done();
47};
48
49exports.firstIsNullIfArrayIsEmpty = function(test) {
50 var first = lazyIterators.fromArray([]).first();
51 test.same(null, first);
52 test.done();
53};