#include "../src/NeuralNetwork/FeedForward" #include #include int main() { srand(time(NULL)); NeuralNetwork::FeedForward ns({1,1}); ns[1][0].setWeight(-1,0); ns[1][0].setWeight(0,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][0].setWeight(-1,-6.06); xorF[1][0].setWeight(0,-11.62); xorF[1][0].setWeight(1,10.99); xorF[1][1].setWeight(-1,-7.19); xorF[1][1].setWeight(0,12.88); xorF[1][1].setWeight(1,-13-13); xorF[2][0].setWeight(-1,-6.56); xorF[2][0].setWeight(0,13.34); xorF[2][0].setWeight(1,-7.19); ss= xorF.solve(Shin::Problem({0,1})); if(ss[0] > 1 || ss[0] < 0.98 ) { std::cout << "2) wrong output "<< ss[0] << "\n"; return 1; } ss= xorF.solve(Shin::Problem({0,1})); if(ss[0] > 1 || ss[0] < 0.98 ) { std::cout << "3) wrong output "<< ss[0]; return 1; } ss= xorF.solve(Shin::Problem({0,0})); if(ss[0] <0 || ss[0] > 0.06 ) { std::cout << "4) wrong output "<< ss[0] ; return 1; } ss= xorF.solve(Shin::Problem({1,1})); if(ss[0] <0 || ss[0] > 0.06 ) { std::cout << "5) wrong output "<< ss[0]; return 1; } return 0; }