feat: HOEHEN_CHECK Phase 3 (Buehnen-Familien), Menueeintrag und Rueckfrage vor EXPORTSIVAS

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-26 10:50:34 +01:00
parent 2befdf2c33
commit f9eb41cdcc
10 changed files with 418 additions and 21 deletions
+1
View File
@@ -183,6 +183,7 @@
(if (findfile csv-pfad) (vl-file-delete csv-pfad))
(if (findfile sivas-pfad) (vl-file-delete sivas-pfad))
(setq *csv-hoehencheck-fragen* nil) ;; keine Rueckfrage im Testlauf
(princ (strcat "\n[TEST_EXPORT_ALL] CSV-Export -> " csv-name))
(c:EXPORTCSV)
(setq csv-ok (export_all:wait-for-file csv-pfad 30.0))
+63 -1
View File
@@ -2771,6 +2771,68 @@
)
;; ------------------------------------------------------------
;; TESTS: check_hoehen.lsp - Phase 3 (Buehnen-Familien), reine Kerne
;; ------------------------------------------------------------
(defun tu-tests-hoehen-fam ( / _els)
(princ "\n[check_hoehen/Phase 3 Familien]")
;; --- ch-familien: transitive Verbindung, Sortierung nach ID-Nummer ---
(tu-eq "ch-familien/einzeln-und-kette"
'(("b") ("c" "a" "d") ("e"))
(ch-familien '(("a" 3) ("b" 1) ("c" 2) ("d" 5) ("e" 4))
'(("a" "c") ("c" "d") ("x" "a"))))
(tu-eq "ch-familien/kette-ueber-mittleren"
'(("a" "b" "c"))
(ch-familien '(("a" 1) ("b" 2) ("c" 3)) '(("a" "b") ("b" "c"))))
(tu-eq "ch-familien/ohne-kanten"
'(("a") ("b"))
(ch-familien '(("a" 1) ("b" 2)) nil))
(tu-eq "ch-familien/ring"
'(("a" "b" "c"))
(ch-familien '(("a" 1) ("b" 2) ("c" 3)) '(("a" "b") ("b" "c") ("c" "a"))))
;; --- ch-kreuz-abzug ---
(tu-eq "ch-kreuz-abzug/kein" '("kein" . 0.0) (ch-kreuz-abzug 0.0 0.0 5000.0 5000.0 1500.0))
(tu-eq "ch-kreuz-abzug/konflikt" '("konflikt" . 0.0) (ch-kreuz-abzug 1.5 0.0 5000.0 5000.0 1500.0))
(tu-eq "ch-kreuz-abzug/konflikt2" '("konflikt" . 0.0) (ch-kreuz-abzug 1.5 2.0 5000.0 5000.0 1500.0))
(tu-eq "ch-kreuz-abzug/hoehe" '("hoehe" . 0.0) (ch-kreuz-abzug 1.5 1.5 5000.0 6600.0 1500.0))
(tu-eq "ch-kreuz-abzug/grenze" '("abzug" . 1.5) (ch-kreuz-abzug 1.5 1.5 5000.0 6500.0 1500.0))
(tu-eq "ch-kreuz-abzug/abzug" '("abzug" . 1.5) (ch-kreuz-abzug 1.5 1.5 5000.0 5200.0 1500.0))
;; --- ch-strecke-abzug (Familiensaetze: idx handles z b) ---
(tu-eq "ch-strecke-abzug/innen"
'("innen" . 1.5)
(ch-strecke-abzug '(1 ("a") 5000.0 1.5) '(1 ("a") 5000.0 1.5) 1500.0))
(tu-eq "ch-strecke-abzug/innen-ohne-buehne"
'("innen" . 0.0)
(ch-strecke-abzug '(1 ("a") 5000.0 0.0) '(1 ("a") 5000.0 0.0) 1500.0))
(tu-eq "ch-strecke-abzug/zwischen"
'("abzug" . 1.5)
(ch-strecke-abzug '(1 ("a") 5000.0 1.5) '(2 ("b") 5400.0 1.5) 1500.0))
;; --- ch-abzug-anwenden ---
(tu-eqf "ch-abzug-anwenden/normal" 2.5 (ch-abzug-anwenden 3.5 1.0))
(tu-nil "ch-abzug-anwenden/gleich" (ch-abzug-anwenden 3.5 3.5))
(tu-nil "ch-abzug-anwenden/groesser" (ch-abzug-anwenden 3.5 4.0))
(tu-nil "ch-abzug-anwenden/null" (ch-abzug-anwenden 3.5 0.0))
;; --- ch-kreisel-finden: Kreisel r=400, Achse (400,0)-(2400,0) bzw. (400,5000)-(2400,5000) ---
(setq _els (list (tu-bp-el "KREISEL" 0.0 0.0 5000.0 0.0 2000.0 "K1")
(tu-bp-el "KREISEL" 0.0 5000.0 5000.0 0.0 2000.0 "K2")))
(tu-eq "ch-kreisel-finden/auf-achse"
"K1" (ch-kreisel-finden '(1000.0 100.0 5000.0) 5000.0 _els 300.0 100.0))
(tu-eq "ch-kreisel-finden/zweiter"
"K2" (ch-kreisel-finden '(1000.0 4900.0 5000.0) 5000.0 _els 300.0 100.0))
(tu-eq "ch-kreisel-finden/hinter-dem-rad"
"K1" (ch-kreisel-finden '(-200.0 0.0 5000.0) 5000.0 _els 300.0 100.0))
(tu-nil "ch-kreisel-finden/zu-weit"
(ch-kreisel-finden '(1000.0 1000.0 5000.0) 5000.0 _els 300.0 100.0))
(tu-nil "ch-kreisel-finden/falsche-hoehe"
(ch-kreisel-finden '(1000.0 0.0 5300.0) 5300.0 _els 300.0 100.0))
)
(defun c:TEST_UNIT ( / out-dir report)
(tu-reset)
(princ "\n================================================================")
@@ -2783,7 +2845,7 @@
"tu-tests-export" "tu-tests-hoehen" "tu-tests-gf" "tu-tests-omni" "tu-tests-kreisel" "tu-tests-kreisel-bp"
"tu-tests-sepliste" "tu-tests-json" "tu-tests-geruest"
"tu-tests-sepscan" "tu-tests-vfl-segs" "tu-tests-vfl-abbruch"
"tu-tests-werkzeuge" "tu-tests-kf")
"tu-tests-werkzeuge" "tu-tests-kf" "tu-tests-hoehen-fam")
(tu-run-block fn))
(princ "\n\n----------------------------------------------------------------")
+1
View File
@@ -11,6 +11,7 @@
(load (strcat (getenv "DXFM_LISP") "/GeruestInsert.lsp") "GeruestInsert.lsp nicht gefunden")
(load (strcat (getenv "DXFM_LISP") "/count_sep_scan.lsp") "count_sep_scan.lsp nicht gefunden")
(load (strcat (getenv "DXFM_LISP") "/KettenFoerderer.lsp") "KettenFoerderer.lsp nicht gefunden")
(load (strcat (getenv "DXFM_LISP") "/check_hoehen.lsp") "check_hoehen.lsp nicht gefunden")
(load (strcat (getenv "DXFMAKRO") "/tests/test_unit.lsp"))
(c:TEST_UNIT)
(command "_.QUIT")