From 62c8e267c4ef3484214e1b41ec3f35b855cce2b8 Mon Sep 17 00:00:00 2001 From: Kenso Grimm Date: Thu, 17 Sep 2026 21:44:42 +0200 Subject: [PATCH] =?UTF-8?q?test(world):=20Laterne=20au=C3=9Fer=20Reichweit?= =?UTF-8?q?e=20und=20markings-Versatz=20end-to-end=20abdecken?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Ersetzt den zu schwachen Leerlisten-Test für sidewalkLampPoints() durch einen Fall mit echter, aber für LAMP_VERGE zu weit entfernter Gehwegfläche, und belegt in materials.test.js, dass applyPolygonOffsets() den eigenen markings-Versatz tatsächlich in ein Materialobjekt durchreicht. Co-Authored-By: Claude Sonnet 5 --- tests/materials.test.js | 4 ++++ tests/props.test.js | 6 ++++++ 2 files changed, 10 insertions(+) diff --git a/tests/materials.test.js b/tests/materials.test.js index e85c719..a4c8fc0 100644 --- a/tests/materials.test.js +++ b/tests/materials.test.js @@ -87,6 +87,10 @@ describe("Tiefenpuffer-Versatz je Schicht (gegen Flackern zwischen Boden/Stadt/P for (const key of POLYGON_OFFSET_ORDER) { expect(fake[key]).toMatchObject(POLYGON_OFFSETS[key]); } + // markings steht nicht in POLYGON_OFFSET_ORDER (eigener Versatz außerhalb der Rangfolge, + // s. Kommentar dort), bekommt seinen Versatz aber trotzdem über den zweiten Eintrag im + // POLYGON_OFFSETS-Objekt — einziger Beleg, dass der bis in ein Materialobjekt durchreicht. + expect(fake.markings).toEqual(POLYGON_OFFSETS.markings); for (const key of ["carriageway", "curb", "bridges", "buildings", "water", "seafloor"]) { expect(fake[key]).toEqual({}); } diff --git a/tests/props.test.js b/tests/props.test.js index ed95c49..1a6e16d 100644 --- a/tests/props.test.js +++ b/tests/props.test.js @@ -90,6 +90,12 @@ describe("Laternen auf dem Gehweg", () => { expect(sidewalkLampPoints([{ x: 0, z: 0, angle: 0 }], [])).toEqual([]); }); + it("lässt eine Laterne entfallen, wenn der Gehweg außerhalb aller Abstände liegt", () => { + // Der Gehweg beginnt erst bei 30 m, LAMP_VERGE deckt aber höchstens 12 m ab. + const fern = [{ poly: [[[-20, 30], [20, 30], [20, 33], [-20, 33]]] }]; + expect(sidewalkLampPoints([{ x: 0, z: 0, angle: 0 }], fern)).toEqual([]); + }); + it("hängt nicht an der Listenposition", () => { // Die alte Fassung wählte die Seite nach dem Index: Der zweite Punkt hätte auf der Seite ohne // Gehweg gesucht und wäre entfallen.