Exemple #1
0
 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))
Exemple #2
0
 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))
Exemple #3
0
 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))
Exemple #4
0
 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))
Exemple #5
0
    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))