Mengengerüst auf variable Argumentliste umgestellt, damit Testen leichter möglich wird und nur noch Angaben gemacht werden müssen die man zum Test verwendet. Alle Tests im __main versammelt. Einfaches auskommentieren reicht zum Durchlauf des gewählten Tests

This commit is contained in:
2022-04-08 18:59:49 +02:00
parent f058883c04
commit 5b61b633b9
+91 -24
View File
@@ -8,7 +8,18 @@ JSON_IDENT =5
# Press Umschalt+F10 to execute it or replace it with your code.
# Press Double Shift to search everywhere for classes, files, tool windows, actions, and settings.
class MG():
def __init__(self, deckblatt:dict, rsm_direct:dict, rsm_fa:dict, flyer_f40:dict, neuenhauser:dict, flyer:dict, verbindungsstrecken_w:dict, puffer:dict, turm:dict):
def __init__(self, deckblatt:dict, **kwargs):
"""
kwargs can contain the keys
rsm_direct
rsm_fa
flyer_f40
neuenhauser
flyer
verbindungsstrecken_w
puffer
turm
"""
mengen = {
#"SYSTEM":"",
#"RSM":0,
@@ -29,6 +40,7 @@ class MG():
#"Turm":0,
#"Turm_Anzahl_Wendlungen":0,
}
# wenn Flyer Electrojet 1, dann sollten Vor- und Nachpuffer größer 1 sein
# wenn Neuenhauser 1, dann sollten Vor- und Nachpuffer größer 1 sein
# wenn Cason 1, dann sollten Vor- und Nachpuffer größer 1 sein
@@ -37,29 +49,50 @@ class MG():
# Turm: kein Kriterium
self._deckblatt = deckblatt
self._RSM_Anzahl = deckblatt.get("RSM", 0)
rsm_direct_mengen = rsm_direct
rsm_direct_mengen = {}
if "rsm_direct" in kwargs:
rsm_direct_mengen = kwargs['rsm_direct']
rsm_direct_mengen["Anzahl"] = self._RSM_Anzahl #übernahme aus deckblatt
rsm_fa_mengen = rsm_fa
rsm_fa_mengen = {}
if "rsm_fa" in kwargs:
rsm_fa_mengen = kwargs['rsm_fa']
rsm_fa_mengen["Anzahl_RSM"] = self._RSM_Anzahl #übernahme aus deckblatt
flyer_f40_mengen = flyer_f40
flyer_f40_mengen = {}
if "flyer_f40" in kwargs:
flyer_f40_mengen = kwargs['flyer_f40']
flyer_f40_mengen["Flyer_Electrojet_incl_intergrierte_Putzmaschine"] = deckblatt.get("Flyer_Electrojet_incl_intergrierte_Putzmaschine", 0) #übernahme aus deckblatt
flyer_f40_mengen["Flyer_Electrojet_incl_intergrierte_Putzmaschine_Vorpuffer"] = deckblatt.get("Flyer_Electrojet_incl_intergrierte_Putzmaschine_Vorpuffer", 0) #übernahme aus deckblatt
flyer_f40_mengen["Flyer_Electrojet_incl_intergrierte_Putzmaschine_Nachpuffer"] = deckblatt.get("Flyer_Electrojet_incl_intergrierte_Putzmaschine_Nachpuffer", 0) #übernahme aus deckblatt
neuenhauser_mengen = neuenhauser
neuenhauser_mengen = {}
if "neuenhauser" in kwargs:
neuenhauser_mengen = kwargs['neuenhauser']
neuenhauser_mengen["Neuenhauser-Putzmaschine"] = deckblatt.get("Neuenhauser-Putzmaschine", 0)
neuenhauser_mengen["Neuenhauser-Putzmaschine_Vorpuffer"] = deckblatt.get("Neuenhauser-Putzmaschine_Vorpuffer", 0)
neuenhauser_mengen["Neuenhauser-Putzmaschine_Nachpuffer"] = deckblatt.get("Neuenhauser-Putzmaschine_Nachpuffer", 0)
flyer_mengen = flyer
flyer_mengen = {}
if "flyer" in kwargs:
flyer_mengen = kwargs['flyer']
flyer_mengen["Anzahl"] = deckblatt.get("Flyer", 0)
flyer_mengen["Flyer"] = deckblatt.get("Flyer", 0)
flyer_mengen["Anzahl_Schienen"] = deckblatt.get("Flyer_Puffer", 0)
puffer_mengen = puffer
puffer_mengen = {}
if "puffer" in kwargs:
puffer_mengen = kwargs['puffer']
puffer_mengen["Puffer"] = deckblatt.get("Puffer", 0)
puffer_mengen["Anzahl_Pufferstrecken"] = deckblatt.get("Anzahl_der_Pufferstrecken_pro_Puffer", 0)
turm_mengen = turm
turm_mengen = {}
if "turm" in kwargs:
turm_mengen = kwargs['turm']
turm_mengen["Turm"] = deckblatt.get("Turm", 0)
turm_mengen["Anzahl_Wendlungen"] = deckblatt.get("Turm_Anzahl_Wendlungen", 0)
verbindungsstrecken_w_mengen = verbindungsstrecken_w
verbindungsstrecken_w_mengen = {}
if "verbindungsstrecken_w" in kwargs:
verbindungsstrecken_w_mengen = kwargs['verbindungsstrecken_w']
#überprüfe welche Art von System, setze dict der unrelevanten klasse = 0
system = deckblatt.get("SYSTEM", "")
@@ -1690,8 +1723,7 @@ class calc_main_tab():
hotelkosten_pro_tag = 0
# Press the green button in the gutter to run the script.
if __name__ == '__main__':
def test1_old():
# Anzahl der für das Projekt benutzten
deckblatt_eingabe = {
"SYSTEM":"",
@@ -1721,7 +1753,16 @@ if __name__ == '__main__':
verbindungsstrecken_w_mengen = {}
puffer_eingabe = {}
turm_eingabe = {}
mg = MG(deckblatt_eingabe, rsm_direct_eingabe, rsm_fa_eingabe, flyer_f40_eingabe, neuenhauser_eingabe, flyer_eingabe, verbindungsstrecken_w_mengen, puffer_eingabe, turm_eingabe)
mg = MG(deckblatt_eingabe,
rsm_direct=rsm_direct_eingabe,
rsm_fa=rsm_fa_eingabe,
flyer_f40=flyer_f40_eingabe,
neuenhauser=neuenhauser_eingabe,
flyer=flyer_eingabe,
verbindungsstrecken_w=verbindungsstrecken_w_mengen,
puffer=puffer_eingabe,
turm=turm_eingabe)
Anzahl_EAS = {
"Bedienelemente_Steuerschrank" : 1,
@@ -2017,7 +2058,15 @@ class TestObjectMethods(unittest.TestCase):
}
deckblatt = MG(deckblatt_eingabe, rsm_direct_eingabe, rsm_fa_eingabe, flyer_f40_eingabe, neuenhauser_eingabe, flyer_eingabe, puffer_eingabe, turm_eingabe)
deckblatt = MG(deckblatt_eingabe,
rsm_direct=rsm_direct_eingabe,
rsm_fa=rsm_fa_eingabe,
flyer_f40=flyer_f40_eingabe,
neuenhauser=neuenhauser_eingabe,
flyer=flyer_eingabe,
verbindungsstrecken_w=verbindungsstrecken_w_mengen,
puffer=puffer_eingabe,
turm=turm_eingabe)
#Testmethoden:
'''
# self.assertEqual(deckblatt._rsm_direct.anzahl("Anzahl"), 13)
@@ -2131,8 +2180,6 @@ class TestObjectMethods(unittest.TestCase):
self.assertEqual(deckblatt._turm.anzahl("RA_bi_ohne_SPS"), 26)
self.assertEqual(deckblatt._turm.anzahl("Bedientableau_2fach"), 4)
def test_RSM_direct(self):
Anzahl_RSM = {
"Anzahl":0,
@@ -2171,7 +2218,6 @@ class TestObjectMethods(unittest.TestCase):
mg = RSM_direct(Anzahl_RSM)
self.assertEqual(mg.anzahl("Anzahl_Strecken/RSM"), 8)
def test_EA(self):
Anzahl_EAS = {
"bedienstation_einfach_Zug_Wechseln": 9,
@@ -2199,7 +2245,6 @@ class TestObjectMethods(unittest.TestCase):
self.assertEqual(eas.gesamt_E(), 9)
self.assertEqual(eas.gesamt_A(), 25)
def test_EA_implicit(self):
Anzahl_EAS = {
"Stopper": 5,
@@ -2216,9 +2261,7 @@ class TestObjectMethods(unittest.TestCase):
self.assertEqual(eas.gesamt_E(), 5)
self.assertEqual(eas.gesamt_A(), 0)
def test_EA_A_La_Presa(self):
Anzahl_EAS_A_La_Presa = {
"Bedienelemente_Steuerschrank": 1,
"bedienstation_einfach_Zug_Wechseln": 9,
@@ -2401,7 +2444,6 @@ class TestObjectMethods(unittest.TestCase):
self.assertEqual(hw.anzahl("motorschutzschalter"), 0)
self.assertEqual(hw.anzahl("gemeinsame_wendung"), 1)
#self.assertEqual(hw.anzahl("antrieb_bidirektional_halbleiter"), 13) #in HW korrekte Rechnung auskommentiert?
#self.assertEqual(hw.summe_in_LL(), 8727)
#self.assertEqual(hw.summe_vorort(), 5503)
@@ -2421,6 +2463,16 @@ class TestObjectMethods(unittest.TestCase):
}
eas = EA(Anzahl_EAS)
hw = HW(Anzahl_HW, eas)
mg = MG(Anzahl_MG,
rsm_direct=rsm_direct_eingabe,
rsm_fa=rsm_fa_eingabe,
flyer_f40=flyer_f40_eingabe,
neuenhauser=neuenhauser_eingabe,
flyer=flyer_eingabe,
verbindungsstrecken_w=verbindungsstrecken_w_eingabe,
puffer=puffer_eingabe,
turm=turm_eingabe)
hw = HW(Anzahl_HW, mg, eas)
self.assertEqual(hw.anzahl("hauptschalter"), 2)
self.assertEqual(hw.anzahl("panel_pc"), 1)
print (hw)
@@ -2441,10 +2493,8 @@ class TestObjectMethods(unittest.TestCase):
# }
# eas
#if __name__ == '__main__':
# unittest.main()
if __name__ == '__main__':
def test2():
# Anzahl der für das Projekt benutzten
Anzahl_MG = {
"SYSTEM":"DIRECT",
@@ -2673,7 +2723,16 @@ if __name__ == '__main__':
"RA_bi_ohne_SPS_Korrektur":0,
#"Bedientableau_2fach":0,
}
mg = MG(Anzahl_MG, rsm_direct_eingabe, rsm_fa_eingabe, flyer_f40_eingabe, neuenhauser_eingabe, flyer_eingabe, verbindungsstrecken_w_eingabe, puffer_eingabe, turm_eingabe)
mg = MG(Anzahl_MG,
rsm_direct=rsm_direct_eingabe,
rsm_fa=rsm_fa_eingabe,
flyer_f40=flyer_f40_eingabe,
neuenhauser=neuenhauser_eingabe,
flyer=flyer_eingabe,
verbindungsstrecken_w=verbindungsstrecken_w_eingabe,
puffer=puffer_eingabe,
turm=turm_eingabe)
#mg.tofile()
#mg.ztofile()
Anzahl_EAS = {
@@ -2703,3 +2762,11 @@ if __name__ == '__main__':
"Erdung": 40,
}
emo = EMO(eas, hw, mg)
def test_Unittests():
unittest.main()
if __name__ == '__main__':
# test1_old()
test2()
# test_Unittests()