Merge branch 'tests'

This commit is contained in:
2016-04-18 16:15:35 +02:00
14 changed files with 629 additions and 594 deletions

View File

@@ -4,67 +4,67 @@
#include <NeuralNetwork/Network.h>
#include <iostream>
#include <cassert>
#include <chrono>
#include <gtest/gtest.h>
NEURAL_NETWORK_INIT();
int main() {
{
NeuralNetwork::BasisFunction::Linear l;
assert(39.0==l({1,2,3,5},{1,2,3,5}));
}
{
NeuralNetwork::BasisFunction::Linear l;
assert(88.0==l({1,2,3,5,7},{1,2,3,5,7}));
}
{
NeuralNetwork::BasisFunction::Linear l;
std::vector<float> w;
for(int in=0;in<100;in++) {
w.push_back(2);
}
assert(400.0==l(w,w));
}
{
NeuralNetwork::BasisFunction::Linear l;
std::vector<float> w;
for(int in=0;in<55;in++) {
w.push_back(2);
}
assert(220.0==l(w,w));
}
{
NeuralNetwork::BasisFunction::Product l;
std::vector<float> w({0,0.501,1});
std::vector<float> i({0,0.2,0.3});
TEST(Linear,FourElements) {
NeuralNetwork::BasisFunction::Linear l;
ASSERT_EQ(39.0, l({1,2,3,5},{1,2,3,5}));
}
assert(l(w,i) > 0.05999);
assert(l(w,i) < 0.06001);
}
TEST(Linear,FiveElements) {
NeuralNetwork::BasisFunction::Linear l;
ASSERT_EQ(88.0, l({1,2,3,5,7},{1,2,3,5,7}));
}
{
NeuralNetwork::BasisFunction::Linear l;
std::string tmp = l.serialize().serialize();
NeuralNetwork::BasisFunction::BasisFunction *deserialized =NeuralNetwork::BasisFunction::Factory::deserialize(l.serialize()).release();
assert(tmp==deserialized->serialize().serialize());
delete deserialized;
TEST(Linear,HundredElements) {
NeuralNetwork::BasisFunction::Linear l;
std::vector<float> w;
for(int in=0;in<100;in++) {
w.push_back(2);
}
ASSERT_EQ(400.0, l(w,w));
}
{
NeuralNetwork::BasisFunction::Product l;
std::string tmp = l.serialize().serialize();
NeuralNetwork::BasisFunction::BasisFunction *deserialized =NeuralNetwork::BasisFunction::Factory::deserialize(l.serialize()).release();
assert(tmp==deserialized->serialize().serialize());
delete deserialized;
TEST(Linear,FivetyFiveElements) {
NeuralNetwork::BasisFunction::Linear l;
std::vector<float> w;
for(int in = 0; in < 55; in++) {
w.push_back(2);
}
ASSERT_EQ(220.0, l(w, w));
}
{
NeuralNetwork::BasisFunction::Radial l;
std::string tmp = l.serialize().serialize();
NeuralNetwork::BasisFunction::BasisFunction *deserialized =NeuralNetwork::BasisFunction::Factory::deserialize(l.serialize()).release();
assert(tmp==deserialized->serialize().serialize());
delete deserialized;
}
TEST(Product,Product) {
NeuralNetwork::BasisFunction::Product p;
std::vector<float> w({0,0.501,1});
std::vector<float> 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;
}