Files

69 lines
2.2 KiB
Python

# -*- coding: utf-8 -*-
"""
Unit-Tests für Eckrad (Refactored)
"""
import unittest
from .Eckrad import Eckrad, _safe_float, BLOCK_AN8, BLOCK_ECKRAD_UZS, BLOCK_ECKRAD_GUZS, RADIUS
class TestSafeFloat(unittest.TestCase):
"""Tests für Eckrad _safe_float."""
def test_normaler_wert(self):
self.assertEqual(_safe_float("2.5"), 2.5)
def test_none_default(self):
self.assertEqual(_safe_float(None, 99.0), 99.0)
def test_ungueltig_default(self):
self.assertEqual(_safe_float("abc", 0.0), 0.0)
class TestEckradModell(unittest.TestCase):
"""Tests für das Eckrad Modell."""
def test_from_merkmale_vollstaendig(self):
merkmale = {
"Höhe in Meter": "3.5",
"Drehung": "45",
"Drehrichtung": "UZS",
}
obj = Eckrad.from_merkmale("E-001", 100.0, 200.0, merkmale)
self.assertEqual(obj.teileid, "E-001")
self.assertEqual(obj.hoehe, 3500.0) # 3.5 * 1000
self.assertEqual(obj.drehung, 45.0)
self.assertEqual(obj.drehrichtung, "UZS")
def test_from_merkmale_fehlende_hoehe(self):
merkmale = {"Drehung": "90", "Drehrichtung": None}
obj = Eckrad.from_merkmale("E-002", 0.0, 0.0, merkmale)
self.assertEqual(obj.hoehe, 0.0) # None → default 0
def test_from_merkmale_fehlende_drehung(self):
merkmale = {"Höhe in Meter": "1.0"}
obj = Eckrad.from_merkmale("E-003", 0.0, 0.0, merkmale)
self.assertEqual(obj.drehung, 0.0) # None → default 0
def test_drehrichtung_ohne_try_except(self):
# drehrichtung = merkmale.get("Drehrichtung") wirft nie
merkmale = {"Höhe in Meter": "1.0", "Drehung": "0"}
obj = Eckrad.from_merkmale("E-004", 0.0, 0.0, merkmale)
self.assertIsNone(obj.drehrichtung)
class TestEckradKonstanten(unittest.TestCase):
"""Tests für Eckrad-Konstanten."""
def test_block_namen(self):
self.assertEqual(BLOCK_AN8, "AN8")
self.assertEqual(BLOCK_ECKRAD_UZS, "eckrad_UZS")
self.assertEqual(BLOCK_ECKRAD_GUZS, "eckrad_GUZS")
def test_radius(self):
self.assertEqual(RADIUS, 400)
if __name__ == "__main__":
unittest.main()