var HELPER_MATCHERS = (function() { var EPSILON = 0.00001; return { /* Returns true if `actual` has the same length as `expected`, and if each element of both arrays is within 0.000001 of each other. This is a way to check for "equal enough" conditions, as a way of working around floating point imprecision. */ toBeEqualish: function(expected) { if (typeof(this.actual) == 'number') return Math.abs(this.actual - expected) < EPSILON; if (this.actual.length != expected.length) return false; for (var i = 0; i < this.actual.length; i++) { if (isNaN(this.actual[i]) !== isNaN(expected[i])) return false; if (Math.abs(this.actual[i] - expected[i]) >= EPSILON) return false; } return true; } }; })(); beforeEach(function() { this.addMatchers(HELPER_MATCHERS); }); if (typeof(global) != 'undefined') global.HELPER_MATCHERS = HELPER_MATCHERS;