From 399728c7f9df8571f89ab1f8125df356558e2a1c Mon Sep 17 00:00:00 2001 From: Michael Stangl Date: Mon, 26 Oct 2026 11:04:43 +0100 Subject: [PATCH] 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 --- tests/test_hundm05.py | 6 +++++- tests/test_linienzug.lsp | 13 +++++++++++-- tests/test_run_all.lsp | 6 ++++++ tests/testdata/linienzug_tests.json | 4 ++++ tests/testdata/linienzug_tests_stufe2.json | 4 ++++ 5 files changed, 30 insertions(+), 3 deletions(-) diff --git a/tests/test_hundm05.py b/tests/test_hundm05.py index b296610..69b185b 100644 --- a/tests/test_hundm05.py +++ b/tests/test_hundm05.py @@ -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?)") diff --git a/tests/test_linienzug.lsp b/tests/test_linienzug.lsp index 5d269df..06c6d11 100644 --- a/tests/test_linienzug.lsp +++ b/tests/test_linienzug.lsp @@ -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") diff --git a/tests/test_run_all.lsp b/tests/test_run_all.lsp index aeb5d13..8512036 100644 --- a/tests/test_run_all.lsp +++ b/tests/test_run_all.lsp @@ -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 diff --git a/tests/testdata/linienzug_tests.json b/tests/testdata/linienzug_tests.json index 11878de..b703f40 100644 --- a/tests/testdata/linienzug_tests.json +++ b/tests/testdata/linienzug_tests.json @@ -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", diff --git a/tests/testdata/linienzug_tests_stufe2.json b/tests/testdata/linienzug_tests_stufe2.json index fca6e62..e834f50 100644 --- a/tests/testdata/linienzug_tests_stufe2.json +++ b/tests/testdata/linienzug_tests_stufe2.json @@ -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",