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

Merged
Daniel merged 1 commits from feature/16-strukturtests-alle-kanten into main 2026-09-25 11:03:26 +00:00
Owner

Was

Die Strukturtests prüfen jetzt alle Sequenz- und Nachrichtenflüsse aller Modelle unter beispiele/ gegen alle
Elemente und melden alle Funde auf einmal. Bekannte Fehler stehen je Kreuzung als strikter xfail, nicht je
Modell. Außerdem ist AUSWEICHABSTAND per Test an die Layout-Maße gebunden.
Closes #16

Wie geprüft

  • python -m pytest -q: 97 passed, 3 xfailed. Die drei xfail sind #12 und zweimal Konverter: Nachrichtenfluss zum externen Pool läuft durch eine Aufgabe (#13)
  • python scripts/pruefe_umlaute.py: GRÜN: 0 Fund/e in 12 Datei(en).
  • python scripts/pruefe_prozesse.py: GRÜN: 0 Befund/e, 0 Prozess(e), 3 Beispiel(e). Die Konverterausgabe ist
    unverändert, alle .bpmn sind byte-gleich
  • Gegenprobe 1: Die neue Prüfung auf die Referenz-.bpmn von vor #8 angewandt findet alle sieben Kreuzungen auf
    einmal (5 × Gateway, S40, S24). Die alte Prüfung meldete nur S12→S13
  • Gegenprobe 2: AUSWEICHABSTAND testweise auf 125 gesetzt. Der neue Test schlägt fehl („Spaltenabstand 170“)
  • Selbsttest der Prüfung: Eine absichtlich durch eine Aufgabe gelegte Kante wird gefunden, eine daneben nicht
  • PICTURE-Import: nicht nötig, weil sich die Ausgabe des Konverters nicht ändert

Änderungen an Syntax und Ablageformat

keine

Übergabenotiz

Aufgabe: #16: Jede Kante durchs Innere eines Elements fällt in den Tests auf, in allen Beispielen und mit allen
Funden.
Stand: fertig
Geändert:

  • tests/test_referenzmodelle.py:
    • neu: kreuzungen() mit Raute, Kreis und Rechteck
    • neu: Test test_keine_unbekannte_kante_fuehrt_durch_ein_element, je Modell unter beispiele/
    • neu: Test test_bekannte_kreuzung_ist_behoben, je bekanntem Paar als xfail(strict=True)
    • neu: Selbsttest der Prüfung
    • BEKANNTE_KREUZUNGEN ersetzt BEKANNTE_KANTEN_DURCH_GATEWAY
  • Entfernter Test: test_keine_kante_fuehrt_durchs_innere_eines_gateways. Er ist vollständig in der neuen
    Prüfung enthalten: gleiche Rautengeometrie (_liegt_in_rautenflaeche), zusätzlich alle anderen Elemente, alle
    Funde, alle Modelle. Der Einzeltest in test_md_to_bpmn.py bleibt
  • .agents/skills/sn-bpmn/test_md_to_bpmn.py: neuer Test test_ausweichabstand_liegt_in_beiden_layouts_im_freien_gang
  • AGENTS.md: Die xfail-Ausnahme gilt für alle Modelle unter beispiele/ (Referenzmodelle und Syntaxbeispiele),
    und zwar je Fehler einzeln. Die übrigen Bedingungen sind unverändert: Konverterfehler, per Issue erfasst, nie für
    eigene Fehler. Grund: Die bekannte Rücksprungkante (#12) liegt im Syntaxbeispiel beispiel_lanes, und gerade die
    kleinen Beispiele machen Fehler schnell nachvollziehbar
  • Anleitung.md, docs/wissen/fallstricke.md, docs/status/STATUS.md

Nachweis: pytest: 97 passed, 3 xfailed. PICTURE-Import nicht nötig, weil sich die Ausgabe nicht ändert
Entscheidungen/Annahmen:

  • Die Regelerweiterung wurde vorab abgestimmt
  • Kein Hindernis sind Pools, Lanes, Gruppen und Hinweise (Kanten dürfen durch sie laufen), ebenso die Kontur und
    1 Einheit Rand
  • Neu gefunden: Auch in beispiel_lanes läuft ein Nachrichtenfluss durch eine Aufgabe (S5). Er ist #13
    zugeordnet, ein Kommentar-Entwurf für #13 liegt in entwuerfe/20260925-130123-kommentar-Projektwissen-13.md

Offen / nächste Schritte:

  1. Kommentar zu #13 abschicken (Mensch)
  2. Weiter mit #12 (Rücksprungkanten) und #13 (Nachrichtenfluss). Deren Fixes zeigen sich jetzt als XPASS
  3. #14 (Beschriftungen) nach Abgleich mit PICTURE

Wissensbasis: fallstricke.md: Eintrag „melden nur die erste Kreuzung“ ersetzt durch „bekannte Fehler je
Kreuzung als xfail, nie je Modell“. AGENTS.md: Regel erweitert. STATUS.md: Erledigt
Kontext für die nächste Sitzung: tests/test_referenzmodelle.py (BEKANNTE_KREUZUNGEN), md_to_bpmn.py Zweig
is_back und Schleife msg_flow_records in build_bpmn()

Checkliste

  • Nur Änderungen zum Issue
  • Keine Debug-print, kein auskommentierter Code
  • Keine personenbezogenen Daten, keine internen Originalunterlagen
  • Doku des Skills nachgezogen (Anleitung.md)
  • Wissensbasis nachgezogen (fallstricke.md, AGENTS.md, STATUS.md)

🤖 Generated with Claude Code

## Was Die Strukturtests prüfen jetzt alle Sequenz- und Nachrichtenflüsse aller Modelle unter `beispiele/` gegen alle Elemente und melden alle Funde auf einmal. Bekannte Fehler stehen je Kreuzung als strikter `xfail`, nicht je Modell. Außerdem ist `AUSWEICHABSTAND` per Test an die Layout-Maße gebunden. Closes #16 ## Wie geprüft - `python -m pytest -q`: `97 passed, 3 xfailed`. Die drei xfail sind #12 und zweimal #13 - `python scripts/pruefe_umlaute.py`: `GRÜN: 0 Fund/e in 12 Datei(en).` - `python scripts/pruefe_prozesse.py`: `GRÜN: 0 Befund/e, 0 Prozess(e), 3 Beispiel(e).` Die Konverterausgabe ist unverändert, alle `.bpmn` sind byte-gleich - Gegenprobe 1: Die neue Prüfung auf die Referenz-`.bpmn` von vor #8 angewandt findet alle sieben Kreuzungen auf einmal (5 × Gateway, S40, S24). Die alte Prüfung meldete nur S12→S13 - Gegenprobe 2: `AUSWEICHABSTAND` testweise auf 125 gesetzt. Der neue Test schlägt fehl („Spaltenabstand 170“) - Selbsttest der Prüfung: Eine absichtlich durch eine Aufgabe gelegte Kante wird gefunden, eine daneben nicht - PICTURE-Import: nicht nötig, weil sich die Ausgabe des Konverters nicht ändert ## Änderungen an Syntax und Ablageformat keine ## Übergabenotiz **Aufgabe:** #16: Jede Kante durchs Innere eines Elements fällt in den Tests auf, in allen Beispielen und mit allen Funden. **Stand:** fertig **Geändert:** - `tests/test_referenzmodelle.py`: - neu: `kreuzungen()` mit Raute, Kreis und Rechteck - neu: Test `test_keine_unbekannte_kante_fuehrt_durch_ein_element`, je Modell unter `beispiele/` - neu: Test `test_bekannte_kreuzung_ist_behoben`, je bekanntem Paar als `xfail(strict=True)` - neu: Selbsttest der Prüfung - `BEKANNTE_KREUZUNGEN` ersetzt `BEKANNTE_KANTEN_DURCH_GATEWAY` - **Entfernter Test:** `test_keine_kante_fuehrt_durchs_innere_eines_gateways`. Er ist vollständig in der neuen Prüfung enthalten: gleiche Rautengeometrie (`_liegt_in_rautenflaeche`), zusätzlich alle anderen Elemente, alle Funde, alle Modelle. Der Einzeltest in `test_md_to_bpmn.py` bleibt - `.agents/skills/sn-bpmn/test_md_to_bpmn.py`: neuer Test `test_ausweichabstand_liegt_in_beiden_layouts_im_freien_gang` - `AGENTS.md`: Die xfail-Ausnahme gilt für alle Modelle unter `beispiele/` (Referenzmodelle und Syntaxbeispiele), und zwar je Fehler einzeln. Die übrigen Bedingungen sind unverändert: Konverterfehler, per Issue erfasst, nie für eigene Fehler. Grund: Die bekannte Rücksprungkante (#12) liegt im Syntaxbeispiel `beispiel_lanes`, und gerade die kleinen Beispiele machen Fehler schnell nachvollziehbar - `Anleitung.md`, `docs/wissen/fallstricke.md`, `docs/status/STATUS.md` **Nachweis:** `pytest`: `97 passed, 3 xfailed`. PICTURE-Import nicht nötig, weil sich die Ausgabe nicht ändert **Entscheidungen/Annahmen:** - Die Regelerweiterung wurde vorab abgestimmt - Kein Hindernis sind Pools, Lanes, Gruppen und Hinweise (Kanten dürfen durch sie laufen), ebenso die Kontur und 1 Einheit Rand - Neu gefunden: Auch in `beispiel_lanes` läuft ein Nachrichtenfluss durch eine Aufgabe (S5). Er ist #13 zugeordnet, ein Kommentar-Entwurf für #13 liegt in `entwuerfe/20260925-130123-kommentar-Projektwissen-13.md` **Offen / nächste Schritte:** 1. Kommentar zu #13 abschicken (Mensch) 2. Weiter mit #12 (Rücksprungkanten) und #13 (Nachrichtenfluss). Deren Fixes zeigen sich jetzt als XPASS 3. #14 (Beschriftungen) nach Abgleich mit PICTURE **Wissensbasis:** `fallstricke.md`: Eintrag „melden nur die erste Kreuzung“ ersetzt durch „bekannte Fehler je Kreuzung als xfail, nie je Modell“. `AGENTS.md`: Regel erweitert. `STATUS.md`: Erledigt **Kontext für die nächste Sitzung:** `tests/test_referenzmodelle.py` (`BEKANNTE_KREUZUNGEN`), `md_to_bpmn.py` Zweig `is_back` und Schleife `msg_flow_records` in `build_bpmn()` ## Checkliste - [x] Nur Änderungen zum Issue - [x] Keine Debug-`print`, kein auskommentierter Code - [x] Keine personenbezogenen Daten, keine internen Originalunterlagen - [x] Doku des Skills nachgezogen (`Anleitung.md`) - [x] Wissensbasis nachgezogen (`fallstricke.md`, `AGENTS.md`, `STATUS.md`) 🤖 Generated with [Claude Code](https://claude.com/claude-code)
Daniel added 1 commit 2026-09-25 11:03:18 +00:00
- 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>
Daniel merged commit b403036203 into main 2026-09-25 11:03:26 +00:00
Daniel deleted branch feature/16-strukturtests-alle-kanten 2026-09-25 11:03:27 +00:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: AG_Prozesse/Projektwissen#19