def testAND(self): """ Hier wordt de werking van een AND gate getest """ # Maak de perceptron aan p1 = Perceptron(weights=[0.5, 0.5], bias=0, threshold=1) # Maak de inputs en de outputs aan inputs, outputs = [[0, 0], [0, 1], [1, 0], [1, 1]], [0, 0, 0, 1] # Vergelijk de output met de verwachte output for input, output in zip(inputs, outputs): self.assertEqual(output, p1.predict(input))
def testNOT(self): """ Hier wordt de werking van een NOT gate getest """ # Maak de perceptron aan p3 = Perceptron(weights=[-1], bias=0, threshold=-0.5) # Maak de inputs en de outputs aan inputs, outputs = [[1], [0]], [0, 1] # Vergelijk de output met de verwachte output for input, output in zip(inputs, outputs): self.assertEqual(output, p3.predict(input))
def testPARTY(self): """ Hier wordt de werking van een PARTY gate getest """ # Maak de perceptron aan p5 = Perceptron(weights=[0.6, 0.3, 0.2], bias=0, threshold=0.4) # Maak de inputs en de outputs aan inputs = [[0, 0, 0], [0, 0, 1], [0, 1, 0], [0, 1, 1], [1, 0, 0], [1, 0, 1], [1, 1, 0], [1, 1, 1]] outputs = [0, 0, 0, 1, 1, 1, 1, 1] # Vergelijk de output met de verwachte output for input, output in zip(inputs, outputs): self.assertEqual(output, p5.predict(input))
def testNOR(self): """ Hier wordt de werking van een NOR gate getest """ # Maak de perceptron aan p4 = Perceptron(weights=[-1, -1, -1], bias=0, threshold=0) # Maak de inputs en de outputs aan inputs = [[0, 0, 0], [0, 0, 1], [0, 1, 0], [0, 1, 1], [1, 0, 0], [1, 0, 1], [1, 1, 0], [1, 1, 1]] outputs = [1, 0, 0, 0, 0, 0, 0, 0] # Vergelijk de output met de verwachte output for input, output in zip(inputs, outputs): self.assertEqual(output, p4.predict(input))
def testXOR(self): """ Hier worden de perceptrons, de layers em de netwerk voor een XOR gate aangemaakt en vervolgens de output van de netwerk verglijken met de actuele output. """ # Maak de onderdelen van het netwerk aan p1 = Perceptron(weights=[1, 1], bias=0, threshold=0.5) p2 = Perceptron(weights=[-1,-1], bias=0, threshold=-1.5) layer1 = PerceptronLayer(perceptron=[p1, p2]) p3 = Perceptron(weights=[1,1], bias=0, threshold=2) layer2 = PerceptronLayer(perceptron=[p3]) network = PerceptronNetwork(layers=[layer1, layer2]) # Maak alle mogelijke inputs en de verwachte outputs aan inputs = [[1, 1], [1, 0], [0, 1], [0, 0]] outputs = [[0], [1], [1], [0]] # Vergelijk de output van de netwerk met de verwachte output for input, output in zip(inputs, outputs): self.assertEqual(output, network.feed_forward(input))