From 5b61b633b921129b249005efbf20bd94a303e17a Mon Sep 17 00:00:00 2001 From: "m.stangl" Date: Fri, 8 Apr 2022 18:59:49 +0200 Subject: [PATCH] =?UTF-8?q?Mengenger=C3=BCst=20auf=20variable=20Argumentli?= =?UTF-8?q?ste=20umgestellt,=20damit=20Testen=20leichter=20m=C3=B6glich=20?= =?UTF-8?q?wird=20und=20nur=20noch=20Angaben=20gemacht=20werden=20m=C3=BCs?= =?UTF-8?q?sen=20die=20man=20zum=20Test=20verwendet.=20Alle=20Tests=20im?= =?UTF-8?q?=20=5F=5Fmain=20versammelt.=20Einfaches=20auskommentieren=20rei?= =?UTF-8?q?cht=20zum=20Durchlauf=20des=20gew=C3=A4hlten=20Tests?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- rieter_ekalk.py | 115 ++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 91 insertions(+), 24 deletions(-) diff --git a/rieter_ekalk.py b/rieter_ekalk.py index 09f8c0d..29b249a 100644 --- a/rieter_ekalk.py +++ b/rieter_ekalk.py @@ -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()