diff --git a/CMakeLists.txt b/CMakeLists.txt index 95951e39bdcb1b68de9d1930b709ce8535d6529f..52cdc9fc7d0f4b685784569f6e2c4e8d4b3a6cfd 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -78,13 +78,13 @@ endif() message("Detecting available cores count...") include(ProcessorCount) ProcessorCount(N_CORES) -if(n_cores GREATER 1) +if(N_CORES GREATER 1) math(EXPR N_CORES "${N_CORES}-1") - message("Build will be performed on ${N_CORES} cores.") set(CTEST_BUILD_FLAGS -j${N_CORES}) set(ENV{N_CORES} ${N_CORES}) set(ctest_test_args ${ctest_test_args} PARALLEL_LEVEL ${N_CORES}) endif() +message("Build will be performed on ${N_CORES} cores.") #-------------------------# # Find external libraries # @@ -118,31 +118,19 @@ elseif(NOT Boost_FOUND) message(FATAL_ERROR "Boost was not found! Set variables BOOST_LIBRARYDIR and BOOST_INCLUDEDIR manually or set ALLOW_DEPENDENCIES_DOWNLOAD to ON to allow automatic download and compilation of Boost.") endif() -#find_package(Exprtk) -# -#if(NOT EXPRTK_FOUND AND ALLOW_DEPENDENCIES_DOWNLOAD) -# message("Exprt will be downloaded and compiled locally in 'external_dependencies' folder.") -# include(DownloadExprtk) -#endif() -# -#find_package(Turtle) -# -#if(NOT TURTLE_FOUND AND ALLOW_DEPENDENCIES_DOWNLOAD) -# message("Turtle will be downloaded and compiled locally in 'external_dependencies folder.") -# include(DownloadTurtle) -#endif() -# -# -#set(Boost_USE_MULTITHREADED ON) -#set(Boost_DEBUG OFF) -# -# -# -#find_package(exprtk) -#message("EXPRTK_INCLUDE_DIRS: ${EXPRTK_INCLUDE_DIRS}") -# -#find_package(Turtle) -#message("TURTLE_INCLUDE_DIR: ${TURTLE_INCLUDE_DIR}") +find_package(Exprtk) + +if(NOT EXPRTK_FOUND AND ALLOW_DEPENDENCIES_DOWNLOAD) + message("Exprt will be downloaded and compiled locally in 'external_dependencies' folder.") + include(DownloadExprtk) +endif() + +find_package(Turtle) + +if(NOT TURTLE_FOUND AND ALLOW_DEPENDENCIES_DOWNLOAD) + message("Turtle will be downloaded and compiled locally in 'external_dependencies folder.") + include(DownloadTurtle) +endif() #---------------# # Set variables # diff --git a/DownloadBoost.cmake b/DownloadBoost.cmake index fd4704d8896e946e7d6d3f1df1d0d4564b7beb24..832d0273bdd171d4797f2bab97ee0dcd5e78032a 100644 --- a/DownloadBoost.cmake +++ b/DownloadBoost.cmake @@ -20,7 +20,12 @@ FetchContent_Declare( libs/predef libs/move libs/io libs/iterator libs/detail libs/spirit libs/optional libs/function libs/type_index libs/bind - libs/container_hash libs/array + libs/container_hash libs/array libs/test + libs/timer libs/exception libs/algorithm + libs/range libs/numeric libs/format + libs/lexical_cast libs/concept_check + libs/container libs/math libs/function_types + libs/typeof ) set(FETCHCONTENT_QUIET FALSE) diff --git a/clean.sh b/clean.sh index 008a291a0a230195ee0297a5e5c9a1e4f2c4c850..3a0e8d6fe8123e85a8511410c6b100e402ed9ae9 100755 --- a/clean.sh +++ b/clean.sh @@ -10,3 +10,4 @@ rm -f CMakeCache.txt rm -f cmake_install.cmake src/cmake_install.cmake rm -rf CMakeFiles src/CMakeFiles src/examples/CMakeFiles src/tests/CMakeFiles rm -rf external_dependencies/* +rm -rf _deps diff --git a/src/ErrorFunction/ErrorFunctions.h b/src/ErrorFunction/ErrorFunctions.h index b61430643b4244921b3d72638dab61c6098ebf93..3699ca5d632f1ed72a03ec959fed836e08f62dc2 100644 --- a/src/ErrorFunction/ErrorFunctions.h +++ b/src/ErrorFunction/ErrorFunctions.h @@ -140,7 +140,6 @@ namespace lib4neuro { bool denormalize_data = true, bool verbose = false) = 0; - protected: /** diff --git a/src/tests/ErrorFunctions_test.cpp b/src/tests/ErrorFunctions_test.cpp index d0849efa79cc36ca0ddc6e544a9e56f46d0bf45f..ef3210b758d28f069b172f94c4f62d84eddcb1e7 100644 --- a/src/tests/ErrorFunctions_test.cpp +++ b/src/tests/ErrorFunctions_test.cpp @@ -50,7 +50,7 @@ MOCK_BASE_CLASS(mock_network, lib4neuro::NeuralNetwork) MOCK_BASE_CLASS(mock_error_fun, ErrorFunction) { - MOCK_METHOD(eval, 1) + MOCK_METHOD(eval, 3) MOCK_METHOD(get_dimension, 0) MOCK_METHOD(calculate_error_gradient, 4) MOCK_METHOD(get_parameters, 0) @@ -58,12 +58,12 @@ MOCK_BASE_CLASS(mock_error_fun, ErrorFunction) 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, 1, double(std::vector<double>*), id1) - MOCK_METHOD(eval_on_test_data, 2, double(std::string, std::vector<double>*), id2) - MOCK_METHOD(eval_on_test_data, 2, double(std::ofstream*, std::vector<double>*), id3) - MOCK_METHOD(eval_on_data_set, 2, double(DataSet*, std::vector<double>*), id4) - MOCK_METHOD(eval_on_data_set, 3, double(DataSet*, std::string, std::vector<double>*), id5) - MOCK_METHOD(eval_on_data_set, 3, double(DataSet*, std::ofstream*, std::vector<double>*), id6) + 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) diff --git a/src/tests/ParticleSwarm_test.cpp b/src/tests/ParticleSwarm_test.cpp index 18116cf8c4d2832ea34507cdcdb031ec8affeae8..134d2d6df2f87ac32c64ed5c37d27368509c7e8c 100644 --- a/src/tests/ParticleSwarm_test.cpp +++ b/src/tests/ParticleSwarm_test.cpp @@ -31,7 +31,7 @@ using namespace lib4neuro; MOCK_BASE_CLASS(mock_Error, ErrorFunction) { - MOCK_METHOD(eval, 1) + MOCK_METHOD(eval, 3) MOCK_METHOD(get_dimension, 0) MOCK_METHOD(calculate_error_gradient, 4) MOCK_METHOD(get_parameters, 0) @@ -39,12 +39,12 @@ MOCK_BASE_CLASS(mock_Error, ErrorFunction) 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, 1, double(std::vector<double>*), id1) - MOCK_METHOD(eval_on_test_data, 2, double(std::string, std::vector<double>*), id2) - MOCK_METHOD(eval_on_test_data, 2, double(std::ofstream*, std::vector<double>*), id3) - MOCK_METHOD(eval_on_data_set, 2, double(DataSet*, std::vector<double>*), id4) - MOCK_METHOD(eval_on_data_set, 3, double(DataSet*, std::string, std::vector<double>*), id5) - MOCK_METHOD(eval_on_data_set, 3, double(DataSet*, std::ofstream*, std::vector<double>*), id6) + 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) }; /** diff --git a/src/tests/Particle_test.cpp b/src/tests/Particle_test.cpp index 0405bec0a34337c6c43e3ee5376dccc10dbf2051..f7c85a545ff119163194265be3dc4ab4e222eaa1 100644 --- a/src/tests/Particle_test.cpp +++ b/src/tests/Particle_test.cpp @@ -30,22 +30,21 @@ using namespace lib4neuro; MOCK_BASE_CLASS(mock_Error, ErrorFunction) { - MOCK_METHOD(eval, 1) - 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, 1, double(std::vector<double>*), id1) - MOCK_METHOD(eval_on_test_data, 2, double(std::string, std::vector<double>*), id2) - MOCK_METHOD(eval_on_test_data, 2, double(std::ofstream*, std::vector<double>*), id3) - MOCK_METHOD(eval_on_data_set, 2, double(DataSet*, std::vector<double>*), id4) - MOCK_METHOD(eval_on_data_set, 3, double(DataSet*, std::string, std::vector<double>*), id5) - MOCK_METHOD(eval_on_data_set, 3, double(DataSet*, std::ofstream*, std::vector<double>*), id6) + 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