Merge branch 'tests'
This commit is contained in:
108
tests/basis.cpp
108
tests/basis.cpp
@@ -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;
|
||||
}
|
||||
Reference in New Issue
Block a user