[FIX] Scanner-Insert in TEST_MUBEA: eff wurde durch AND statt IF zu T

mubea:build-separator-one nutzte (and blockname (ssg-ils-block-laden
blockname)) fuer eff - AutoLISPs AND liefert bei mehreren wahren
Ausdruecken T zurueck statt des letzten Werts (anders als in Common
Lisp/Scheme). Sobald ein Blockname (z.B. "Scanner") direkt gefunden
wurde, statt ueber den Separator_SP-Fallback zu laufen, wurde eff=T
an "_.INSERT" uebergeben. Fix: (if blockname (ssg-ils-block-laden
blockname)).

Ausserdem: Scanner-Testeintrag in mubea.json ergaenzt und
_vario_count/_separator_count in test_mubea.py, damit erwartete
Ergebniszahlen auch bei "anzahl">1 (Template->mehrere Kopien) stimmen.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
2026-07-28 13:49:21 +02:00
parent bc1457e9bd
commit 1d5d7c141e
3 changed files with 136 additions and 31 deletions
+14 -2
View File
@@ -33,18 +33,30 @@ def _is_gefaelle(item):
return tid.startswith("GF_")
def _vario_count(testdata):
"""Wie _gefaelle_count: ein VF-Eintrag ist ein Template, das ueber 'anzahl'
expandiert wird (Default 1, falls Feld fehlt)."""
return sum(int(t.get("anzahl", 1)) for t in testdata if _is_vario(t))
def _gefaelle_count(testdata):
"""Anzahl erzeugter Gefaellestrecken: ein GF-Eintrag ist ein Template, das
ueber 'anzahl' expandiert wird (Default 1, falls Feld fehlt)."""
return sum(int(t.get("anzahl", 1)) for t in testdata if _is_gefaelle(t))
def _separator_count(testdata):
"""Wie _gefaelle_count: ein Separator-Eintrag kann per 'anzahl' mehrere
identische, versetzte Kopien erzeugen (Default 1, falls Feld fehlt)."""
return sum(int(t.get("anzahl", 1)) for t in testdata if _is_separator(t))
def _expected_counts(testdata):
return {
"kreisel": sum(1 for t in testdata if _is_kreisel(t)),
"vario": sum(1 for t in testdata if _is_vario(t)),
"vario": _vario_count(testdata),
"gefaellestrecke": _gefaelle_count(testdata),
"separator": sum(1 for t in testdata if _is_separator(t)),
"separator": _separator_count(testdata),
}