test(world): ersetzte Grundrisse und feste Materialien je Ort strenger prüfen

Behebt Befunde 2-6 aus dem Abschluss-Review: der replaces-Test prüft
jetzt zusätzlich jede Ecke des getroffenen Grundrisses gegen die
Außenmaße plus REPLACED_OVERHANG (5 m), der Verteilungstest vergleicht
als Mengen und bekommt eine Gegenrichtung je Datei, BUMP_BY_PLACE
erzwingt eine Zeile je Ort statt sie mit "?? []" zu verdecken, ein
Gebäude an einer Chunkgrenze bekommt einen Test über zwei Chunks samt
JSDoc-Hinweis, und der Rückwand-Messwert in der Spec nennt Kapselmitte,
Wandfläche und Radius einzeln.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
knsoandClaude Sonnet 5 committed 2026-09-15 03:57:31 +02:00
1 parent 14fd9cefde
commit 237a4ed389
5 files changed
+59 -12

No files matched your search

@@ -113,7 +113,7 @@ Die positive Drehung bringt +x nach Nordosten und die Front (+z) nach Südosten.
- Ein `ChunkStreamer` mit `replacedBuildings` baut aus einem Chunk mit nur diesem Gebäude keine Gebäudegeometrie.
- **`tests/placesSite.test.js`:**
- „in keinem Gebäude“ übergeht die Grundrisse, die ein Ort ersetzt.
- Neu: Jeder `replaces`-Punkt liegt in genau einem Grundriss seines Chunks und innerhalb der Außenmaße seines Orts. Das fängt einen Lauf der Extraktion ab, der das Gebäude verschiebt.
- Neu: Der Punkt trifft genau einen Grundriss, liegt in den Außenmaßen, und alle Ecken dieses Grundrisses liegen höchstens 5 m außerhalb. Das fängt einen Lauf der Extraktion ab, der das Gebäude verschiebt, teilt oder mit einem Nachbarn zusammenlegt.
- **`tests/placesAsset.test.js`** wird auf `describe.each(PLACES)` umgebaut:
- Je Ort geprüft werden Dateigröße, meshopt und WebP, fehlende Instanzen, Texturen bis 1024 px und `bounds` auf 5 cm.
- Die festen Materialien je Ort kommen aus einer Tabelle im Test, deren Vereinigung `SOLID_MATERIALS` ergeben muss.
@@ -135,7 +135,7 @@ Die positive Drehung bringt +x nach Nordosten und die Front (+z) nach Südosten.
- **Alter Kasten:** Er ist weg. Ein Strahl im Streifen hinter der Tribüne trifft den Boden (y 0), in der alten Mitte das Tribünendach (y 10,1) statt 18,6 m. Ein Nachbargebäude in J6 steht unverändert.
- **Kollision:**
- Genau die acht festen Materialien haben Float32-Positionen und kommen in den Collider, die sechs durchlässigen nicht.
- Die Kapsel (Radius 0,15 m) steht auf dem Boden bei y 0,75 und bleibt an der Rückwand genau am Sockel stehen, Modell-z −14,39.
- Die Kapsel (Radius 0,15 m) steht auf dem Boden bei y 0,75. An der Rückwand bleibt ihre Mitte bei Modell-z −14,54 stehen; die Sockelfläche (Sichtbeton, y 0–1,15) liegt bei −14,39 — die Kapsel berührt die Wand also, ohne einzudringen.
- Sie steigt über die 25-cm-Kante in den Tunnel, läuft die Treppe hinauf auf die Sitzstufe (y 3,6) und im Gang hinunter bis ans vordere Geländer.
- Auf der Sitzstufe in 6 m Höhe läuft sie ohne Halt 5,7 m durch eine Sitzreihe.
- **Kosten:** Median aus 60 Bildern mit `gl.finish`: