This commit is contained in:
Andras Schmelczer 2026-09-11 22:14:24 +01:00
commit 0c0f08b350
45 changed files with 1565 additions and 1579 deletions

View file

@ -33,7 +33,7 @@ function expectCompleteSkirting(room: Room) {
const plan = planSkirting([room], settings, 1);
expect(plan.issues.filter((issue) => issue.severity === 'error')).toEqual([]);
const polygons = plan.pieces.map((piece) =>
skirtingPolygon(piece, settings.thickness, signedArea(geometry.vertices)),
skirtingPolygon(piece, signedArea(geometry.vertices)),
);
const inner = insetPolygon(geometry.vertices, settings.thickness);
// Exact area of the mitred perimeter band; unlike clipping, this does not
@ -57,12 +57,12 @@ function expectCompleteSkirting(room: Room) {
return sum + Math.hypot(next.x - point.x, next.y - point.y) / 1000;
}, 0);
const piece = plan.pieces[i];
const installed = piece.installedTemplate!;
const installed = piece.installedTemplate;
expect(Math.hypot(polygon[0].x - piece.start.x, polygon[0].y - piece.start.y)).toBeCloseTo(
Math.abs(installed[0].x - piece.template![0].x),
Math.abs(installed[0].x - piece.template[0].x),
);
expect(Math.hypot(polygon[1].x - piece.end.x, polygon[1].y - piece.end.y)).toBeCloseTo(
Math.abs(installed[1].x - piece.template![1].x),
Math.abs(installed[1].x - piece.template[1].x),
);
expect(
Math.abs(overlap(polygon, geometry.vertices) - Math.abs(signedArea(polygon))),