Strukturtests auf alle Kanten und alle Elemente ausweiten (#16)

- test_referenzmodelle.py: kreuzungen() prüft alle Sequenz- und
  Nachrichtenflüsse gegen Aufgaben, Ereignisse (Kreis), Gateways (Raute)
  und Datenelemente und liefert alle Funde. Neuer Test je Modell unter
  beispiele/ (auch Syntaxbeispiele): keine unbekannte Kreuzung.
- Bekannte Fälle je Kreuzung in BEKANNTE_KREUZUNGEN, jeder mit eigenem
  xfail(strict=True)-Test: #12 (Rücksprung durch S5 in beispiel_lanes),
  #13 (Nachrichtenfluss durch S5 in beispiel_lanes und durch S24 im
  Referenzmodell).
- test_keine_kante_fuehrt_durchs_innere_eines_gateways entfällt: Die neue
  Prüfung deckt Gateways mit derselben Rautengeometrie ab und meldet mehr.
  Gegenprobe am Stand vor #8: alle sieben Kreuzungen auf einmal gefunden.
- Selbsttest der Prüfung und test_ausweichabstand_liegt_in_beiden_layouts
  _im_freien_gang (bindet AUSWEICHABSTAND an DEFAULT_SIZE und Abstände).
- AGENTS.md: xfail-Ausnahme gilt für alle Modelle unter beispiele/, je
  Fehler einzeln. Anleitung, Fallstricke, STATUS nachgezogen.
- Tests: python -m pytest -q -> 97 bestanden, 3 xfail (#12, #13).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-09-25 13:01:23 +02:00
co-authored by Claude Opus 5.5
parent 45baa3d4a2
commit 97413265f2
6 changed files with 126 additions and 25 deletions
+6 -3
View File
@@ -16,9 +16,12 @@ Kurz, konkret, mit Datum und Quelle. Neue Einträge oben in der passenden Rubrik
Die Achse liegt **im Gang direkt vor der Ziel-Spalte** (Abstand 85 zur Mitte), **nicht in der Mitte zwischen
Quelle und Ziel**: Liegen die beiden zwei Spalten auseinander, steht dort eine Aufgabe (im Referenzmodell S43).
(#8, 25.09.2026)
- **Die Strukturtests melden nur die erste Kreuzung.** `_kante_kreuzt_gateway()` bricht beim ersten Fund ab. Im
Referenzmodell stand deshalb nur S12→S13 im Issue, tatsächlich liefen fünf Kanten durch Gateways. Nach einem
Layout-Fix alle Kanten gegen alle Elemente prüfen, nicht nur den gemeldeten Fall. (#8, 25.09.2026)
- **Bekannte Layoutfehler je Kreuzung als xfail, nie je Modell.** Stünde ein ganzes Modell auf `xfail`, bliebe
jede neue Kreuzung darin unsichtbar, solange der alte Fehler besteht. Deshalb prüft
`test_keine_unbekannte_kante_fuehrt_durch_ein_element` alle Kanten gegen alle Elemente und meldet alle Funde
außer den Paaren in `BEKANNTE_KREUZUNGEN`. Jedes dieser Paare hat einen eigenen strikten xfail-Test. Anlass: Die
alte Gateway-Prüfung brach beim ersten Fund ab; bei #8 stand nur S12→S13 im Issue, tatsächlich waren es sieben
Kreuzungen. (#16, 25.09.2026)
- **Zusammenführende Gateways brauchen eine Beschriftung mit Zuständigkeit**, sonst landen sie in der Lane
„Nicht zugeordnet“ (`split_lane()` braucht Text nach dem Doppelpunkt). In BPMN bleiben Zusammenführungen
üblicherweise unbeschriftet – ein Fall für eine spätere Konverteränderung. (23.09.2026, Referenzmodell)