Files
openlayers/test/browser/spec/ol/reproj/triangulation.test.js
2021-04-28 09:23:33 -07:00

68 lines
1.9 KiB
JavaScript

import Triangulation from '../../../../../src/ol/reproj/Triangulation.js';
import {
addCommon,
clearAllProjections,
get as getProjection,
} from '../../../../../src/ol/proj.js';
import {register} from '../../../../../src/ol/proj/proj4.js';
describe('ol.reproj.Triangulation', function () {
beforeEach(function () {
proj4.defs(
'EPSG:27700',
'+proj=tmerc +lat_0=49 +lon_0=-2 ' +
'+k=0.9996012717 +x_0=400000 +y_0=-100000 +ellps=airy ' +
'+towgs84=446.448,-125.157,542.06,0.15,0.247,0.842,-20.489 ' +
'+units=m +no_defs'
);
register(proj4);
const proj27700 = getProjection('EPSG:27700');
proj27700.setExtent([0, 0, 700000, 1300000]);
});
afterEach(function () {
delete proj4.defs['EPSG:27700'];
clearAllProjections();
addCommon();
});
describe('constructor', function () {
it('is trivial for identity', function () {
const proj4326 = getProjection('EPSG:4326');
const triangulation = new Triangulation(
proj4326,
proj4326,
[20, 20, 30, 30],
[-180, -90, 180, 90],
0
);
expect(triangulation.getTriangles().length).to.be(2);
});
it('is empty when outside source extent', function () {
const proj4326 = getProjection('EPSG:4326');
const proj27700 = getProjection('EPSG:27700');
const triangulation = new Triangulation(
proj27700,
proj4326,
[0, 0, 10, 10],
proj27700.getExtent(),
0
);
expect(triangulation.getTriangles().length).to.be(0);
});
it('can handle null source extent', function () {
const proj4326 = getProjection('EPSG:4326');
const triangulation = new Triangulation(
proj4326,
proj4326,
[20, 20, 30, 30],
null,
0
);
expect(triangulation.getTriangles().length).to.be(2);
});
});
});