#include #include #include #include #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Weffc++" #include #pragma GCC diagnostic pop NEURAL_NETWORK_INIT(); TEST(Linear,FourElements) { NeuralNetwork::BasisFunction::Linear l; ASSERT_EQ(39.0, l({1,2,3,5},{1,2,3,5})); } TEST(Linear,FiveElements) { NeuralNetwork::BasisFunction::Linear l; ASSERT_EQ(88.0, l({1,2,3,5,7},{1,2,3,5,7})); } TEST(Linear,HundredElements) { NeuralNetwork::BasisFunction::Linear l; std::vector w; for(int in=0;in<100;in++) { w.push_back(2); } ASSERT_EQ(400.0, l(w,w)); } TEST(Linear,FivetyFiveElements) { NeuralNetwork::BasisFunction::Linear l; std::vector w; for(int in = 0; in < 55; in++) { w.push_back(2); } ASSERT_EQ(220.0, l(w, w)); } TEST(Product,Product) { NeuralNetwork::BasisFunction::Product p; std::vector w({0,0.501,1}); std::vector i({0,0.2,0.3}); ASSERT_GT(p(w,i), 0.05999); ASSERT_LT(p(w,i), 0.06001); } TEST(Linear, Serialize) { NeuralNetwork::BasisFunction::Linear l; std::string tmp = l.serialize().serialize(); NeuralNetwork::BasisFunction::BasisFunction *deserialized =NeuralNetwork::BasisFunction::Factory::deserialize(l.serialize()).release(); ASSERT_EQ(tmp, deserialized->serialize().serialize()); delete deserialized; } TEST(Product, Serialize) { NeuralNetwork::BasisFunction::Product l; std::string tmp = l.serialize().serialize(); NeuralNetwork::BasisFunction::BasisFunction *deserialized =NeuralNetwork::BasisFunction::Factory::deserialize(l.serialize()).release(); ASSERT_EQ(tmp, deserialized->serialize().serialize()); delete deserialized; } TEST(Radial, Serialize) { NeuralNetwork::BasisFunction::Radial l; std::string tmp = l.serialize().serialize(); NeuralNetwork::BasisFunction::BasisFunction *deserialized =NeuralNetwork::BasisFunction::Factory::deserialize(l.serialize()).release(); ASSERT_EQ(tmp, deserialized->serialize().serialize()); delete deserialized; }