Example #1
0
    def execute(self):

        #Workaround: Die LogFunc-Klasse ruft bei __init__ die execute-Methode auf um manche Logikgatter zu initialisieren. Zu dem Zeipunkt sind noch keine Input-Werte gesetzt
        if len(self._Inputs) == 0:
            return

        input_a = self.get_input_at(0)
        input_b = self.get_input_at(1)
        input_c = self.get_input_at(2)

        #Logikgatter erzeugen
        ha0 = HalfAdder()
        ha1 = HalfAdder()
        or0 = OrGate()

        #1. Halbaddierer aus a und b
        ha0.set_inputs([input_a, input_b])
        ha0.execute()

        #2. Halbaddierer aus 1. Halbaddierer Carry und c
        ha1.set_inputs([ha0.get_output_carry(), input_c])
        ha1.execute()

        or0.set_inputs([ha0.get_output_sum(), ha1.get_output_sum()])
        or0.execute()

        self._Outputs = [ha1.get_output_carry(), or0.get_output_at(0)]
Example #2
0
 def assert_test_case(self, in0, in1, out, test_id):
     a = OrGate()
     a.set_inputs([in0, in1])
     a.execute()
     if out:
         self.assertTrue(a.get_output_at(0),
                         "Class OrGate: " + test_id + " failed")
     else:
         self.assertFalse(a.get_output_at(0),
                          "Class OrGate: " + test_id + " failed")