# -*- 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()