MEGAINFRA-WEBAPP/src/lib/site-map/surface.test.ts

18 lines
788 B
TypeScript

import { describe, expect, it } from "vitest";
import surface from "./__fixtures__/mini-model/surface.json";
import { decodeSurface, surfZ, designZ } from "./surface";
import type { SurfaceModel } from "./model-types";
const s = surface as SurfaceModel;
describe("surface", () => {
it("decodes mm above zmin", () => expect([...decodeSurface(s)]).toEqual([1450.5, 1450.5, 1450.5, 1450.5]));
it("interpolates inside and returns null outside", () => {
const Z = decodeSurface(s);
expect(surfZ(s, Z, 0.5, 0.5)).toBeCloseTo(1450.5);
expect(surfZ(s, Z, 5, 5)).toBeNull();
});
it("falls back to pegs outside the grid", () => {
const Z = decodeSurface(s);
expect(designZ(s, Z, [{ name: "P", e: 10, n: 10, z: 1460, Y: 0, X: 0 }], 10, 10)).toBeCloseTo(1460);
});
});