60 lines
2.3 KiB
Python
60 lines
2.3 KiB
Python
#!/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")))
|