CSV-Export: Bounding-Box (Position/Boundingbox) und Planquadrat-Spalte ergaenzt
Nur EXPORTCSV betroffen, EXPORTSIVAS bleibt unveraendert: - Position/Boundingbox: Bounding-Box je Block per vla-getboundingbox (Lisp/export.lsp, csv:get-bbox), Mittelpunkt und Ausdehnung x/y/z. - Planquadrat: aus x/y-Koordinate berechnet nach cfg/export.cfg [Planquadrate] (Schrittweite, numerisch/alphabetisch je Achse, alphabetische Zaehlung mit Excel-Spalten-Umlauf Z->AA), siehe lib/export_planquadrat.py. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -202,8 +202,8 @@ class TestFoerdererExportCSV:
|
||||
|
||||
def test_header_felder(self):
|
||||
"""CSV-Header muss korrekte Spaltenbezeichnungen haben."""
|
||||
expected = ["Elementnummer", "TeileArt", "TeileId",
|
||||
"Bezeichnung", "Anzahl", "Merkmale"]
|
||||
expected = ["Elementnummer", "TeileArt", "TeileId", "Bezeichnung",
|
||||
"Planquadrat", "Anzahl", "Position", "Boundingbox", "Merkmale"]
|
||||
for i, name in enumerate(expected):
|
||||
assert self.header[i] == name, (
|
||||
f"Header[{i}]: erwartet '{name}', ist '{self.header[i]}'"
|
||||
@@ -226,19 +226,19 @@ class TestFoerdererExportCSV:
|
||||
def test_anzahl_spalte_ist_eins(self):
|
||||
"""Anzahl-Spalte muss fuer alle Zeilen '1' sein."""
|
||||
for i, row in enumerate(self.rows):
|
||||
if len(row) < 5:
|
||||
if len(row) < 6:
|
||||
continue
|
||||
assert row[4] == "1", (
|
||||
f"Zeile {i + 2}: Anzahl={row[4]}, erwartet 1"
|
||||
assert row[5] == "1", (
|
||||
f"Zeile {i + 2}: Anzahl={row[5]}, erwartet 1"
|
||||
)
|
||||
|
||||
def test_merkmale_sind_valides_json(self):
|
||||
"""Merkmale-Spalte muss valides JSON enthalten."""
|
||||
for i, row in enumerate(self.rows):
|
||||
if len(row) < 6:
|
||||
if len(row) < 9:
|
||||
continue
|
||||
try:
|
||||
json.loads(row[5])
|
||||
json.loads(row[8])
|
||||
except json.JSONDecodeError as e:
|
||||
pytest.fail(f"Zeile {i + 2}: Merkmale ist kein valides JSON: {e}")
|
||||
|
||||
@@ -247,9 +247,9 @@ class TestFoerdererExportCSV:
|
||||
required = {"Typ", "Winkel", "DeltaH_mm", "DeltaL_mm",
|
||||
"L_VF_m", "Hoehe_Von_mm", "Hoehe_Bis_mm"}
|
||||
for i, row in enumerate(self.rows):
|
||||
if len(row) < 6:
|
||||
if len(row) < 9:
|
||||
continue
|
||||
merkmale = json.loads(row[5])
|
||||
merkmale = json.loads(row[8])
|
||||
missing = required - set(merkmale.keys())
|
||||
assert not missing, (
|
||||
f"Zeile {i + 2}: Fehlende Merkmale-Felder: {missing}"
|
||||
|
||||
Reference in New Issue
Block a user