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.
93 lines
2.4 KiB
JavaScript
93 lines
2.4 KiB
JavaScript
import { LinearApproximation } from "../../Source/Cesium.js";
|
|
|
|
describe("Core/LinearApproximation", function () {
|
|
it("should produce correct results", function () {
|
|
var xTable = [2.0, 4.0];
|
|
var yTable = [2.0, 3.0, 4.0, 34.0];
|
|
|
|
var results = LinearApproximation.interpolateOrderZero(
|
|
3.0,
|
|
xTable,
|
|
yTable,
|
|
2
|
|
);
|
|
|
|
expect(results.length).toEqual(2);
|
|
expect(results[0]).toEqual(3.0);
|
|
expect(results[1]).toEqual(18.5);
|
|
});
|
|
|
|
it("should produce correct results with a result parameter", function () {
|
|
var xTable = [2.0, 4.0];
|
|
var yTable = [2.0, 3.0, 4.0, 34.0];
|
|
|
|
var result = new Array(2);
|
|
var results = LinearApproximation.interpolateOrderZero(
|
|
3.0,
|
|
xTable,
|
|
yTable,
|
|
2,
|
|
result
|
|
);
|
|
|
|
expect(result).toBe(results);
|
|
expect(results.length).toEqual(2);
|
|
expect(results[0]).toEqual(3.0);
|
|
expect(results[1]).toEqual(18.5);
|
|
});
|
|
|
|
it("should produce correct results 2", function () {
|
|
var xTable2 = [40, 120];
|
|
var yTable2 = [20, 40, 60, 80, 90, 100];
|
|
|
|
var results = LinearApproximation.interpolateOrderZero(
|
|
80.0,
|
|
xTable2,
|
|
yTable2,
|
|
3
|
|
);
|
|
|
|
expect(results.length).toEqual(3);
|
|
expect(results[0]).toEqual(50.0);
|
|
expect(results[1]).toEqual(65.0);
|
|
expect(results[2]).toEqual(80.0);
|
|
});
|
|
|
|
it("should produce correct results 3", function () {
|
|
var xTable3 = [20, 30];
|
|
var yTable3 = [10, 20, 30, 20, 30, 40, 20, 40, 60, 80, 90, 100];
|
|
|
|
var results = LinearApproximation.interpolateOrderZero(
|
|
40,
|
|
xTable3,
|
|
yTable3,
|
|
1
|
|
);
|
|
|
|
expect(results.length).toEqual(1);
|
|
expect(results[0]).toEqual(30.0);
|
|
});
|
|
|
|
it("should throw if length is greater than 2", function () {
|
|
var xTable = [44.0, 99.0, 230.0];
|
|
var yTable = [2.3, 4.5, 6.6, 3.2, 4.4, 12.23];
|
|
|
|
expect(function () {
|
|
LinearApproximation.interpolateOrderZero(2.3, xTable, yTable, 3);
|
|
}).toThrowDeveloperError();
|
|
});
|
|
|
|
it("should throw when yStride equals zero indicating that there are no dependent variables for interpolation", function () {
|
|
var xTable = [4.0, 8.0];
|
|
var yTable = [4.0, 8.0];
|
|
|
|
expect(function () {
|
|
LinearApproximation.interpolateOrderZero(6.0, xTable, yTable, 0);
|
|
}).toThrowDeveloperError();
|
|
});
|
|
|
|
it("getRequiredDataPoints returns 2", function () {
|
|
expect(LinearApproximation.getRequiredDataPoints(1)).toEqual(2);
|
|
});
|
|
});
|