Sepliste-XDATA fuer Separator/AS/ES-Reihenfolge + Unit-Tests, makunbound-Fix
Sammelt beim Bau von VF_n/GF_n-Ketten die Baureihenfolge der Separator-/ AS-/ES-Sub-Bloecke vor dem Block-Sweep und schreibt sie als XDATA auf den fertigen Wrapper (ssg_ks_insert.lsp); export.lsp liest sie fuer das neue "sepliste"-Feld im CSV-Export, export_neighbors.py nutzt es als Fallback zur BBox-Kollisionspruefung. Dazu Unit-Tests fuer die reinen Serialisierungs- funktionen (Chunking, Roundtrip) in test_unit.lsp. Ausserdem: makunbound (existiert nicht in BricsCAD-AutoLISP) aus test_run_all.lsp entfernt - verursachte Laufzeitfehler bei SSG_RUN_ALL_TESTS_EXPORT/_OFFEN. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -386,6 +386,44 @@
|
||||
)
|
||||
|
||||
|
||||
;; ------------------------------------------------------------
|
||||
;; TESTS: ssg_ks_insert.lsp - Sepliste-Serialisierung
|
||||
;; ------------------------------------------------------------
|
||||
(defun tu-tests-sepliste ()
|
||||
(princ "\n[ssg_ks_insert/sepliste]")
|
||||
|
||||
;; ssg-sepliste-chunk-string: Stuecke <= n, nichts verloren
|
||||
(tu-eq "ssg-sepliste-chunk-string/glatt" '("ab" "cd") (ssg-sepliste-chunk-string "abcd" 2))
|
||||
(tu-eq "ssg-sepliste-chunk-string/rest" '("ab" "cd" "e") (ssg-sepliste-chunk-string "abcde" 2))
|
||||
(tu-eq "ssg-sepliste-chunk-string/kuerzer" '("abc") (ssg-sepliste-chunk-string "abc" 10))
|
||||
|
||||
;; ssg-sepliste-split-feld: Trenner-Aufteilung, inkl. leeres Feld
|
||||
(tu-eq "ssg-sepliste-split-feld/normal" '("SEP" "1" "10.00" "20.00")
|
||||
(ssg-sepliste-split-feld "SEP:1:10.00:20.00" ":"))
|
||||
|
||||
;; ssg-sepliste->string: Serialisierung eines Eintrags
|
||||
(tu-eq "ssg-sepliste->string/ein-eintrag"
|
||||
"SEP:1:10.00:20.00"
|
||||
(ssg-sepliste->string '(("SEP" 1 10.0 20.0))))
|
||||
(tu-eq "ssg-sepliste->string/mehrere"
|
||||
"SEP:1:10.00:20.00,AS:2:30.00:40.00"
|
||||
(ssg-sepliste->string '(("SEP" 1 10.0 20.0) ("AS" 2 30.0 40.0))))
|
||||
|
||||
;; ssg-sepliste-string->liste: Gegenstueck zu ssg-sepliste->string
|
||||
(tu-eq "ssg-sepliste-string->liste/leer" nil (ssg-sepliste-string->liste ""))
|
||||
(tu-eq "ssg-sepliste-string->liste/ein-eintrag"
|
||||
'(("SEP" 1 10.0 20.0))
|
||||
(ssg-sepliste-string->liste "SEP:1:10.00:20.00"))
|
||||
|
||||
;; Roundtrip ->string->liste: entscheidend, da der Export genau diesen
|
||||
;; Weg (XDATA schreiben/lesen) fuer die Separator-Reihenfolge nutzt.
|
||||
(setq _sep '(("SEP" 1 10.0 20.0) ("AS" 2 30.5 40.5) ("ES" 3 -5.0 0.0)))
|
||||
(tu-eqf "sepliste-roundtrip/mehrere-typen"
|
||||
_sep
|
||||
(ssg-sepliste-string->liste (ssg-sepliste->string _sep)))
|
||||
)
|
||||
|
||||
|
||||
;; ------------------------------------------------------------
|
||||
;; REPORT SCHREIBEN
|
||||
;; ------------------------------------------------------------
|
||||
@@ -428,6 +466,7 @@
|
||||
(tu-tests-gf)
|
||||
(tu-tests-omni)
|
||||
(tu-tests-kreisel)
|
||||
(tu-tests-sepliste)
|
||||
|
||||
(princ "\n\n----------------------------------------------------------------")
|
||||
(princ (strcat "\n Gesamt: " (itoa (+ *tu-pass* *tu-fail*))
|
||||
|
||||
Reference in New Issue
Block a user