Sha256: 66f8fc5caa79a322e9d4d9713c6442065598fb00faf30016253c646d2bb6332b

Contents?: true

Size: 1.57 KB

Versions: 19

Compression:

Stored size: 1.57 KB

Contents

(function() {
  this.expectRounded = function(val, precision) {
    var factor, v;
    if (precision == null) {
      precision = 4;
    }
    factor = Math.pow(10, precision);
    v = val > 0 ? Math.round(val * factor) / factor : -Math.round(-val * factor) / factor;
    if (v === -0) {
      v = 0;
    }
    if (v !== v) {
      v = 0/0;
    }
    return expect(v);
  };

  this.roundArray = function(array, precision, predicate) {
    var i, j, len, results, val;
    if (precision == null) {
      precision = 4;
    }
    results = [];
    for (i = j = 0, len = array.length; j < len; i = ++j) {
      val = array[i];
      if (_.isArray(val)) {
        results.push(this.roundArray(val, precision, predicate));
      } else {
        results.push(this.round(val, precision, predicate, i));
      }
    }
    return results;
  };

  this.round = function(val, precision, predicate, index) {
    var _int, factor, round, v;
    if (precision == null) {
      precision = 4;
    }
    round = true;
    if (_.isNumber(predicate)) {
      v = round = (index + 1) % predicate === 0;
    } else if (_.isFunction(predicate)) {
      v = round = predicate(val, index);
    }
    if (round) {
      factor = Math.pow(10, precision);
      _int = val * factor;
      if (val > 0) {
        v = Math.round(_int) / factor;
      } else {
        v = -Math.round(-_int) / factor;
      }
    } else {
      v = val;
    }
    if (v === -0) {
      return 0;
    } else {
      return v;
    }
  };

  this.expectRoundedArray = function() {
    return expect(roundArray.apply(this, arguments));
  };

}).call(this);

Version data entries

19 entries across 19 versions & 1 rubygems

Version Path
ela-4.1.6 dist/spec_helpers/rounding_helpers.js
ela-4.1.5 dist/spec_helpers/rounding_helpers.js
ela-4.1.4 dist/spec_helpers/rounding_helpers.js
ela-4.1.3 dist/spec_helpers/rounding_helpers.js
ela-4.1.2 dist/spec_helpers/rounding_helpers.js
ela-4.1.1 dist/spec_helpers/rounding_helpers.js
ela-4.1.0 dist/spec_helpers/rounding_helpers.js
ela-4.0.0 dist/spec_helpers/rounding_helpers.js
ela-3.4.3 dist/spec_helpers/rounding_helpers.js
ela-3.4.2 dist/spec_helpers/rounding_helpers.js
ela-3.4.0 dist/spec_helpers/rounding_helpers.js
ela-3.3.1 dist/spec_helpers/rounding_helpers.js
ela-3.3.0 dist/spec_helpers/rounding_helpers.js
ela-3.2.0 dist/spec_helpers/rounding_helpers.js
ela-3.1.1 dist/spec_helpers/rounding_helpers.js
ela-3.1.0 dist/spec_helpers/rounding_helpers.js
ela-3.0.0 dist/spec_helpers/rounding_helpers.js
ela-2.0.0 dist/spec_helpers/rounding_helpers.js
ela-1.1.0 dist/spec_helpers/rounding_helpers.js