mirror of
https://github.com/FoggedLens/iD.git
synced 2026-02-13 01:02:58 +00:00
Add epsilon parameter to geoVecEqual
This commit is contained in:
@@ -1,6 +1,10 @@
|
||||
// vector equals
|
||||
export function geoVecEqual(a, b) {
|
||||
return (a[0] === b[0]) && (a[1] === b[1]);
|
||||
export function geoVecEqual(a, b, epsilon) {
|
||||
if (epsilon) {
|
||||
return (Math.abs(a[0] - b[0]) <= epsilon) && (Math.abs(a[1] - b[1]) <= epsilon);
|
||||
} else {
|
||||
return (a[0] === b[0]) && (a[1] === b[1]);
|
||||
}
|
||||
}
|
||||
|
||||
// vector addition
|
||||
|
||||
@@ -1,11 +1,15 @@
|
||||
describe('iD.geo - vector', function() {
|
||||
|
||||
describe('geoVecEqual', function() {
|
||||
it('tests vectors for equality', function() {
|
||||
it('tests vectors for exact equality', function() {
|
||||
expect(iD.geoVecEqual([1, 2], [1, 2])).to.be.true;
|
||||
expect(iD.geoVecEqual([1, 2], [1, 0])).to.be.false;
|
||||
expect(iD.geoVecEqual([1, 2], [2, 1])).to.be.false;
|
||||
});
|
||||
it('tests vectors for equality within epsilon', function() {
|
||||
expect(iD.geoVecEqual([1, 2], [1.0000001, 2.0000001], 1e-5)).to.be.true;
|
||||
expect(iD.geoVecEqual([1, 2], [1.0000001, 2.0000001], 1e-8)).to.be.false;
|
||||
});
|
||||
});
|
||||
|
||||
describe('geoVecAdd', function() {
|
||||
|
||||
Reference in New Issue
Block a user