HEX
Server: nginx/1.24.0
System: Linux nowruzgan 6.8.0-57-generic #59-Ubuntu SMP PREEMPT_DYNAMIC Sat Mar 15 17:40:59 UTC 2025 x86_64
User: babak (1000)
PHP: 8.3.6
Disabled: NONE
Upload Files
File: /var/dev/farhangmoaser/web/node_modules/reduce-component/test/reduce.js
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);
    });
  });

});