mirror of
https://github.com/toji/gl-matrix.git
synced 2026-01-25 14:42:43 +00:00
33 lines
968 B
JavaScript
33 lines
968 B
JavaScript
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;
|