Unittests zu allen Elementen erstellt
This commit is contained in:
@@ -0,0 +1,68 @@
|
||||
# -*- 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()
|
||||
Reference in New Issue
Block a user