18 lines
788 B
TypeScript
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);
|
|
});
|
|
});
|