Example #1
0
 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)
Example #2
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)
Example #3
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)