87 lines
1.9 KiB
JavaScript
87 lines
1.9 KiB
JavaScript
import MultiPolygon from '../../../../../src/ol/geom/MultiPolygon.js';
|
|
import expect from '../../../expect.js';
|
|
import {linearRingss as linearRingssCenter} from '../../../../../src/ol/geom/flat/center.js';
|
|
|
|
describe('ol/geom/flat/center.js', function () {
|
|
describe('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]);
|
|
});
|
|
});
|
|
});
|