added tests

This commit is contained in:
2015-08-29 16:44:09 +02:00
parent ab089b636d
commit b42d0d8f64
3 changed files with 93 additions and 5 deletions

View File

@@ -12,18 +12,28 @@ class X: public Shin::Problem
}
};
class X1: public Shin::Problem
{
protected:
std::vector<float> representation() const
{
return std::vector<float>({1});
}
};
int main()
{
Shin::NeuralNetwork::FeedForward n({2,4,2});
Shin::NeuralNetwork::FeedForward nq({2,4,2});
if(n[1].size() != 4)
NeuralNetwork::FeedForward n({2,4,2});
NeuralNetwork::FeedForward nq({2,4,2});
if(n[2].size() != 4)
{
std::cout << "Actual size:" << n[0].size();
std::cout << "1) Actual size:" << n[1].size();
return 1;
}
if(nq[1].size() != 4)
{
std::cout << "QUICK Actual size:" << nq[0].size();
std::cout << "QUICK Actual size:" << nq[1].size();
return 1;
}

72
tests/nn-05.cpp Normal file
View File

@@ -0,0 +1,72 @@
#include "../src/NeuralNetwork/FeedForward"
#include <iostream>
#include <stdlib.h>
int main()
{
srand(time(NULL));
NeuralNetwork::FeedForward ns({1,1});
ns[0][0].setPotential(0);
ns[1][1].setWeight(0,0);
ns[1][1].setWeight(1,1);
Shin::Solution ss =ns.solve(Shin::Problem({1}));
if(ss[0] < 0.689874481 || ss[0] > 0.69)
{
std::cout << "1) Wrong counter: shoul be 0.626961, is: " << ss[0];
return 1;
}
NeuralNetwork::FeedForward xorF({2,2,1},0.8);
xorF[1][1].setWeight(0,-6.06);
xorF[1][1].setWeight(1,-11.62);
xorF[1][1].setWeight(2,10.99);
xorF[1][2].setWeight(0,-7.19);
xorF[1][2].setWeight(1,12.88);
xorF[1][2].setWeight(2,-13-13);
xorF[2][1].setWeight(0,-6.56);
xorF[2][1].setWeight(1,13.34);
xorF[2][1].setWeight(2,-7.19);
ss= xorF.solve(Shin::Problem({0,1}));
if(ss[0] > 1 || ss[0] < 0.98 )
{
std::cout << "2) wrong output";
return 1;
}
ss= xorF.solve(Shin::Problem({0,1}));
if(ss[0] > 1 || ss[0] < 0.98 )
{
std::cout << "3) wrong output";
return 1;
}
ss= xorF.solve(Shin::Problem({0,0}));
if(ss[0] <0 || ss[0] > 0.06 )
{
std::cout << "4) wrong output";
return 1;
}
ss= xorF.solve(Shin::Problem({1,1}));
if(ss[0] <0 || ss[0] > 0.06 )
{
std::cout << "5) wrong output";
return 1;
}
return 0;
}