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 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. # Press Double Shift to search everywhere for classes, files, tool windows, actions, and settings.
class MG(): 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 = { mengen = {
#"SYSTEM":"", #"SYSTEM":"",
#"RSM":0, #"RSM":0,
@@ -29,6 +40,7 @@ class MG():
#"Turm":0, #"Turm":0,
#"Turm_Anzahl_Wendlungen":0, #"Turm_Anzahl_Wendlungen":0,
} }
# wenn Flyer Electrojet 1, dann sollten Vor- und Nachpuffer größer 1 sein # 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 Neuenhauser 1, dann sollten Vor- und Nachpuffer größer 1 sein
# wenn Cason 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 # Turm: kein Kriterium
self._deckblatt = deckblatt self._deckblatt = deckblatt
self._RSM_Anzahl = deckblatt.get("RSM", 0) 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_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 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"] = 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_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 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"] = deckblatt.get("Neuenhauser-Putzmaschine", 0)
neuenhauser_mengen["Neuenhauser-Putzmaschine_Vorpuffer"] = deckblatt.get("Neuenhauser-Putzmaschine_Vorpuffer", 0) neuenhauser_mengen["Neuenhauser-Putzmaschine_Vorpuffer"] = deckblatt.get("Neuenhauser-Putzmaschine_Vorpuffer", 0)
neuenhauser_mengen["Neuenhauser-Putzmaschine_Nachpuffer"] = deckblatt.get("Neuenhauser-Putzmaschine_Nachpuffer", 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["Anzahl"] = deckblatt.get("Flyer", 0)
flyer_mengen["Flyer"] = deckblatt.get("Flyer", 0) flyer_mengen["Flyer"] = deckblatt.get("Flyer", 0)
flyer_mengen["Anzahl_Schienen"] = deckblatt.get("Flyer_Puffer", 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["Puffer"] = deckblatt.get("Puffer", 0)
puffer_mengen["Anzahl_Pufferstrecken"] = deckblatt.get("Anzahl_der_Pufferstrecken_pro_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["Turm"] = deckblatt.get("Turm", 0)
turm_mengen["Anzahl_Wendlungen"] = deckblatt.get("Turm_Anzahl_Wendlungen", 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 #überprüfe welche Art von System, setze dict der unrelevanten klasse = 0
system = deckblatt.get("SYSTEM", "") system = deckblatt.get("SYSTEM", "")
@@ -1690,8 +1723,7 @@ class calc_main_tab():
hotelkosten_pro_tag = 0 hotelkosten_pro_tag = 0
# Press the green button in the gutter to run the script. def test1_old():
if __name__ == '__main__':
# Anzahl der für das Projekt benutzten # Anzahl der für das Projekt benutzten
deckblatt_eingabe = { deckblatt_eingabe = {
"SYSTEM":"", "SYSTEM":"",
@@ -1721,7 +1753,16 @@ if __name__ == '__main__':
verbindungsstrecken_w_mengen = {} verbindungsstrecken_w_mengen = {}
puffer_eingabe = {} puffer_eingabe = {}
turm_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 = { Anzahl_EAS = {
"Bedienelemente_Steuerschrank" : 1, "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: #Testmethoden:
''' '''
# self.assertEqual(deckblatt._rsm_direct.anzahl("Anzahl"), 13) # 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("RA_bi_ohne_SPS"), 26)
self.assertEqual(deckblatt._turm.anzahl("Bedientableau_2fach"), 4) self.assertEqual(deckblatt._turm.anzahl("Bedientableau_2fach"), 4)
def test_RSM_direct(self): def test_RSM_direct(self):
Anzahl_RSM = { Anzahl_RSM = {
"Anzahl":0, "Anzahl":0,
@@ -2171,7 +2218,6 @@ class TestObjectMethods(unittest.TestCase):
mg = RSM_direct(Anzahl_RSM) mg = RSM_direct(Anzahl_RSM)
self.assertEqual(mg.anzahl("Anzahl_Strecken/RSM"), 8) self.assertEqual(mg.anzahl("Anzahl_Strecken/RSM"), 8)
def test_EA(self): def test_EA(self):
Anzahl_EAS = { Anzahl_EAS = {
"bedienstation_einfach_Zug_Wechseln": 9, "bedienstation_einfach_Zug_Wechseln": 9,
@@ -2199,7 +2245,6 @@ class TestObjectMethods(unittest.TestCase):
self.assertEqual(eas.gesamt_E(), 9) self.assertEqual(eas.gesamt_E(), 9)
self.assertEqual(eas.gesamt_A(), 25) self.assertEqual(eas.gesamt_A(), 25)
def test_EA_implicit(self): def test_EA_implicit(self):
Anzahl_EAS = { Anzahl_EAS = {
"Stopper": 5, "Stopper": 5,
@@ -2216,9 +2261,7 @@ class TestObjectMethods(unittest.TestCase):
self.assertEqual(eas.gesamt_E(), 5) self.assertEqual(eas.gesamt_E(), 5)
self.assertEqual(eas.gesamt_A(), 0) self.assertEqual(eas.gesamt_A(), 0)
def test_EA_A_La_Presa(self): def test_EA_A_La_Presa(self):
Anzahl_EAS_A_La_Presa = { Anzahl_EAS_A_La_Presa = {
"Bedienelemente_Steuerschrank": 1, "Bedienelemente_Steuerschrank": 1,
"bedienstation_einfach_Zug_Wechseln": 9, "bedienstation_einfach_Zug_Wechseln": 9,
@@ -2401,7 +2444,6 @@ class TestObjectMethods(unittest.TestCase):
self.assertEqual(hw.anzahl("motorschutzschalter"), 0) self.assertEqual(hw.anzahl("motorschutzschalter"), 0)
self.assertEqual(hw.anzahl("gemeinsame_wendung"), 1) self.assertEqual(hw.anzahl("gemeinsame_wendung"), 1)
#self.assertEqual(hw.anzahl("antrieb_bidirektional_halbleiter"), 13) #in HW korrekte Rechnung auskommentiert? #self.assertEqual(hw.anzahl("antrieb_bidirektional_halbleiter"), 13) #in HW korrekte Rechnung auskommentiert?
#self.assertEqual(hw.summe_in_LL(), 8727) #self.assertEqual(hw.summe_in_LL(), 8727)
#self.assertEqual(hw.summe_vorort(), 5503) #self.assertEqual(hw.summe_vorort(), 5503)
@@ -2421,6 +2463,16 @@ class TestObjectMethods(unittest.TestCase):
} }
eas = EA(Anzahl_EAS) eas = EA(Anzahl_EAS)
hw = HW(Anzahl_HW, 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("hauptschalter"), 2)
self.assertEqual(hw.anzahl("panel_pc"), 1) self.assertEqual(hw.anzahl("panel_pc"), 1)
print (hw) print (hw)
@@ -2441,10 +2493,8 @@ class TestObjectMethods(unittest.TestCase):
# } # }
# eas # eas
#if __name__ == '__main__':
# unittest.main()
if __name__ == '__main__': def test2():
# Anzahl der für das Projekt benutzten # Anzahl der für das Projekt benutzten
Anzahl_MG = { Anzahl_MG = {
"SYSTEM":"DIRECT", "SYSTEM":"DIRECT",
@@ -2673,7 +2723,16 @@ if __name__ == '__main__':
"RA_bi_ohne_SPS_Korrektur":0, "RA_bi_ohne_SPS_Korrektur":0,
#"Bedientableau_2fach":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.tofile()
#mg.ztofile() #mg.ztofile()
Anzahl_EAS = { Anzahl_EAS = {
@@ -2703,3 +2762,11 @@ if __name__ == '__main__':
"Erdung": 40, "Erdung": 40,
} }
emo = EMO(eas, hw, mg) emo = EMO(eas, hw, mg)
def test_Unittests():
unittest.main()
if __name__ == '__main__':
# test1_old()
test2()
# test_Unittests()