import rieter_ekalk as rek import unittest class TestObjectMethods(unittest.TestCase): def test_A_JayJay(self): # Anzahl der für das Projekt benutzten Anzahl_MG = { "SYSTEM": "FA", "RSM":14, "Flyer":4, "Flyer_Puffer":2, "Flyer_Electrojet_incl_intergrierte_Putzmaschine":0, "Flyer_Electrojet_incl_intergrierte_Putzmaschine_Vorpuffer":0, "Flyer_Electrojet_incl_intergrierte_Putzmaschine_Nachpuffer":0, "Neuenhauser-Putzmaschine":0, "Neuenhauser-Putzmaschine_Vorpuffer":0, "Neuenhauser-Putzmaschine_Nachpuffer":0, "Cason-Putzmaschine":0, "Cason-Putzmaschine_Vorpuffer":0, "Cason-Putzmaschine_Nachpuffer":0, "Puffer":1, "Anzahl_der_Pufferstrecken_pro_Puffer":5, "Begegnungsstrecke_Bypass":2, "Turm":0, "Turm_Anzahl_Wendlungen":0, } rsm_direct_eingabe = { } rsm_fa_eingabe = { "Flex_A_Premium":False, # braucht man das noch? "Getriebe_in_der_Mitte":False, # braucht man das noch? "RSM_Einfahrt_Ein_Beidseitig":False, # braucht man das noch? "Sensor_optisch_Traverse_zusätzlich":6, "Bedientableau_1fach_Korrektur":0, "Bedientableau_2fach_Korrektur":4, "Weiche_Korrektur":4, "RRA_bi_Korrektur":0, "RRA_bi_auf_Haupstrecke":10, "RRA_uni_Begegnung":4, "gemeinsame_Wendung":0, "Mit_Drucktaster_Korrektur":0, "Meldelampe_Überstrom_Korrektur":0, "Hauptschalter_Ein-Meldung_Korrektur":0, "Werma_Rundumleuchte_Störung_Korrektur":0, "klemmkasten_rsm":2, } flyer_f40_eingabe = { #auskommentiert => kein Übergabeparameter, wird in Klasse berechnet #"Anzahl":0, #"Flyer_Electrojet_incl_intergrierte_Putzmaschine":0, #wird in deckblatt-Klasse berechnet "Flyer_Electrojet_incl_intergrierte_Putzmaschine_Korrektur":0, #"Flyer_Electrojet_incl_intergrierte_Putzmaschine_Vorpuffer":2, #wird in deckblatt-Klasse berechnet #"Flyer_Electrojet_incl_intergrierte_Putzmaschine_Nachpuffer":2, #wird in deckblatt-Klasse berechnet #"Anzahl_Schienen":0, "Single_Line_Durchfahrt":False, "Nachpuffer":False, #"Sensor_optisch_Traverse":0, "Sensor_optisch_Traverse_Korrektur":0, #"Sensor_induktiv_Spulenhalter":0, "Sensor_induktiv_Spulenhalter_Korrektur":0, #"Bedientableau_2fach":0, "Bedientableau_2fach_Korrektur":0, #"Interface_Doffer":0, "Interface_Doffer_Korrektur":0, #"Weiche":0, "Weiche_Korrektur":0, #"Weiche_nach_Flyer_bipolar":0, "Weiche_nach_Flyer_bipolar_Korrektur":0, "Dreifachweiche":0, "Wechsel":0, "Stopper":0, "RA_uni":0, #"RA_uni_abhebbar":0, "RA_uni_abhebbar_Korrektur":0, #"RA_uni_ohne_SPS_Ansteuerung":0, "RA_uni_ohne_SPS_Ansteuerung_Korrektur":0, #"RRA_BI_abhebbar":0, "RRA_BI_abhebbar_Korrektur":0, "RRA_bi":0, #"RRA_bi_Korrektur":0, #"RRA_bi_ohne_SPS_Ansteuerung":0, "RRA_bi_ohne_SPS_Ansteuerung_Korrektur":0, #"Doppelstreckenantrieb":0, "Doppelstreckenantrieb_Korrektur":0, "RA_bi_abhebbar_unger_Schiene":0, #"Meldelampe_Überstrom":0, "Meldelampe_Überstrom_Korrektur":0, #"Hauptschalter_Ein_Meldung":0, "Hauptschalter_Ein-Meldung_Korrektur":0, #"Werma_Rundumleuchte_Störung":0, "Werma_Rundumleuchte_Störung_Korrektur":0, } neuenhauser_eingabe = { #auskommentiert => kein Übergabeparameter, wird in Klasse berechnet #"Anzahl":0, #"Neuenhauser-Putzmaschine":0, #wird in deckblatt-Klasse zugewiesen #"Neuenhauser-Putzmaschine_Vorpuffer":0, #wird in deckblatt-Klasse zugewiesen #"Neuenhauser-Putzmaschine_Nachpuffer":0, #wird in deckblatt-Klasse zugewiesen #"Anzahl_Vorstaustrecken":0, #"Anzahl_Nachstaustrecken":0, #"Sensor_optisch_Traverse":0, "Sensor_optisch_Traverse_Korrektur":0, #"Sensorik_Zugpositionierung":0, #"Sensor_WT18_Spulenprüfung_voll_leer":0, #"Bedientableau_2fach":0, "Bedientableau_2fach_Korrektur":0, #"Interface_Putzmaschine":0, #"Weiche":0, "Weiche_Korrektur":0, #"Weiche_nach_PM_bipolar":0, #"RA_uni_abhebbar":0, "RA_uni_abhebbar_Korrektur":0, #"RA_uni_ohne_SPS_Ansteuerung":0, #"RA_uni_abhebbar_unger_Sch":0, #"Doppelstreckenantrieb":0, #"Meldelampe_Überstrom":0, "Meldelampe_Überstrom_Korrektur":0, #"Hauptschalter_Ein_Meldung":0, "Hauptschalter_Ein-Meldung_Korrektur":0, #"Werma_Rundumleuchte_Störung":0, "Werma_Rundumleuchte_Störung_Korrektur":0, } flyer_eingabe = { #auskommentiert => kein Übergabeparameter, wird in Klasse berechnet #"Anzahl":0, #"Flyer":0, # äquivalent zu 'Anzahl' #"Anzahl_Schienen:":0, #"Sensor_optisch_Traverse":0, "Sensor_optisch_Traverse_Korrektur":0, #"Sensor_induktiv_Spulenalter_Zug_positionierung":0, #"Bedientableau_2fach":0, #"Interface_Doffer":0, #"Weiche":0, "Weiche_Korrektur":0, #"Weiche_nach_Flyer_bipolar":0, "Dreifachweiche":0, #"Wechsel":0, "Wechsel_Korrektur":0, #"RA_bi_ohne_SPS-Ansteuerung":0, #"RA_bi_abhebbar":0, "RA_bi_abhebbar_Korrektur":0, "RA_bi":4, #"Doppelstreckenantrieb":0, "RA_bi_abhebbar_unger_Schiene":0, #"Meldelampe_Überstrom":0, "Meldelampe_Überstrom_Korrektur":0, #"Hauptschalter_Ein_Meldung":0, "Hauptschalter_Ein-Meldung_Korrektur":0, #"Werma_Rundumleuchte_Störung":0, "Werma_Rundumleuchte_Störung_Korrektur":0, } verbindungsstrecken_w_eingabe = { #auskommentiert => kein Übergabeparameter, wird in Klasse berechnet #"Sensor_optisch_Traverse":0, "Bedientableau_1fach":0, "Bedientableau_2fach":0, "Bedientableau_14fach":0, "Weiche":0, "Dreifachweiche":0, "Kreuzungsweiche":1, "Werma_Rundumleuchte_Störung":0, "RA_uni":0, "RA_uni_ohne_SPS_Ansteuerung":0, "RA_bi":0, "RA_bi_ohne_SPS-Ansteuerung":0, "Doppelstreckenantrieb":0 } puffer_eingabe = { # auskommentiert => kein Übergabeparameter, wird in Klasse berechnet # "Anzahl":0, # "Puffer":0, #äquivalent zu Anzahl # "Anzahl_Pufferstrecken":0, #äquivalent zu Anzahl_Staustrecken # "Anzahl_Staustrecken":0, # "Sensor_optisch_Traverse":0, "Sensor_optisch_Traverse_Korrektur": 1, # "Weiche":0, "Weiche_Korrektur": 0, "RA_bi_ungerade_Schiene": 2, # "Doppelstreckenantrieb":0, # "Meldelampe_Überstrom":0, "Meldelampe_Überstrom_Korrektur": 0, # "Hauptschalter_Ein_Meldung":0, "Hauptschalter_Ein-Meldung_Korrektur": 0, } turm_eingabe = { #auskommentiert => kein Übergabeparameter, wird in Klasse berechnet #"Anzahl":0, #"Turm":0, #äquivalent zu Anzahl #"Anzahl_Wendlungen":0, #äquivalent zu Anzahl_Staustrecken #"Anzahl_Staustrecken":0, #"Sensor_optisch_Traverse":0, #"Weiche":0, #"RA_bi":0, "RA_bi_Korrektur":0, #"RA_bi_ohne_SPS":0, "RA_bi_ohne_SPS_Korrektur":0, #"Bedientableau_2fach":0, } mg = rek.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) # check data of Mengengerüst self.assertEqual(mg.get_value_of_object('rsm_fa', 'Anzahl_RSM'), 14) self.assertEqual(mg.get_value_of_object('rsm_fa', 'Flex_A_Premium'), False) self.assertEqual(mg.get_value_of_object('rsm_fa', 'Getriebe_in_der_Mitte'), False) self.assertEqual(mg.get_value_of_object('rsm_fa', 'RSM_Einfahrt_Ein_Beidseitig'), False) self.assertEqual(mg.get_value_of_object('rsm_fa', 'Sensor_optisch_Traverse'), 20) self.assertEqual(mg.get_value_of_object('rsm_fa', 'Sensor_optisch_Traverse_zusätzlich'), 6) self.assertEqual(mg.get_value_of_object('rsm_fa', 'Bedientableau_1fach'), 14) self.assertEqual(mg.get_value_of_object('rsm_fa', 'Bedientableau_1fach_Korrektur'), 0) self.assertEqual(mg.get_value_of_object('rsm_fa', 'Bedientableau_2fach'), 6) self.assertEqual(mg.get_value_of_object('rsm_fa', 'Bedientableau_2fach_Korrektur'), 4) self.assertEqual(mg.get_value_of_object('rsm_fa', 'Weiche'), 18) self.assertEqual(mg.get_value_of_object('rsm_fa', 'Weiche_Korrektur'), 4) self.assertEqual(mg.get_value_of_object('rsm_fa', 'RRA_bi'), 24) self.assertEqual(mg.get_value_of_object('rsm_fa', 'RRA_bi_Korrektur'), 0) self.assertEqual(mg.get_value_of_object('rsm_fa', 'RRA_bi_auf_Haupstrecke'), 10) self.assertEqual(mg.get_value_of_object('rsm_fa', 'RRA_bi_ohne_SPS_Ansteuerung'), 0) self.assertEqual(mg.get_value_of_object('rsm_fa', 'gemeinsame_Wendung'), 0) self.assertEqual(mg.get_value_of_object('rsm_fa', 'Seilzugschalter'), 0) self.assertEqual(mg.get_value_of_object('rsm_fa', 'Mit_Drucktaster'), 0) self.assertEqual(mg.get_value_of_object('rsm_fa', 'Mit_Drucktaster_Korrektur'), 0) self.assertEqual(mg.get_value_of_object('rsm_fa', 'Meldelampe_Überstrom'), 2) self.assertEqual(mg.get_value_of_object('rsm_fa', 'Meldelampe_Überstrom_Korrektur'), 0) self.assertEqual(mg.get_value_of_object('rsm_fa', 'Hauptschalter_Ein_Meldung'), 2) self.assertEqual(mg.get_value_of_object('rsm_fa', 'Hauptschalter_Ein-Meldung_Korrektur'), 0) self.assertEqual(mg.get_value_of_object('rsm_fa', 'Werma_Rundumleuchte_Störung'), 2) self.assertEqual(mg.get_value_of_object('rsm_fa', 'Werma_Rundumleuchte_Störung_Korrektur'), 0) self.assertEqual(mg.get_value_of_object('rsm_fa', 'klemmkasten_rsm'), 2) # check data of the flyer self.assertEqual(mg.get_value_of_object('flyer_ejet', 'Anzahl'), 4) self.assertEqual(mg.get_value_of_object('flyer_ejet', 'Anzahl_Schienen'), 2) self.assertEqual(mg.get_value_of_object('flyer_ejet', 'Flyer'), 4) self.assertEqual(mg.get_value_of_object('flyer_ejet', 'Sensor_optisch_Traverse'), 28) self.assertEqual(mg.get_value_of_object('flyer_ejet', 'Sensor_optisch_Traverse_Korrektur'), 0) self.assertEqual(mg.get_value_of_object('flyer_ejet', 'Sensor_induktiv_Spulenalter_Zug_positionierung'), 4) self.assertEqual(mg.get_value_of_object('flyer_ejet', 'Bedientableau_2fach'), 4) self.assertEqual(mg.get_value_of_object('flyer_ejet', 'Interface_Doffer'), 4) self.assertEqual(mg.get_value_of_object('flyer_ejet', 'Weiche'), 8) self.assertEqual(mg.get_value_of_object('flyer_ejet', 'Weiche_Korrektur'), 0) self.assertEqual(mg.get_value_of_object('flyer_ejet', 'Weiche_nach_Flyer_bipolar'), 4) self.assertEqual(mg.get_value_of_object('flyer_ejet', 'Dreifachweiche'), 0) self.assertEqual(mg.get_value_of_object('flyer_ejet', 'Wechsel'), 4) self.assertEqual(mg.get_value_of_object('flyer_ejet', 'Wechsel_Korrektur'), 0) self.assertEqual(mg.get_value_of_object('flyer_ejet', 'RA_bi_ohne_SPS-Ansteuerung'), 4) self.assertEqual(mg.get_value_of_object('flyer_ejet', 'RA_bi_abhebbar'), 4) self.assertEqual(mg.get_value_of_object('flyer_ejet', 'RA_bi_abhebbar_Korrektur'), 0) self.assertEqual(mg.get_value_of_object('flyer_ejet', 'RA_bi'), 4) self.assertEqual(mg.get_value_of_object('flyer_ejet', 'Doppelstreckenantrieb'), 4) self.assertEqual(mg.get_value_of_object('flyer_ejet', 'RA_bi_abhebbar_unger_Schiene'), 0) self.assertEqual(mg.get_value_of_object('flyer_ejet', 'Meldelampe_Überstrom'), 4) self.assertEqual(mg.get_value_of_object('flyer_ejet', 'Meldelampe_Überstrom_Korrektur'), 0) self.assertEqual(mg.get_value_of_object('flyer_ejet', 'Hauptschalter_Ein_Meldung'), 4) self.assertEqual(mg.get_value_of_object('flyer_ejet', 'Hauptschalter_Ein-Meldung_Korrektur'), 0) self.assertEqual(mg.get_value_of_object('flyer_ejet', 'Werma_Rundumleuchte_Störung'), 4) self.assertEqual(mg.get_value_of_object('flyer_ejet', 'Werma_Rundumleuchte_Störung_Korrektur'), 0) # Verbindungsstrecken Wechsel self.assertEqual(mg.get_value_of_object('verbindungsstrecken_wechsel', 'Sensor_optisch_Traverse'), 10) self.assertEqual(mg.get_value_of_object('verbindungsstrecken_wechsel', 'Bedientableau_1fach'), 0) self.assertEqual(mg.get_value_of_object('verbindungsstrecken_wechsel', 'Bedientableau_2fach'), 0) self.assertEqual(mg.get_value_of_object('verbindungsstrecken_wechsel', 'Bedientableau_14fach'), 0) self.assertEqual(mg.get_value_of_object('verbindungsstrecken_wechsel', 'Weiche'), 4) self.assertEqual(mg.get_value_of_object('verbindungsstrecken_wechsel', 'Dreifachweiche'), 0) self.assertEqual(mg.get_value_of_object('verbindungsstrecken_wechsel', 'Kreuzungsweiche'), 1) self.assertEqual(mg.get_value_of_object('verbindungsstrecken_wechsel', 'Werma_Rundumleuchte_Störung'), 0) self.assertEqual(mg.get_value_of_object('verbindungsstrecken_wechsel', 'RA_uni'), 0) self.assertEqual(mg.get_value_of_object('verbindungsstrecken_wechsel', 'RA_uni_ohne_SPS_Ansteuerung'), 0) self.assertEqual(mg.get_value_of_object('verbindungsstrecken_wechsel', 'RA_bi'), 0) self.assertEqual(mg.get_value_of_object('verbindungsstrecken_wechsel', 'RA_bi_ohne_SPS-Ansteuerung'), 0) self.assertEqual(mg.get_value_of_object('verbindungsstrecken_wechsel', 'Doppelstreckenantrieb'), 0) # Puffer self.assertEqual(mg.get_value_of_object('puffer', 'Anzahl'), 1) self.assertEqual(mg.get_value_of_object('puffer', 'Anzahl_Staustrecken'), 5) self.assertEqual(mg.get_value_of_object('puffer', 'Sensor_optisch_Traverse'), 6) self.assertEqual(mg.get_value_of_object('puffer', 'Sensor_optisch_Traverse_Korrektur'), 1) self.assertEqual(mg.get_value_of_object('puffer', 'Weiche'), 5) self.assertEqual(mg.get_value_of_object('puffer', 'RA_bi_ungerade_Schiene'), 2) self.assertEqual(mg.get_value_of_object('puffer', 'Weiche_Korrektur'), 0) self.assertEqual(mg.get_value_of_object('puffer', 'Doppelstreckenantrieb'), 2) self.assertEqual(mg.get_value_of_object('puffer', 'Meldelampe_Überstrom'), 1) self.assertEqual(mg.get_value_of_object('puffer', 'Meldelampe_Überstrom_Korrektur'), 0) self.assertEqual(mg.get_value_of_object('puffer', 'Hauptschalter_Ein_Meldung'), 1) self.assertEqual(mg.get_value_of_object('puffer', 'Hauptschalter_Ein-Meldung_Korrektur'), 0) zf = mg.zusammenfassung() self.assertEqual(zf['Gesamtanzahl_Antriebe'], 44) self.assertEqual(zf['Sensor_optisch_Traverse'], 68) self.assertEqual(zf['Sensor_induktiv_Spulenalter_Zug_positionierung'], 4) self.assertEqual(zf['Sensor_Spulenprüfung_voll_leer'], 0) self.assertEqual(zf['Seilzugsschalter'], 0) self.assertEqual(zf['Drucktaster_automatische_Umfahrung'], 0) self.assertEqual(zf['Bedientableau_1fach'], 14) self.assertEqual(zf['Bedientableau_2fach'], 10) self.assertEqual(zf['Bedientableau_14fach'], 0) self.assertEqual(zf['Interface_Putzmaschine'], 0) self.assertEqual(zf['Interface_Doffer'], 4) self.assertEqual(zf['Weiche'], 35) self.assertEqual(zf['Dreifachweiche'], 0) self.assertEqual(zf['Wechsel'], 4) self.assertEqual(zf['Stopper'], 0) self.assertEqual(zf['Meldelampe_Überstrom'], 7) self.assertEqual(zf['Hauptschalter_Ein_Meldung'], 7) self.assertEqual(zf['Werma_Rundumleuchte_Störung'], 6) self.assertEqual(zf['Weiche_nach_PM_bipolar'], 0) self.assertEqual(zf['Kreuzungsweiche'], 1) self.assertEqual(zf['RA_uni'], 4) self.assertEqual(zf['RA_uni_abhebbar'], 0) self.assertEqual(zf['RA_uni_ohne_SPS_Ansteuerung'], 0) self.assertEqual(zf['RA_bi'], 30) self.assertEqual(zf['RA_bi_ohne_SPS-Ansteuerung'], 4) self.assertEqual(zf['RA_bi_abhebbar'], 4) self.assertEqual(zf['Doppelstreckenantrieb'], 6) self.assertEqual(zf['gemeinsame_Wendung'], 0) self.assertEqual(zf['klemmkasten_rsm'], 2) def test_Unittests(): unittest.main() if __name__ == '__main__': test_Unittests()