%PDF- %PDF-
| Direktori : /proc/self/root/home/infra/fusioninventory/lib/lazy.js-0.5.1/spec/ |
| Current File : //proc/self/root/home/infra/fusioninventory/lib/lazy.js-0.5.1/spec/flatten_spec.js |
describe("flatten", function() {
ensureLaziness(function() { Lazy([[david], [mary], [lauren], [adam]]).flatten(); });
it("flattens nested arrays of arrays into one big array", function() {
var nested = [[david], [mary], [lauren, adam], [[daniel], happy]];
var flattened = Lazy(nested).flatten().toArray();
expect(flattened).toEqual([david, mary, lauren, adam, daniel, happy]);
});
it("flattens nested sequences along with arrays", function() {
var nestedSequences = [
Lazy([david, mary,
Lazy([lauren, adam,
Lazy([daniel, happy])
])
])
];
var flattened = Lazy(nestedSequences).flatten().toArray();
expect(flattened).toEqual([david, mary, lauren, adam, daniel, happy]);
});
it("supports early exiting", function() {
var nestedSequences = [
Lazy([david, mary,
Lazy([lauren, adam,
Lazy([daniel, happy])
])
])
];
var iterated = [];
Lazy(nestedSequences).flatten().each(function(p) {
iterated.push(p);
if (p === lauren) {
return false;
}
});
expect(iterated).toEqual([david, mary, lauren]);
});
it("doesn't over-collect on early exit for multiple 'top-level' arrays", function() {
var arrays = [[1, 2, 3], [4, 5, 6]];
var flattened = Lazy(arrays).flatten().take(2).toArray();
expect(flattened).toEqual([1, 2]);
});
it("doesn't over-collect on early exit for multiple 'top-level' sequences", function() {
var sequences = [Lazy([1, 2, 3]), Lazy([4, 5, 6])];
var flattened = Lazy(sequences).flatten().take(2).toArray();
expect(flattened).toEqual([1, 2]);
});
it("passes an index along with each element", function() {
var nested = [[david], [mary], [lauren, adam], [[daniel], happy]];
expect(Lazy(nested).flatten()).toPassToEach(1, [0, 1, 2, 3, 4, 5]);
});
});