#!/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")))