def test_XOR(self): """ Tests the xor gate on an Neural Network :return: """ inputs = [[0, 0, 1], [0, 1, 1], [1, 1, 1], [1, 0, 1]] answers = [[0], [1], [0], [1]] XOR = Network(3, 2, 3, 1) XOR.training(300000, 0.5, inputs, answers) self.assertEqual(XOR.forward_propagation(inputs[0])[0] < 0.5, True) self.assertEqual(XOR.forward_propagation(inputs[1])[0] > 0.5, True) self.assertEqual(XOR.forward_propagation(inputs[2])[0] > 0.5, True) self.assertEqual(XOR.forward_propagation(inputs[3])[0] < 0.5, True)
def test_nand(self): """ Tests the nand gate on an Neural Network :return: """ inputs = [[0, 0], [0, 1], [1, 1], [1, 0]] answers = [[1], [0], [0], [0]] NAND = Network(1, 1, 2, 1) NAND.training(50000, 0.1, inputs, answers) self.assertEqual(NAND.forward_propagation(inputs[0])[0] > 0.5, True) self.assertEqual(NAND.forward_propagation(inputs[1])[0] < 0.5, True) self.assertEqual(NAND.forward_propagation(inputs[2])[0] < 0.5, True) self.assertEqual(NAND.forward_propagation(inputs[3])[0] < 0.5, True)