57 lines
1.5 KiB
JavaScript
57 lines
1.5 KiB
JavaScript
import {linearRingss as linearRingssCenter} from '../../../../../src/ol/geom/flat/center.js';
|
|
import MultiPolygon from '../../../../../src/ol/geom/MultiPolygon.js';
|
|
|
|
|
|
describe('ol.geom.flat.center', function() {
|
|
|
|
describe('ol.geom.flat.center.linearRingss', function() {
|
|
|
|
it('calculates the center of a square', function() {
|
|
const squareMultiPoly = new MultiPolygon([[
|
|
[[0, 0], [0, 1], [1, 1], [1, 0], [0, 0]]
|
|
]]);
|
|
const got = linearRingssCenter(
|
|
squareMultiPoly.flatCoordinates,
|
|
0,
|
|
squareMultiPoly.endss_,
|
|
2
|
|
);
|
|
expect(got).to.eql([0.5, 0.5]);
|
|
});
|
|
|
|
it('calculates the centers of two squares', function() {
|
|
const squareMultiPoly = new MultiPolygon([
|
|
[
|
|
[[0, 0], [0, 1], [1, 1], [1, 0], [0, 0]]
|
|
],
|
|
[
|
|
[[3, 0], [3, 1], [4, 1], [4, 0], [3, 0]]
|
|
]
|
|
]);
|
|
const got = linearRingssCenter(
|
|
squareMultiPoly.flatCoordinates,
|
|
0,
|
|
squareMultiPoly.endss_,
|
|
2
|
|
);
|
|
expect(got).to.eql([0.5, 0.5, 3.5, 0.5]);
|
|
});
|
|
|
|
it('does not care about holes', function() {
|
|
const polywithHole = new MultiPolygon([[
|
|
[[0, 0], [0, 5], [5, 5], [5, 0], [0, 0]],
|
|
[[1, 1], [1, 4], [4, 4], [4, 1], [1, 1]]
|
|
]]);
|
|
const got = linearRingssCenter(
|
|
polywithHole.flatCoordinates,
|
|
0,
|
|
polywithHole.endss_,
|
|
2
|
|
);
|
|
expect(got).to.eql([2.5, 2.5]);
|
|
});
|
|
|
|
});
|
|
|
|
});
|