def test_xor_gate(self): input1 = Neuron(value=1, weight=1) #1 input2 = Neuron(value=1, weight=1) #1 input3 = Neuron(weight=1, threshold=0.5, neuron_input_list=[input1, input2]) input4 = Neuron(weight=-1, threshold=1.5, neuron_input_list=[input1, input2]) xor_gate = Neuron(threshold=0.5, neuron_input_list=[input3, input4]) self.assertEquals(xor_gate.fire(), 0) input1 = Neuron(value=1, weight=1) #1 input2 = Neuron(weight=1) #0 input3 = Neuron(weight=1, threshold=0.5, neuron_input_list=[input1, input2]) input4 = Neuron(weight=-1, threshold=1.5, neuron_input_list=[input1, input2]) xor_gate = Neuron(threshold=0.5, neuron_input_list=[input3, input4]) self.assertEquals(xor_gate.fire(), 1) input1 = Neuron(value=1, weight=1) #1 input2 = Neuron(weight=1) #0 input3 = Neuron(weight=1, threshold=0.5, neuron_input_list=[input2, input1]) input4 = Neuron(weight=-1, threshold=1.5, neuron_input_list=[input1, input2]) xor_gate = Neuron(threshold=0.5, neuron_input_list=[input4, input3]) self.assertEquals(xor_gate.fire(), 1) input1 = Neuron(weight=1) #0 input2 = Neuron(weight=1) #0 input3 = Neuron(weight=1, threshold=0.5, neuron_input_list=[input1, input2]) input4 = Neuron(weight=-1, threshold=1.5, neuron_input_list=[input1, input2]) xor_gate = Neuron(threshold=0.5, neuron_input_list=[input3, input4]) self.assertEquals(xor_gate.fire(), 0) #- XOR API -# in1 = Neuron(value=1, weight=1) #1 in2 = Neuron(value=1, weight=1) #1 xor_gate = Neuron.xor_gate() xor_gate.set_inputs([in1, in2]) self.assertEqual(xor_gate.fire(), 0) in1 = Neuron(value=1, weight=1) #1 in2 = Neuron(weight=1) #0 xor_gate = Neuron.xor_gate() xor_gate.set_inputs([in1, in2]) self.assertEqual(xor_gate.fire(), 1) xor_gate.set_inputs([in2, in1]) self.assertEqual(xor_gate.fire(), 1) xor_gate.set_inputs([in2, in2]) self.assertEqual(xor_gate.fire(), 0)
def test_and_gate(self): input3 = Neuron(value=1, weight=1) #1 input4 = Neuron(value=1, weight=1) #1 self.assertEqual(input3.fire(), 1) self.assertEqual(input4.fire(), 1) and_gate = Neuron(threshold=1.5, neuron_input_list=[input3, input4]) self.assertEqual(and_gate.fire(), 1) # True & True = True input5 = Neuron(value=0, weight=1) #0 input6 = Neuron(value=1, weight=1) #1 self.assertEqual(input5.fire(), 0) self.assertEqual(input6.fire(), 1) and_gate2 = Neuron(threshold=1.5, neuron_input_list=[input5, input6]) self.assertEqual(and_gate2.fire(), 0) # True & False = False and_gate3 = Neuron(threshold=1.5, neuron_input_list=[input6, input5]) self.assertEqual(and_gate3.fire(), 0) # False & True = False input7 = Neuron(weight=1) #0 input8 = Neuron(weight=1) #0 self.assertEqual(input7.fire(), 0) self.assertEqual(input8.fire(), 0) and_gate4 = Neuron(threshold=1.5, neuron_input_list=[input7, input8]) self.assertEqual(and_gate4.fire(), 0) # False & False = False #- Test and API -# in1 = Neuron(value=1, weight=1) #1 in2 = Neuron(value=1, weight=1) #1 and_gate = Neuron.and_gate() and_gate.set_inputs([in1, in2]) self.assertEqual(and_gate.fire(), 1) in1 = Neuron(value=1, weight=1) #1 in2 = Neuron(weight=1) #0 self.assertEquals(in1.fire(), 1) self.assertEquals(in2.fire(), 0) and_gate = Neuron.and_gate() and_gate.set_inputs([in1, in2]) self.assertEqual(and_gate.fire(), 0) and_gate.set_inputs([in2, in1]) self.assertEqual(and_gate.fire(), 0) and_gate.set_inputs([in2, in2]) self.assertEqual(and_gate.fire(), 0)
def test_or_gate(self): input1 = Neuron(value=1, weight=1) input2 = Neuron(value=1, weight=1) or_gate = Neuron(threshold=.09, neuron_input_list=[input1, input2]) self.assertEqual(or_gate.fire(), 1) # True or True = True input3 = Neuron(weight=1) # 0 input4 = Neuron(value=1, weight=1) # 1 or_gate2 = Neuron(threshold=.09, neuron_input_list=[input3, input4]) self.assertEqual(or_gate2.fire(), 1) # False or True = True or_gate3 = Neuron(threshold=.09, neuron_input_list=[input4, input3]) self.assertEqual(or_gate3.fire(), 1) # True or False = True input5 = Neuron(weight=1) # 0 input6 = Neuron(weight=1) # 0 or_gate4 = Neuron(threshold=.09, neuron_input_list=[input5, input6]) self.assertEqual(or_gate4.fire(), 0) # False or False = False #- OR API -# in1 = Neuron(value=1, weight=1) #1 in2 = Neuron(value=1, weight=1) #1 or_gate = Neuron.or_gate() or_gate.set_inputs([in1, in2]) self.assertEqual(or_gate.fire(), 1) in1 = Neuron(value=1, weight=1) #1 in2 = Neuron(weight=1) #0 or_gate = Neuron.or_gate() or_gate.set_inputs([in1, in2]) self.assertEqual(or_gate.fire(), 1) or_gate.set_inputs([in2, in1]) self.assertEqual(or_gate.fire(), 1) or_gate.set_inputs([in2, in2]) self.assertEqual(or_gate.fire(), 0)