Skip to content
Snippets Groups Projects
Commit bd6b1947 authored by Martin Beseda's avatar Martin Beseda
Browse files

ENH: Mock definition of ErrorFunction class was moved to the separate header ErrorFunctionMock.h

parent 5e871a33
No related branches found
No related tags found
No related merge requests found
//
// Created by martin on 3.2.19.
//
#ifndef LIB4NEURO_ERRORFUNCTIONSMOCK_H
#define LIB4NEURO_ERRORFUNCTIONSMOCK_H
#ifdef _WINDOWS
#include <boost/test/included/unit_test.hpp>
#endif
#include "../ErrorFunction/ErrorFunctions.h"
#include "../DataSet/DataSet.h"
#include <turtle/mock.hpp>
using namespace lib4neuro;
MOCK_BASE_CLASS(mock_ErrorFunction, lib4neuro::ErrorFunction)
{
MOCK_METHOD(eval, 3)
MOCK_METHOD(get_dimension, 0)
MOCK_METHOD(calculate_error_gradient, 4)
MOCK_METHOD(get_parameters, 0)
MOCK_METHOD(get_dataset, 0)
MOCK_METHOD(get_network_instance, 0)
MOCK_METHOD(divide_data_train_test, 1)
MOCK_METHOD(return_full_data_set_for_training, 0)
MOCK_METHOD(eval_on_test_data, 2, double(std::vector<double>*, bool), id1)
MOCK_METHOD(eval_on_test_data, 3, double(std::string, std::vector<double>*, bool), id2)
MOCK_METHOD(eval_on_test_data, 3, double(std::ofstream*, std::vector<double>*, bool), id3)
MOCK_METHOD(eval_on_data_set, 3, double(DataSet*, std::vector<double>*, bool), id4)
MOCK_METHOD(eval_on_data_set, 4, double(DataSet*, std::string, std::vector<double>*, bool), id5)
MOCK_METHOD(eval_on_data_set, 5, double(DataSet*, std::ofstream*, std::vector<double>*, bool, bool), id6)
};
#endif //LIB4NEURO_ERRORFUNCTIONSMOCK_H
......@@ -8,8 +8,7 @@
#include "boost_unit_tests_preamble.h"
#include "../ErrorFunction/ErrorFunctions.h"
#include <turtle/mock.hpp>
#include "../ErrorFunction/ErrorFunctionsMock.h"
using namespace lib4neuro;
......@@ -48,24 +47,6 @@ MOCK_BASE_CLASS(mock_network, lib4neuro::NeuralNetwork)
MOCK_METHOD(write_stats, 1, void(std::ofstream*), id9)
};
MOCK_BASE_CLASS(mock_error_fun, ErrorFunction)
{
MOCK_METHOD(eval, 3)
MOCK_METHOD(get_dimension, 0)
MOCK_METHOD(calculate_error_gradient, 4)
MOCK_METHOD(get_parameters, 0)
MOCK_METHOD(get_dataset, 0)
MOCK_METHOD(get_network_instance, 0)
MOCK_METHOD(divide_data_train_test, 1)
MOCK_METHOD(return_full_data_set_for_training, 0)
MOCK_METHOD(eval_on_test_data, 2, double(std::vector<double>*, bool), id1)
MOCK_METHOD(eval_on_test_data, 3, double(std::string, std::vector<double>*, bool), id2)
MOCK_METHOD(eval_on_test_data, 3, double(std::ofstream*, std::vector<double>*, bool), id3)
MOCK_METHOD(eval_on_data_set, 3, double(DataSet*, std::vector<double>*, bool), id4)
MOCK_METHOD(eval_on_data_set, 4, double(DataSet*, std::string, std::vector<double>*, bool), id5)
MOCK_METHOD(eval_on_data_set, 5, double(DataSet*, std::ofstream*, std::vector<double>*, bool, bool), id6)
};
MOCK_BASE_CLASS(mock_dataSet, lib4neuro::DataSet)
{
mock_dataSet(std::vector<std::pair<std::vector<double>, std::vector<double>>> *i)
......@@ -157,14 +138,14 @@ BOOST_AUTO_TEST_SUITE(ErrorFunctions_test);
BOOST_AUTO_TEST_CASE(ErrorFunction_MSE_SUM_Add_Error_Function_Test) {
mock_error_fun f;
mock_ErrorFunction f;
MOCK_EXPECT(f.get_dimension).returns(1);
ErrorSum mse_sum;
BOOST_CHECK_NO_THROW(mse_sum.add_error_function(&f, 1));
}
BOOST_AUTO_TEST_CASE(ErrorFunction_MSE_SUM_Eval_Test) {
mock_error_fun f;
mock_ErrorFunction f;
MOCK_EXPECT(f.get_dimension).returns(1);
MOCK_EXPECT(f.eval).returns(1.75);
ErrorSum mse_sum;
......@@ -179,7 +160,7 @@ BOOST_AUTO_TEST_SUITE(ErrorFunctions_test);
BOOST_AUTO_TEST_CASE(ErrorFunction_MSE_SUM_Get_Dimension_test) {
ErrorSum mse_sum;
BOOST_CHECK_EQUAL(0, mse_sum.get_dimension());
mock_error_fun f;
mock_ErrorFunction f;
MOCK_EXPECT(f.get_dimension).returns(2);
MOCK_EXPECT(f.eval).returns(1.75);
......
......@@ -7,46 +7,12 @@
#define BOOST_TEST_MODULE ParticleSwarm_test
#ifdef _WINDOWS
#include <boost/test/included/unit_test.hpp>
//#include <turtle/mock.hpp>
#endif
#ifndef BOOST_TEST_DYN_LINK
#define BOOST_TEST_DYN_LINK
#endif
#ifndef BOOST_TEST_NO_MAIN
#define BOOST_TEST_NO_MAIN
#endif
#include <turtle/mock.hpp>
#include <boost/test/unit_test.hpp>
#include <boost/test/output_test_stream.hpp>
#include "boost_unit_tests_preamble.h"
#include "../ErrorFunction/ErrorFunctions.h"
#include "../ErrorFunction/ErrorFunctionsMock.h"
#include "../LearningMethods/ParticleSwarm.h"
using namespace lib4neuro;
MOCK_BASE_CLASS(mock_Error, ErrorFunction)
{
MOCK_METHOD(eval, 3)
MOCK_METHOD(get_dimension, 0)
MOCK_METHOD(calculate_error_gradient, 4)
MOCK_METHOD(get_parameters, 0)
MOCK_METHOD(get_dataset, 0)
MOCK_METHOD(get_network_instance, 0)
MOCK_METHOD(divide_data_train_test, 1)
MOCK_METHOD(return_full_data_set_for_training, 0)
MOCK_METHOD(eval_on_test_data, 2, double(std::vector<double>*, bool), id1)
MOCK_METHOD(eval_on_test_data, 3, double(std::string, std::vector<double>*, bool), id2)
MOCK_METHOD(eval_on_test_data, 3, double(std::ofstream*, std::vector<double>*, bool), id3)
MOCK_METHOD(eval_on_data_set, 3, double(DataSet*, std::vector<double>*, bool), id4)
MOCK_METHOD(eval_on_data_set, 4, double(DataSet*, std::string, std::vector<double>*, bool), id5)
MOCK_METHOD(eval_on_data_set, 5, double(DataSet*, std::ofstream*, std::vector<double>*, bool, bool), id6)
};
/**
* Boost testing suite for testing ParticleSwarm.h
*/
......@@ -79,7 +45,7 @@ BOOST_AUTO_TEST_SUITE(ParticleSwarm_test)
domain_bound.push_back(5);
mock_Error error;
mock_ErrorFunction error;
MOCK_EXPECT(error.get_dimension).returns(5);
MOCK_EXPECT(error.eval).returns(0.8);
......
......@@ -7,44 +7,12 @@
#define BOOST_TEST_MODULE Particle_test
#ifdef _WINDOWS
#include <boost/test/included/unit_test.hpp>
//#include <turtle/mock.hpp>
#endif
#ifndef BOOST_TEST_DYN_LINK
#define BOOST_TEST_DYN_LINK
#endif
#ifndef BOOST_TEST_NO_MAIN
#define BOOST_TEST_NO_MAIN
#endif
#include <turtle/mock.hpp>
#include <boost/test/unit_test.hpp>
#include <boost/test/output_test_stream.hpp>
#include "boost_unit_tests_preamble.h"
#include "../ErrorFunction/ErrorFunctionsMock.h"
#include "../LearningMethods/ParticleSwarm.h"
using namespace lib4neuro;
MOCK_BASE_CLASS(mock_Error, ErrorFunction)
{
MOCK_METHOD(eval, 3)
MOCK_METHOD(get_dimension, 0)
MOCK_METHOD(calculate_error_gradient, 4)
MOCK_METHOD(get_parameters, 0)
MOCK_METHOD(get_dataset, 0)
MOCK_METHOD(get_network_instance, 0)
MOCK_METHOD(divide_data_train_test, 1)
MOCK_METHOD(return_full_data_set_for_training, 0)
MOCK_METHOD(eval_on_test_data, 2, double(std::vector<double>*, bool), id1)
MOCK_METHOD(eval_on_test_data, 3, double(std::string, std::vector<double>*, bool), id2)
MOCK_METHOD(eval_on_test_data, 3, double(std::ofstream*, std::vector<double>*, bool), id3)
MOCK_METHOD(eval_on_data_set, 3, double(DataSet*, std::vector<double>*, bool), id4)
MOCK_METHOD(eval_on_data_set, 4, double(DataSet*, std::string, std::vector<double>*, bool), id5)
MOCK_METHOD(eval_on_data_set, 5, double(DataSet*, std::ofstream*, std::vector<double>*, bool, bool), id6)
};
/**
* Boost testing suite for testing ParticleSwarm.h
* TODO
......@@ -53,7 +21,7 @@ BOOST_AUTO_TEST_SUITE(Particle_test)
BOOST_AUTO_TEST_CASE(Particle_construction_test) {
std::vector<double> domain_bound{ 1, 2, 3, 4, 5 };
mock_Error error;
mock_ErrorFunction error;
MOCK_EXPECT(error.get_dimension).once().returns(5);
MOCK_EXPECT(error.eval).once().returns(0.8);
BOOST_CHECK_NO_THROW(Particle(&error, &domain_bound));
......@@ -61,7 +29,7 @@ BOOST_AUTO_TEST_CASE(Particle_construction_test) {
BOOST_AUTO_TEST_CASE(Particle_get_coordinate_test) {
std::vector<double> domain_bound{ 1, 2, 3, 4, 5 };
mock_Error error;
mock_ErrorFunction error;
MOCK_EXPECT(error.get_dimension).returns(5);
MOCK_EXPECT(error.eval).returns(0.8);
......@@ -74,7 +42,7 @@ BOOST_AUTO_TEST_CASE(Particle_get_coordinate_test) {
BOOST_AUTO_TEST_CASE(Particle_get_optimal_value_test) {
std::vector<double> domain_bound{ 1, 2, 3, 4, 5 };
mock_Error error;
mock_ErrorFunction error;
MOCK_EXPECT(error.get_dimension).returns(5);
MOCK_EXPECT(error.eval).returns(0.8);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment