[FIX] Export: Schnittpunkte zwischen Kreiseln werden erkannt und Weichen entsprechend gezählt und als Teil mit Merkmalen im Export befüllt - nur Kreisel mit gleicher Höhe können einen Schnittpunkt für Weiche bilden - Funktion der Weichenzählung manuell aufrufbar; [FIX] Eckrad nun korrekt angelegt und exportiert
This commit is contained in:
@@ -0,0 +1,59 @@
|
||||
#!/usr/bin/env python3
|
||||
# -*- coding: utf-8 -*-
|
||||
"""
|
||||
test_export_sivas_eckrad.py - Sivas-Merkmale des ILS Eckrads (6210),
|
||||
am Kreisel ausgerichtet (cfg/sivas.cfg [eckrad]).
|
||||
Laeuft komplett ohne BricsCAD (reine Python-Logik).
|
||||
"""
|
||||
|
||||
import os
|
||||
import sys
|
||||
|
||||
sys.path.insert(0, os.path.join(os.path.dirname(__file__), "..", "lib"))
|
||||
|
||||
import export_sivas # noqa: E402
|
||||
|
||||
|
||||
def _eckrad(nr, hoehe="2000", einzelmodul="1", typ="Schoenenberger Geruest"):
|
||||
return {"block_name": f"ECKRAD_{nr}", "x": 0.0, "y": 0.0, "z": float(hoehe),
|
||||
"rotation": 0.0,
|
||||
"attribs": {"ID": f"000{nr}", "Bezeichnung": f"Eckrad {nr}",
|
||||
"NUMMER": str(nr), "HOEHE": hoehe,
|
||||
"GERUEST_EINZELMODUL": einzelmodul, "GERUEST_TYP": typ}}
|
||||
|
||||
|
||||
def test_eckrad_details_wie_kreisel():
|
||||
details = export_sivas.build_eckrad_details(_eckrad(1))
|
||||
assert details == {"2950": "2.0", "3381": "1", "3992": "Ja",
|
||||
"3993": export_sivas.geruest_typ_anzeige("Schoenenberger Geruest")}
|
||||
|
||||
|
||||
def test_eckrad_ohne_geruest_ist_nein():
|
||||
details = export_sivas.build_eckrad_details(_eckrad(1, einzelmodul="0"))
|
||||
assert details["3992"] == "Nein"
|
||||
|
||||
|
||||
def test_eckrad_hoehe_in_metern():
|
||||
assert export_sivas.build_eckrad_details(_eckrad(1, hoehe="4820"))["2950"] == "4.82"
|
||||
|
||||
|
||||
def _kreisel(nr, montagehoehe):
|
||||
return {"block_name": f"KREISEL_{nr}", "x": 0.0, "y": 0.0, "z": 0.0,
|
||||
"rotation": 0.0,
|
||||
"attribs": {"ID": f"000{nr}", "NUMMER": str(nr), "KREISELART": "STANDARD",
|
||||
"ABSTAND": "2300", "MONTAGEHOEHE_m": montagehoehe}}
|
||||
|
||||
|
||||
def test_kreisel_verschiedene_hoehen_getrennte_zeilen():
|
||||
assert (export_sivas.kreisel_signature(_kreisel(1, "4.820"))
|
||||
!= export_sivas.kreisel_signature(_kreisel(2, "2.000")))
|
||||
# numerischer Vergleich: gleiche Hoehe, andere Schreibweise -> eine Zeile
|
||||
assert (export_sivas.kreisel_signature(_kreisel(1, "4.820"))
|
||||
== export_sivas.kreisel_signature(_kreisel(2, "4.82")))
|
||||
|
||||
|
||||
def test_eckrad_verschiedene_hoehen_getrennte_zeilen():
|
||||
assert (export_sivas.eckrad_signature(_eckrad(1, hoehe="2000"))
|
||||
!= export_sivas.eckrad_signature(_eckrad(2, hoehe="2500")))
|
||||
assert (export_sivas.eckrad_signature(_eckrad(1, hoehe="2000"))
|
||||
== export_sivas.eckrad_signature(_eckrad(2, hoehe="2000")))
|
||||
Reference in New Issue
Block a user