예제 #1
0
 def testcase_04(self):
     a = OrGate(2)
     a.set_input(0, True)
     a.set_input(1, True)
     a.execute()
     self.assertEqual(True, a.get_output(0),
                      "Class OrGate Testcase 4 failed.")
예제 #2
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)]
예제 #3
0
 def testcase_01(self):
     a = OrGate(2)
     a.set_input(0, False)
     a.set_input(1, False)
     a.execute()
     self.assertEqual(False, a.get_output(0),
                      "Class OrGate Testcase 1 failed.")
예제 #4
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")
예제 #5
0
 def testcase_05(self):
     a = OrGate(3)
     testdatas = [[False, False, False, False], [False, False, True, True],
                  [False, True, False, True], [False, True, True, True],
                  [True, False, False, True], [True, False, True, True],
                  [True, True, False, True], [True, True, True, True]]
     for testdata in testdatas:
         for i in range(0, 3):
             a.set_input(i, testdata[i])
         a.execute()
         self.assertEqual(
             testdata[3], a.get_output(0),
             "Class OrGate Testcase 5 failed: " + testdata.__str__())
예제 #6
0
 def testcase_04(self):
     a = OrGate()
     a.Input0 = True
     a.Input1 = True
     a.execute()
     self.assertEqual(True, a.Output, "Class OrGate Testcase 4 failed.")
예제 #7
0
 def testcase_01(self):
     a = OrGate()
     a.Input0 = False
     a.Input1 = False
     a.execute()
     self.assertEqual(False, a.Output, "Class OrGate Testcase 1 failed.")
예제 #8
0
 def testcase_04(self):
     a = OrGate()
     a.setInput0(True)
     a.setInput1(True)
     a.execute()
     self.assertTrue(a._Output, "Class OrGate: TestCase04 failed")
예제 #9
0
 def testcase_01(self):
     a = OrGate()
     a.setInput0(False)
     a.setInput1(False)
     a.execute()
     self.assertFalse(a._Output, "Class OrGate: TestCase01 failed")