fix(tests): Linienzug-Testdaten, HundM05-Zusatzobjekte, Nummernzaehler je Testzeichnung

- TEST_LINIENZUG: seit 1cc163d/cccd362 fragt Modus 1 nach der AS-Seite die
  optionale Zufuehrungsachse ab. Der Test mockt get* direkt (keine
  Replay-Queue), die neue Punktfrage verschluckte die naechste Antwort und
  der Lauf desynchronisierte (FEHLER, 21 Schritte offen). Neuer Schritt-Typ
  "point_none" (getpoint -> nil) und in beiden Linienzug-Testdaten nach
  der AS-Seite eingetragen.
- test_hundm05.py: Zusatzobjekt-Ergebnisse filterten nur kind "kreisel" -
  Separatoren/Scanner/BTMT (kind "sensor") fehlten, test_je_objekt_ein_
  ergebnis schlug faelschlich fehl.
- SSG_RUN_ALL_TESTS: #VF/#GF/#Kreisel/#Eckrad_LetzteNr vor jedem Test auf 0.
  Der Lauf bleibt im Namensraum des Startdokuments, die Zaehler liefen
  sonst ueber alle Tests weiter (VF_5/Kreisel12 in frischer Zeichnung) und
  machten jeden Referenz-Diff von der Testreihenfolge abhaengig.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-26 11:04:43 +01:00
parent f9eb41cdcc
commit 399728c7f9
5 changed files with 30 additions and 3 deletions
+5 -1
View File
@@ -59,7 +59,11 @@ def spec_ergebnisse(alle_ergebnisse):
@pytest.fixture(scope="module")
def kreisel_ergebnisse(alle_ergebnisse):
raus = [r for r in alle_ergebnisse if r.get("kind") == "kreisel"]
"""Ergebnisse ALLER nachgetragenen Anlagenteile (Gegenstueck zu
kreisel_objekte) - nicht nur kind "kreisel": Separatoren, Scanner und
BTMT kommen als kind "sensor" zurueck. Der Name ist historisch."""
raus = [r for r in alle_ergebnisse
if r.get("kind", "linienzug") != "linienzug"]
if not raus:
pytest.skip("keine Kreisel-Ergebnisse (Lauf vor dem Nachtragen "
"weiterer Anlagenteile?)")
+11 -2
View File
@@ -13,6 +13,7 @@
;; "typ" ist ein Eingabe-Schritt in exakter Aufruf-Reihenfolge:
;; {"typ":"point_abs","wert":[x,y,z]} absoluter Punkt (getpoint)
;; {"typ":"point_rel","dL":..,"hz":..} Basispunkt + dL entlang Richtung hz
;; {"typ":"point_none"} getpoint ohne Punkt (Enter -> nil)
;; {"typ":"real","wert":..} getreal
;; {"typ":"int","wert":..} getint
;; {"typ":"string","wert":".."} getstring
@@ -53,17 +54,23 @@
;; Skript-Eintrag (P dL hz) -> Basispunkt + dL entlang Richtung hz (Grad),
;; sodass die Projektion in vfl-neue-linie-messen
;; exakt dL ergibt.
;; Skript-Eintrag KEIN -> nil (Enter ohne Punkt, z.B. optionale
;; AS-Zufuehrungsachse nicht gesetzt)
(defun tlz-getpoint (a b / spec base rad)
(setq spec (tlz-pop))
(setq base (if (and a (listp a)) a '(0.0 0.0 0.0)))
(if (and (listp spec) (= (car spec) 'A))
(list (float (cadr spec)) (float (caddr spec)) (float (cadddr spec)))
(cond
((= spec 'KEIN) nil)
((and (listp spec) (= (car spec) 'A))
(list (float (cadr spec)) (float (caddr spec)) (float (cadddr spec))))
(T
(progn
(setq rad (* (float (caddr spec)) (/ pi 180.0)))
(list (+ (car base) (* (float (cadr spec)) (cos rad)))
(+ (cadr base) (* (float (cadr spec)) (sin rad)))
(caddr base))
)
)
)
)
(defun tlz-getstring (a) (tlz-pop))
@@ -84,6 +91,8 @@
(setq q (cons (cons 'A (ssg-val schritt "wert")) q)))
((= typ "point_rel")
(setq q (cons (list 'P (ssg-val schritt "dL") (ssg-val schritt "hz")) q)))
((= typ "point_none")
(setq q (cons 'KEIN q)))
((= typ "real")
(setq q (cons (float (ssg-val schritt "wert")) q)))
((= typ "int")
+6
View File
@@ -272,6 +272,12 @@
(setq modelspace (vla-get-modelspace new-doc))
;; Block-Library-Flag zuruecksetzen (Bloecke sind pro Zeichnung neu zu laden)
(setq *lib-initialized* nil)
;; Nummernzaehler zuruecksetzen: der Lauf bleibt im LISP-Namensraum des
;; Startdokuments, die Zaehler (max aus Zeichnung UND Zaehler, +1) liefen
;; sonst ueber alle Tests weiter - VF_5/Kreisel12 statt VF_1/Kreisel1 in
;; einer frischen Zeichnung, die Namen hingen damit von der
;; Testreihenfolge ab und jeder Referenz-Diff wurde unruhig.
(setq #VF_LetzteNr 0 #GF_LetzteNr 0 #Kreisel_LetzteNr 0 #Eckrad_LetzteNr 0)
(if (findfile datei)
(progn
+4
View File
@@ -31,6 +31,10 @@
"wert": "1",
"kommentar": "getstring AS-Seite (links)"
},
{
"typ": "point_none",
"kommentar": "getpoint AS-Zufuehrungsachse (2. Punkt, optional seit 2026-10-21) - Enter ohne Punkt, Kette laeuft wie frueher ueber den naechsten Klick"
},
{
"typ": "string",
"wert": "5",
+4
View File
@@ -31,6 +31,10 @@
"wert": "1",
"kommentar": "getstring AS-Seite (links)"
},
{
"typ": "point_none",
"kommentar": "getpoint AS-Zufuehrungsachse (2. Punkt, optional seit 2026-10-21) - Enter ohne Punkt"
},
{
"typ": "string",
"wert": "5",