f809eedf71bbe36635549050d62bb225a6cce8bf
Sackgassen unter 10 m sind Skelettfransen und fallen weg, Knoten mit nur noch zwei Kanten lösen sich auf, Kreuzungen näher als 5 m werden eine. Die Breite kommt aus der Distanztransformation ohne die ersten und letzten 8 m: dort misst sie die Kreuzung, nicht die Straße. Der Gegencheck am echten Mosaik deckte zwei Fälle auf, die kein synthetischer Test zeigt: Ein Rohast ohne Kreuzungsanschluss liefert eine Kante mit nur einem Stützpunkt (LineString verlangt 0 oder mehr als einen Punkt), und ein Knoten mit Schleife plus Verbindungskante hat kein zweites Ende zum Verketten. Beides fängt clean() jetzt ab, mit je einem Regressionstest. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Languages
TypeScript
44.1%
JavaScript
40.9%
Python
11.2%
HTML
3.3%
CSS
0.5%