#include "../src/NeuronNetwork/FeedForward" #include "../src/NeuronNetwork/FeedForwardQuick.h" #include class X: public Shin::NeuronNetwork::Problem { protected: std::vector representation() const { return std::vector({1,1}); } }; int main() { Shin::NeuronNetwork::FeedForwardNetwork n({2,4,2}); Shin::NeuronNetwork::FeedForwardNetworkQuick nq({2,4,2}); if(n[1]->size() != 4) { std::cout << "Actual size:" << n[0]->size(); return 1; } if(nq[1]->size() != 4) { std::cout << "QUICK Actual size:" << nq[0]->size(); return 1; } n[2]->operator[](0)->setPotential(25); nq[2]->operator[](0)->setPotential(25); std::cout << "Potential: " << n[2]->operator[](0)->getPotential() << "\n"; std::cout << "Potential: " << nq[2]->operator[](0)->getPotential() << "\n"; Shin::NeuronNetwork::Solution s =n.solve(X()); Shin::NeuronNetwork::Solution sq =nq.solve(X()); if(s.size()!=2) { std::cout << "1"; return 1; } for(int i=0;i<2;i++) { if(s[i]!=sq[i]) { std::cout << " 4 - " << i << " expected "<operator[](0)->setWeight(0,26.0); nq[2]->operator[](0)->setWeight(0,26.0); s =n.solve(X()); sq =n.solve(X()); if(s.size()!=2) { std::cout << "a1"; return 1; } if(s[0]!=1) { std::cout << "a2"; return 1; } if(s[1]!=1) { std::cout << "a3"; return 1; } for(int i=0;i<2;i++) { if(s[i]!=sq[i]) { std::cout << " a4 - " << i << " expected "<