49 lines
1.0 KiB
JavaScript
49 lines
1.0 KiB
JavaScript
|
|
var reduce = require('..');
|
|
|
|
describe('reduce', function(){
|
|
|
|
describe('when adding prev and current', function(){
|
|
it('should be sum all the values', function(){
|
|
var numbers = [2,2,2];
|
|
var fn = function(prev, curr){
|
|
return prev + curr;
|
|
};
|
|
|
|
var a = numbers.reduce(fn);
|
|
var b = reduce(numbers, fn);
|
|
|
|
a.should.equal(6);
|
|
b.should.equal(a);
|
|
});
|
|
});
|
|
|
|
describe('when passing in an initial value', function(){
|
|
it('should default to it', function(){
|
|
var items = [];
|
|
var fn = function(prev){
|
|
return prev;
|
|
};
|
|
|
|
var a = items.reduce(fn, 'foo');
|
|
var b = reduce(items, fn, 'foo');
|
|
|
|
a.should.equal('foo');
|
|
b.should.equal(a);
|
|
});
|
|
|
|
it('should start with it', function(){
|
|
var items = [10, 10];
|
|
var fn = function(prev, curr){
|
|
return prev + curr;
|
|
};
|
|
|
|
var a = items.reduce(fn, 10);
|
|
var b = reduce(items, fn, 10);
|
|
|
|
a.should.equal(30);
|
|
b.should.equal(a);
|
|
});
|
|
});
|
|
|
|
}); |