- build_bpmn() prüft jeden Standardweg einer Vorwärtskante gegen alle
fremden Elemente. Nur bei einer Kreuzung sucht umweg_points() einen
rechtwinkligen Weg von Stub zu Stub über freie Linien (Lückenmitten
und 15 neben jedem Element), erst mit einem, dann mit zwei
Zwischenknicken; der kürzeste gewinnt. Saubere Kanten bleiben
byte-gleich, die Beispiel-.bpmn ändern sich nicht.
- Belastungstest aus #12 als dauerhafter Test (126 Varianten: keine
Kreuzung, rechtwinklige Anschlüsse), Test für das Beispiel aus dem
Issue und zwei Einzeltests für umweg_points().
- Im Belastungstest werden 23 Kanten umgeleitet (3 bis 4
Zwischenpunkte); Kreuzungen vorher 24, jetzt 0.
- Tests: python -m pytest -q -> 253 bestanden, 1 übersprungen.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>