Files
NeuralNetworkLib/tests/perceptron_learning.cpp
2016-04-18 16:03:33 +02:00

40 lines
709 B
C++

#include <NeuralNetwork/Learning/PerceptronLearning.h>
#include <gtest/gtest.h>
TEST(PerceptronLearning,XOR) {
NeuralNetwork::FeedForward::Perceptron n(2,1);
n.randomizeWeights();
NeuralNetwork::Learning::PerceptronLearning learn(n);
for(int i=0;i<10;i++) {
learn.teach({1,0},{1});
learn.teach({1,1},{1});
learn.teach({0,0},{0});
learn.teach({0,1},{1});
}
{
std::vector<float> ret =n.computeOutput({1,1});
ASSERT_GT(ret[0], 0.9);
}
{
std::vector<float> ret =n.computeOutput({0,1});
ASSERT_GT(ret[0], 0.9);
}
{
std::vector<float> ret =n.computeOutput({1,0});
ASSERT_GT(ret[0], 0.9);
}
{
std::vector<float> ret =n.computeOutput({0,0});
ASSERT_LT(ret[0], 0.1);
}
}