You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Cesium-Prequel/Specs/Core/ApproximateTerrainHeightsSp...

88 lines
2.9 KiB
JavaScript

import { ApproximateTerrainHeights } from "../../Source/Cesium.js";
import { Cartesian3 } from "../../Source/Cesium.js";
import { Math as CesiumMath } from "../../Source/Cesium.js";
import { Rectangle } from "../../Source/Cesium.js";
describe("Core/ApproximateTerrainHeights", function () {
beforeAll(function () {
return ApproximateTerrainHeights.initialize();
});
afterAll(function () {
ApproximateTerrainHeights._initPromise = undefined;
ApproximateTerrainHeights._terrainHeights = undefined;
});
it("initializes", function () {
return ApproximateTerrainHeights.initialize().then(function () {
expect(ApproximateTerrainHeights._terrainHeights).toBeDefined();
});
});
it("getMinimumMaximumHeights computes minimum and maximum terrain heights", function () {
var result = ApproximateTerrainHeights.getMinimumMaximumHeights(
Rectangle.fromDegrees(-121.0, 10.0, -120.0, 11.0)
);
expect(result.minimumTerrainHeight).toEqualEpsilon(
-476.12571188755,
CesiumMath.EPSILON8
);
expect(result.maximumTerrainHeight).toEqualEpsilon(
-28.53,
CesiumMath.EPSILON8
);
});
it("getMinimumMaximumHeights throws with no rectangle", function () {
expect(function () {
return ApproximateTerrainHeights.getMinimumMaximumHeights();
}).toThrowDeveloperError();
});
it("getMinimumMaximumHeights throws if ApproximateTerrainHeights was not initialized first", function () {
var heights = ApproximateTerrainHeights._terrainHeights;
ApproximateTerrainHeights._terrainHeights = undefined;
expect(function () {
return ApproximateTerrainHeights.getMinimumMaximumHeights(
Rectangle.fromDegrees(-121.0, 10.0, -120.0, 11.0)
);
});
ApproximateTerrainHeights._terrainHeights = heights;
});
it("getBoundingSphere computes a bounding sphere", function () {
var result = ApproximateTerrainHeights.getBoundingSphere(
Rectangle.fromDegrees(-121.0, 10.0, -120.0, 11.0)
);
expect(result.center).toEqualEpsilon(
new Cartesian3(
-3183013.849117281,
-5403772.559109628,
1154581.5821590829
),
CesiumMath.EPSILON8
);
expect(result.radius).toEqualEpsilon(
77884.16321007285,
CesiumMath.EPSILON8
);
});
it("getBoundingSphere throws with no rectangle", function () {
expect(function () {
return ApproximateTerrainHeights.getBoundingSphere();
}).toThrowDeveloperError();
});
it("getBoundingSphere throws if ApproximateTerrainHeights was not initialized first", function () {
var heights = ApproximateTerrainHeights._terrainHeights;
ApproximateTerrainHeights._terrainHeights = undefined;
expect(function () {
return ApproximateTerrainHeights.getBoundingSphere(
Rectangle.fromDegrees(-121.0, 10.0, -120.0, 11.0)
);
});
ApproximateTerrainHeights._terrainHeights = heights;
});
});