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
+2 -1
View File
@@ -204,7 +204,8 @@ In `beispiele/` neben dieser Datei, reine Syntaxbeispiele (fachlich nicht geprü
Referenzmodell (Test) – ein echter, größerer Prozess, gegen den Änderungen am
Konverter geprüft werden (Byte-Vergleich plus Strukturtests in
`tests/test_referenzmodelle.py`):
`tests/test_referenzmodelle.py`; die Prüfung „keine Kante durch ein Element“
läuft auch über die Syntaxbeispiele):
- `beispiele/referenz_gewannenfestlegung.md` / `.bpmn` – 4 Lanes, externer Pool,
14 Gateways, verschachtelte Varianten; fachlich nicht abgenommen