Unittests zu allen Elementen erstellt
This commit is contained in:
@@ -0,0 +1,104 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
"""
|
||||
Unit-Tests für Angetriebene_Kurve (Refactored)
|
||||
"""
|
||||
import unittest
|
||||
|
||||
from .Angetriebene_Kurve import Angetriebene_Kurve
|
||||
|
||||
|
||||
class TestAngetriebeneKurveModell(unittest.TestCase):
|
||||
"""Tests für das Angetriebene_Kurve Modell."""
|
||||
|
||||
def test_from_merkmale(self):
|
||||
merkmale = {
|
||||
"Höhe Anfang": "1.5",
|
||||
"Höhe Ende": "2.0",
|
||||
"Kurvenwinkel": "90",
|
||||
"Kurvenrichtung": "links",
|
||||
"AntriebNebenStrecke": "außen",
|
||||
"Drehung": "-270",
|
||||
}
|
||||
obj = Angetriebene_Kurve.from_merkmale("AK-001", 100.0, 200.0, merkmale)
|
||||
self.assertEqual(obj.teileid, "AK-001")
|
||||
self.assertEqual(obj.hoehe0, 1500.0)
|
||||
self.assertEqual(obj.hoehe1, 2000.0)
|
||||
self.assertEqual(obj.winkel, 90)
|
||||
self.assertEqual(obj.kurvenrichtung, "links")
|
||||
self.assertEqual(obj.drehung, -270.0)
|
||||
|
||||
def test_from_merkmale_drehung_fehlend(self):
|
||||
merkmale = {
|
||||
"Höhe Anfang": "1.0",
|
||||
"Höhe Ende": "1.0",
|
||||
"Kurvenwinkel": "45",
|
||||
"Kurvenrichtung": "rechts",
|
||||
"AntriebNebenStrecke": "innen",
|
||||
}
|
||||
obj = Angetriebene_Kurve.from_merkmale("AK-002", 0.0, 0.0, merkmale)
|
||||
self.assertEqual(obj.drehung, 0.0) # None → default
|
||||
|
||||
|
||||
class TestAntriebNormalisierung(unittest.TestCase):
|
||||
"""Tests für die field_validator Normalisierung von antriebNebenStrecke."""
|
||||
|
||||
def test_aussen_normalisiert(self):
|
||||
"""'Aussen' wird beim Erstellen zu 'außen' normalisiert."""
|
||||
obj = Angetriebene_Kurve(
|
||||
teileid="T", x=0, y=0, kurvenrichtung="links",
|
||||
antriebNebenStrecke="Aussen", winkel=90,
|
||||
)
|
||||
self.assertEqual(obj.antriebNebenStrecke, "außen")
|
||||
self.assertEqual(obj.antrieb, "außen")
|
||||
|
||||
def test_innen_normalisiert(self):
|
||||
"""'Innen' wird beim Erstellen zu 'innen' normalisiert."""
|
||||
obj = Angetriebene_Kurve(
|
||||
teileid="T", x=0, y=0, kurvenrichtung="rechts",
|
||||
antriebNebenStrecke="Innen", winkel=45,
|
||||
)
|
||||
self.assertEqual(obj.antriebNebenStrecke, "innen")
|
||||
self.assertEqual(obj.antrieb, "innen")
|
||||
|
||||
def test_bereits_normalisiert_bleibt(self):
|
||||
"""Bereits normalisierte Werte bleiben unverändert."""
|
||||
obj = Angetriebene_Kurve(
|
||||
teileid="T", x=0, y=0, kurvenrichtung="links",
|
||||
antriebNebenStrecke="außen", winkel=90,
|
||||
)
|
||||
self.assertEqual(obj.antriebNebenStrecke, "außen")
|
||||
|
||||
def test_unbekannter_wert_bleibt(self):
|
||||
"""Unbekannte Werte werden nicht verändert."""
|
||||
obj = Angetriebene_Kurve(
|
||||
teileid="T", x=0, y=0, kurvenrichtung="links",
|
||||
antriebNebenStrecke="custom_wert", winkel=90,
|
||||
)
|
||||
self.assertEqual(obj.antriebNebenStrecke, "custom_wert")
|
||||
|
||||
def test_antrieb_property_read_only(self):
|
||||
"""antrieb Property gibt den normierten Wert zurück ohne Side-Effect."""
|
||||
obj = Angetriebene_Kurve(
|
||||
teileid="T", x=0, y=0, kurvenrichtung="links",
|
||||
antriebNebenStrecke="Aussen", winkel=90,
|
||||
)
|
||||
# Mehrfacher Zugriff ändert nichts
|
||||
_ = obj.antrieb
|
||||
_ = obj.antrieb
|
||||
self.assertEqual(obj.antrieb, "außen")
|
||||
|
||||
|
||||
class TestHightZwischen(unittest.TestCase):
|
||||
"""Tests für hight_zwischen Property."""
|
||||
|
||||
def test_mittlere_hoehe(self):
|
||||
obj = Angetriebene_Kurve(
|
||||
teileid="T", x=0, y=0, kurvenrichtung="links",
|
||||
antriebNebenStrecke="außen", winkel=90,
|
||||
hoehe0=1000, hoehe1=3000,
|
||||
)
|
||||
self.assertEqual(obj.hight_zwischen, 2000.0)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
Reference in New Issue
Block a user