rafa
Version:
Rafa.js is a Javascript framework for building concurrent applications.
41 lines (36 loc) • 1.16 kB
JavaScript
module.exports = (assert, Rafa) => {
suite("reduce", () => {
test("sum", () => {
var stream = Rafa.stream();
var values = [];
stream.reduce((a, b) => a + b)
.each(v => values.push(v))
.done(v => values.push(v));
stream.enumerate(Rafa.Enumerator.array([1,2,3]));
assert.equal(values.length, 2);
assert.equal(values[0], 6);
});
test("single done message with undefined value", () => {
var stream = Rafa.stream();
var values = [];
stream.reduce((a, b) => a + b)
.each(v => values.push(v))
.done(v => values.push(v));
Rafa.doneMessage().push(stream);
assert.equal(values.length, 1);
assert.isUndefined(values[1]);
assert.isUndefined(values[2]);
});
test("single done message with value", () => {
var stream = Rafa.stream();
var values = [];
stream.reduce((a, b) => a + b)
.each(v => values.push(v))
.done(v => values.push(v));
Rafa.doneMessage(1).push(stream);
assert.equal(values.length, 2);
assert.equal(values[0], 1);
assert.equal(values[1], 1);
});
});
};