From 6b1f9b3c3c31e59fe00b1a1a7054d9c3fd3a59b5 Mon Sep 17 00:00:00 2001 From: Thomas <purcell@fhi-berlin.mpg.de> Date: Tue, 31 Aug 2021 09:21:55 +0200 Subject: [PATCH] Finialize all global variables after each google test Prevent global variables persisting across all tests --- src/classification/prop_sorted_d_mat.cpp | 19 +++++++++++--- src/classification/prop_sorted_d_mat.hpp | 9 +++++-- .../solver/SISSOClassifier.cpp | 2 +- .../value_storage/nodes_value_containers.cpp | 2 +- .../value_storage/nodes_value_containers.hpp | 2 +- src/loss_function/LossFunctionConvexHull.cpp | 2 +- src/main.cpp | 2 ++ src/mpi_interface/MPI_Ops.cpp | 8 ++++++ .../bindings_docstring_keyed.cpp | 2 +- src/utils/compare_features.cpp | 6 ++++- src/utils/compare_features.hpp | 6 ++++- .../classification/test_convex_hull_1d.cc | 6 ++++- .../classification/test_lp_wrapper.cc | 12 +++++++-- .../classification/test_prop_sorted_d_mat.cc | 5 ++-- .../classification/test_svm_wrapper.cc | 5 ++++ .../solver/test_sisso_classifier.cc | 8 +++++- .../solver/test_sisso_log_regressor.cc | 8 +++++- .../solver/test_sisso_regressor.cc | 6 +++++ .../feature_generation/test_abs_diff_node.cc | 5 ++++ .../feature_generation/test_abs_node.cc | 5 ++++ .../feature_generation/test_add_node.cc | 5 ++++ .../feature_generation/test_cb_node.cc | 5 ++++ .../feature_generation/test_cbrt_node.cc | 5 ++++ .../feature_generation/test_cos_node.cc | 5 ++++ .../feature_generation/test_div_node.cc | 5 ++++ .../feature_generation/test_exp_node.cc | 5 ++++ .../feature_generation/test_feat_node.cc | 5 ++++ .../feature_generation/test_inv_node.cc | 5 ++++ .../feature_generation/test_log_node.cc | 5 ++++ .../feature_generation/test_model_node.cc | 5 ++++ .../feature_generation/test_mult_node.cc | 5 ++++ .../feature_generation/test_neg_exp_node.cc | 5 ++++ .../feature_generation/test_sin_node.cc | 5 ++++ .../feature_generation/test_six_pow_node.cc | 5 ++++ .../feature_generation/test_sq_node.cc | 5 ++++ .../feature_generation/test_sqrt_node.cc | 5 ++++ .../feature_generation/test_sub_node.cc | 5 ++++ .../feature_space/test_feat_space.cc | 12 ++++++--- .../parameterization/test_abs_diff_node.cc | 5 ++++ .../parameterization/test_abs_node.cc | 5 ++++ .../parameterization/test_add_node.cc | 5 ++++ .../parameterization/test_cb_node.cc | 5 ++++ .../parameterization/test_cbrt_node.cc | 5 ++++ .../parameterization/test_cos_node.cc | 5 ++++ .../parameterization/test_div_node.cc | 5 ++++ .../parameterization/test_exp_node.cc | 5 ++++ .../parameterization/test_inv_node.cc | 5 ++++ .../parameterization/test_log_node.cc | 5 ++++ .../parameterization/test_mult_node.cc | 5 ++++ .../parameterization/test_neg_exp_node.cc | 5 ++++ .../parameterization/test_sin_node.cc | 5 ++++ .../parameterization/test_six_pow_node.cc | 5 ++++ .../parameterization/test_sq_node.cc | 5 ++++ .../parameterization/test_sqrt_node.cc | 5 ++++ .../parameterization/test_sub_node.cc | 5 ++++ .../feature_creation/utils/test_utils.cc | 5 ++++ .../value_storage/test_value_storage.cc | 26 +++++++++++++++++++ tests/googletest/inputs/input_parser.cc | 12 ++++++--- .../loss_function/test_convex_hull_loss.cc | 11 ++++++++ .../loss_function/test_log_pearson_loss.cc | 5 ++++ .../loss_function/test_pearson_loss.cc | 5 ++++ tests/googletest/nl_opt/nl_opt_classifier.cc | 6 +++++ .../googletest/nl_opt/nl_opt_log_regressor.cc | 6 +++++ tests/googletest/nl_opt/nl_opt_regressor.cc | 6 +++++ .../googletest/utils/test_compare_features.cc | 1 + tests/googletest/utils/test_project.cc | 1 + 66 files changed, 360 insertions(+), 26 deletions(-) diff --git a/src/classification/prop_sorted_d_mat.cpp b/src/classification/prop_sorted_d_mat.cpp index 386ca307..8d10aa70 100644 --- a/src/classification/prop_sorted_d_mat.cpp +++ b/src/classification/prop_sorted_d_mat.cpp @@ -31,7 +31,7 @@ int prop_sorted_d_mat::N_CLASS = 0; int prop_sorted_d_mat::N_FEATURES = 0; int prop_sorted_d_mat::N_SAMPLES = 0; -void prop_sorted_d_mat::initialize_sroted_d_matrix_arr(int n_feat, int n_task, int n_class, std::vector<int> n_samples_per_class) +void prop_sorted_d_mat::initialize_sorted_d_matrix_arr(int n_feat, int n_task, int n_class, std::vector<int> n_samples_per_class) { if(n_samples_per_class.size() != n_task * n_class) { @@ -51,11 +51,24 @@ void prop_sorted_d_mat::initialize_sroted_d_matrix_arr(int n_feat, int n_task, i } N_SAMPLES = std::accumulate(N_SAMPLES_PER_CLASS.begin(), N_SAMPLES_PER_CLASS.end(), 0); - SORTED_D_MATRIX.resize(N_FEATURES * N_SAMPLES); + SORTED_D_MATRIX = std::vector<double>(N_FEATURES * N_SAMPLES, 0.0); } -void prop_sorted_d_mat::resize_sroted_d_matrix_arr(int n_feats) +void prop_sorted_d_mat::resize_sorted_d_matrix_arr(int n_feats) { N_FEATURES = n_feats; SORTED_D_MATRIX.resize(N_FEATURES * N_SAMPLES); } + +void prop_sorted_d_mat::finalize_sorted_d_matrix_arr() +{ + SORTED_D_MATRIX.resize(0); + + CLASS_START.resize(0); + N_SAMPLES_PER_CLASS.resize(0); + + N_TASK = 0; + N_CLASS = 0; + N_FEATURES = 0; + N_SAMPLES = 0; +} diff --git a/src/classification/prop_sorted_d_mat.hpp b/src/classification/prop_sorted_d_mat.hpp index acabd3b7..95a2725d 100644 --- a/src/classification/prop_sorted_d_mat.hpp +++ b/src/classification/prop_sorted_d_mat.hpp @@ -48,14 +48,19 @@ namespace prop_sorted_d_mat * @param n_class The number of classes * @param n_samples_per_class The number of samples in each class/task combination [task * N_TASK * N_CLASS + class] */ - void initialize_sroted_d_matrix_arr(int n_feat, int n_task, int n_class, std::vector<int> n_samples_per_class); + void initialize_sorted_d_matrix_arr(int n_feat, int n_task, int n_class, std::vector<int> n_samples_per_class); /** * @brief Resize the descriptor matrix to match the current number of features * * @param n_feats Number of features to select */ - void resize_sroted_d_matrix_arr(int n_feats); + void resize_sorted_d_matrix_arr(int n_feats); + + /** + * @brief Restores all global variables to initial state + */ + void finalize_sorted_d_matrix_arr(); /** * @brief Get the number of samples in a particular task/class combination diff --git a/src/descriptor_identifier/solver/SISSOClassifier.cpp b/src/descriptor_identifier/solver/SISSOClassifier.cpp index 5af8e3ee..589d068f 100644 --- a/src/descriptor_identifier/solver/SISSOClassifier.cpp +++ b/src/descriptor_identifier/solver/SISSOClassifier.cpp @@ -100,7 +100,7 @@ int SISSOClassifier::get_max_error_ind( void SISSOClassifier::transfer_d_mat_to_sorted() const { - prop_sorted_d_mat::resize_sroted_d_matrix_arr(node_value_arrs::N_SELECTED); + prop_sorted_d_mat::resize_sorted_d_matrix_arr(node_value_arrs::N_SELECTED); for(auto& el : _sample_inds_to_sorted_dmat_inds) { dcopy_( diff --git a/src/feature_creation/node/value_storage/nodes_value_containers.cpp b/src/feature_creation/node/value_storage/nodes_value_containers.cpp index c7fa9e35..55f5d705 100644 --- a/src/feature_creation/node/value_storage/nodes_value_containers.cpp +++ b/src/feature_creation/node/value_storage/nodes_value_containers.cpp @@ -245,7 +245,7 @@ void node_value_arrs::resize_d_matrix_arr(const int n_select) D_MATRIX.shrink_to_fit(); } -void node_value_arrs::finialize_values_arr() +void node_value_arrs::finalize_values_arr() { N_SELECTED = 0; N_SAMPLES = 0; diff --git a/src/feature_creation/node/value_storage/nodes_value_containers.hpp b/src/feature_creation/node/value_storage/nodes_value_containers.hpp index 6967d67f..0b793bfe 100644 --- a/src/feature_creation/node/value_storage/nodes_value_containers.hpp +++ b/src/feature_creation/node/value_storage/nodes_value_containers.hpp @@ -76,7 +76,7 @@ namespace node_value_arrs /** * @brief Resize all storage arrays to be empty */ - void finialize_values_arr(); + void finalize_values_arr(); /** * @brief Initialize all central storage vectors/descriptive variables without changing MAX_RUNG diff --git a/src/loss_function/LossFunctionConvexHull.cpp b/src/loss_function/LossFunctionConvexHull.cpp index 6c0750d4..828b7618 100644 --- a/src/loss_function/LossFunctionConvexHull.cpp +++ b/src/loss_function/LossFunctionConvexHull.cpp @@ -228,7 +228,7 @@ void LossFunctionConvexHull::setup_lp(bool initialize_sorted_d_mat) if(prop_sorted_d_mat::N_FEATURES == 0) { - prop_sorted_d_mat::initialize_sroted_d_matrix_arr(0, _n_task, _n_class, n_samp_per_class); + prop_sorted_d_mat::initialize_sorted_d_matrix_arr(0, _n_task, _n_class, n_samp_per_class); } } diff --git a/src/main.cpp b/src/main.cpp index 471b6b3c..f9ea45f2 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -121,6 +121,8 @@ int main(int argc, char const *argv[]) std::cout << sisso.models()[ii][0] << "\n" << std::endl; } } + prop_sorted_d_mat::finalize_sorted_d_matrix_arr(); + comp_feats::reset_vectors(); } mpi_setup::finalize_mpi_env(); return 0; diff --git a/src/mpi_interface/MPI_Ops.cpp b/src/mpi_interface/MPI_Ops.cpp index dee6afba..f2b71fed 100644 --- a/src/mpi_interface/MPI_Ops.cpp +++ b/src/mpi_interface/MPI_Ops.cpp @@ -36,16 +36,24 @@ void mpi_reduce_op::set_op(std::string project_type, double cross_cor_max, int n if(project_type.compare("classification") == 0) { if(CROSS_COR_MAX < 0.99999) + { IS_VALID = comp_feats::valid_feature_against_selected_spearman_mpi_op; + } else + { IS_VALID = comp_feats::valid_feature_against_selected_spearman_max_corr_1_mpi_op; + } } else { if(CROSS_COR_MAX < 0.99999) + { IS_VALID = comp_feats::valid_feature_against_selected_pearson_mpi_op; + } else + { IS_VALID = comp_feats::valid_feature_against_selected_pearson_max_corr_1_mpi_op; + } } } diff --git a/src/python/py_binding_cpp_def/bindings_docstring_keyed.cpp b/src/python/py_binding_cpp_def/bindings_docstring_keyed.cpp index def747f6..524c2926 100644 --- a/src/python/py_binding_cpp_def/bindings_docstring_keyed.cpp +++ b/src/python/py_binding_cpp_def/bindings_docstring_keyed.cpp @@ -110,7 +110,7 @@ void sisso::register_all() def( "finalize_values_arr", - &node_value_arrs::finialize_values_arr, + &node_value_arrs::finalize_values_arr, "@DocString_node_vals_finalize@" ); diff --git a/src/utils/compare_features.cpp b/src/utils/compare_features.cpp index 52860daa..619a6d7a 100644 --- a/src/utils/compare_features.cpp +++ b/src/utils/compare_features.cpp @@ -21,7 +21,6 @@ #include "utils/compare_features.hpp" #include <iomanip> -std::vector<double> comp_feats::CORR_CHECK; std::vector<double> comp_feats::RANK; std::vector<int> comp_feats::INDEX; @@ -64,6 +63,11 @@ void comp_feats::set_is_valid_fxn( } } +void comp_feats::reset_vectors() +{ + RANK.resize(0); + INDEX.resize(0); +} bool comp_feats::valid_feature_against_selected_pearson_max_corr_1( const double* val_ptr, diff --git a/src/utils/compare_features.hpp b/src/utils/compare_features.hpp index 9573ae78..b0084cb2 100644 --- a/src/utils/compare_features.hpp +++ b/src/utils/compare_features.hpp @@ -30,7 +30,6 @@ typedef std::tuple<node_ptr, double> node_sc_pair; namespace comp_feats { - extern std::vector<double> CORR_CHECK; //!< Vector for storing cross_corelation values extern std::vector<double> RANK; //!< Global variable used to store the rank variables for Spearman correlation extern std::vector<int> INDEX; //!< Global variable used to store the sorting indexes for Spearman correlation @@ -51,6 +50,11 @@ namespace comp_feats std::function<bool(const double*, const int, const double, const std::vector<node_ptr>&, const std::vector<double>&, const double)>& is_valid_feat_list ); + /** + * @brief Reset the RANK and INDEX vectors to be size 0 + */ + void reset_vectors(); + /** * @brief Checks the feature to see if it is still valid against previously selected features (using the Pearson correlation coefficient with a maximum cross-correlation of 1.0) * diff --git a/tests/googletest/classification/test_convex_hull_1d.cc b/tests/googletest/classification/test_convex_hull_1d.cc index 6b353c52..bccf03a1 100644 --- a/tests/googletest/classification/test_convex_hull_1d.cc +++ b/tests/googletest/classification/test_convex_hull_1d.cc @@ -24,7 +24,6 @@ namespace protected: void SetUp() override { - node_value_arrs::initialize_d_matrix_arr(); mpi_setup::init_mpi_env(); _task_sizes_train = {40, 40}; @@ -68,6 +67,11 @@ namespace }; } + void TearDown() override + { + node_value_arrs::finalize_values_arr(); + } + std::vector<FeatureNode> _phi; std::vector<double> _prop; std::vector<int> _task_sizes_train; diff --git a/tests/googletest/classification/test_lp_wrapper.cc b/tests/googletest/classification/test_lp_wrapper.cc index 50efd6bd..60d18e15 100644 --- a/tests/googletest/classification/test_lp_wrapper.cc +++ b/tests/googletest/classification/test_lp_wrapper.cc @@ -25,13 +25,14 @@ namespace protected: void SetUp() override { - node_value_arrs::initialize_d_matrix_arr(); mpi_setup::init_mpi_env(); std::vector<int> task_sizes_train = {80}; std::vector<int> task_sizes_test = {20}; node_value_arrs::initialize_values_arr(task_sizes_train, task_sizes_test, 2, 2, false); + node_value_arrs::initialize_d_matrix_arr(); + node_value_arrs::resize_d_matrix_arr(2); std::vector<double> value_1(task_sizes_train[0], 0.0); std::vector<double> value_2(task_sizes_train[0], 0.0); @@ -93,6 +94,7 @@ namespace FeatureNode(1, "B", value_2, test_value_2, Unit("m")) }; + _tol = 1e-5; _error.resize(80, 0.0); _test_error.resize(20, 0.0); _task_num = 0; @@ -104,11 +106,17 @@ namespace _samp_per_class = std::vector<int>(4, 20); _samp_per_class_test = std::vector<int>(4, 5); - prop_sorted_d_mat::initialize_sroted_d_matrix_arr(2, 1, 4, _samp_per_class); + prop_sorted_d_mat::initialize_sorted_d_matrix_arr(2, 1, 4, _samp_per_class); std::copy_n(value_1.data(), value_1.size(), prop_sorted_d_mat::access_sorted_d_matrix(0)); std::copy_n(value_2.data(), value_2.size(),prop_sorted_d_mat::access_sorted_d_matrix(1)); } + void TearDown() override + { + prop_sorted_d_mat::finalize_sorted_d_matrix_arr(); + node_value_arrs::finalize_values_arr(); + } + std::vector<FeatureNode> _phi; std::vector<double> _error; diff --git a/tests/googletest/classification/test_prop_sorted_d_mat.cc b/tests/googletest/classification/test_prop_sorted_d_mat.cc index a6cf0b46..e61cf3f0 100644 --- a/tests/googletest/classification/test_prop_sorted_d_mat.cc +++ b/tests/googletest/classification/test_prop_sorted_d_mat.cc @@ -38,7 +38,7 @@ namespace TEST_F(PropSOrtedDMatTests, TestSortedDMat) { - prop_sorted_d_mat::initialize_sroted_d_matrix_arr(1, _n_task, _n_class, _n_samples_per_class); + prop_sorted_d_mat::initialize_sorted_d_matrix_arr(1, _n_task, _n_class, _n_samples_per_class); EXPECT_EQ(prop_sorted_d_mat::CLASS_START[1], 18); EXPECT_EQ(prop_sorted_d_mat::N_SAMPLES_PER_CLASS[1], 19); EXPECT_EQ(prop_sorted_d_mat::N_FEATURES, 1); @@ -47,7 +47,7 @@ namespace EXPECT_EQ(prop_sorted_d_mat::N_SAMPLES, std::accumulate(_n_samples_per_class.begin(), _n_samples_per_class.end(), 0)); EXPECT_EQ(prop_sorted_d_mat::SORTED_D_MATRIX.size(), 80); - prop_sorted_d_mat::resize_sroted_d_matrix_arr(_n_feat); + prop_sorted_d_mat::resize_sorted_d_matrix_arr(_n_feat); EXPECT_EQ(prop_sorted_d_mat::N_FEATURES, _n_feat); EXPECT_EQ(prop_sorted_d_mat::SORTED_D_MATRIX.size(), 80 * _n_feat); @@ -61,5 +61,6 @@ namespace prop_sorted_d_mat::access_sample_sorted_d_matrix(2)[0] = 1.5; EXPECT_EQ(prop_sorted_d_mat::access_sample_sorted_d_matrix(2, 0, 0)[0], 1.5); + prop_sorted_d_mat::finalize_sorted_d_matrix_arr(); } } diff --git a/tests/googletest/classification/test_svm_wrapper.cc b/tests/googletest/classification/test_svm_wrapper.cc index d9898c43..b55ee6bc 100644 --- a/tests/googletest/classification/test_svm_wrapper.cc +++ b/tests/googletest/classification/test_svm_wrapper.cc @@ -113,6 +113,11 @@ namespace std::fill_n(_prop_test.begin() + 15, 5, 3.0); } + void TearDown() override + { + node_value_arrs::finalize_values_arr(); + } + std::vector<FeatureNode> _phi; std::vector<double> _prop; diff --git a/tests/googletest/descriptor_identification/solver/test_sisso_classifier.cc b/tests/googletest/descriptor_identification/solver/test_sisso_classifier.cc index 84b3790a..10348360 100644 --- a/tests/googletest/descriptor_identification/solver/test_sisso_classifier.cc +++ b/tests/googletest/descriptor_identification/solver/test_sisso_classifier.cc @@ -24,13 +24,13 @@ namespace void SetUp() override { allowed_op_maps::set_node_maps(); - node_value_arrs::initialize_d_matrix_arr(); mpi_setup::init_mpi_env(); std::vector<int> task_sizes_train = {80}; std::vector<int> task_sizes_test = {20}; node_value_arrs::initialize_values_arr(task_sizes_train, task_sizes_test, 3, 2, false); + node_value_arrs::initialize_d_matrix_arr(); std::vector<std::string> sample_ids_train(task_sizes_train[0]); for(int ii = 0; ii < task_sizes_train[0]; ++ii) @@ -161,6 +161,12 @@ namespace inputs.set_n_models_store(3); } + void TearDown() override + { + prop_sorted_d_mat::finalize_sorted_d_matrix_arr(); + node_value_arrs::finalize_values_arr(); + } + InputParser inputs; }; diff --git a/tests/googletest/descriptor_identification/solver/test_sisso_log_regressor.cc b/tests/googletest/descriptor_identification/solver/test_sisso_log_regressor.cc index 35995fcb..c738b9a7 100644 --- a/tests/googletest/descriptor_identification/solver/test_sisso_log_regressor.cc +++ b/tests/googletest/descriptor_identification/solver/test_sisso_log_regressor.cc @@ -24,13 +24,13 @@ namespace void SetUp() override { allowed_op_maps::set_node_maps(); - node_value_arrs::initialize_d_matrix_arr(); mpi_setup::init_mpi_env(); std::vector<int> task_sizes_train = {90}; std::vector<int> task_sizes_test = {10}; node_value_arrs::initialize_values_arr(task_sizes_train, task_sizes_test, 3, 2, false); + node_value_arrs::initialize_d_matrix_arr(); std::vector<int> leave_out_inds = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}; @@ -121,6 +121,12 @@ namespace inputs.set_n_residual(2); inputs.set_n_models_store(3); } + + void TearDown() override + { + node_value_arrs::finalize_values_arr(); + } + InputParser inputs; std::vector<double> _prop; diff --git a/tests/googletest/descriptor_identification/solver/test_sisso_regressor.cc b/tests/googletest/descriptor_identification/solver/test_sisso_regressor.cc index 03cdd564..3018b0f6 100644 --- a/tests/googletest/descriptor_identification/solver/test_sisso_regressor.cc +++ b/tests/googletest/descriptor_identification/solver/test_sisso_regressor.cc @@ -147,6 +147,12 @@ namespace inputs.set_n_residual(2); inputs.set_n_models_store(3); } + + void TearDown() override + { + node_value_arrs::finalize_values_arr(); + } + InputParser inputs; std::vector<double> _prop; diff --git a/tests/googletest/feature_creation/feature_generation/test_abs_diff_node.cc b/tests/googletest/feature_creation/feature_generation/test_abs_diff_node.cc index 9668bf16..e196bd19 100644 --- a/tests/googletest/feature_creation/feature_generation/test_abs_diff_node.cc +++ b/tests/googletest/feature_creation/feature_generation/test_abs_diff_node.cc @@ -46,6 +46,11 @@ namespace _phi.push_back(std::make_shared<SubNode>(_feat_1, _feat_2, 4, -1e-50, 1e50)); } + void TearDown() override + { + node_value_arrs::finalize_values_arr(); + } + node_ptr _feat_1; node_ptr _feat_2; node_ptr _feat_3; diff --git a/tests/googletest/feature_creation/feature_generation/test_abs_node.cc b/tests/googletest/feature_creation/feature_generation/test_abs_node.cc index 989b7500..d1d5440f 100644 --- a/tests/googletest/feature_creation/feature_generation/test_abs_node.cc +++ b/tests/googletest/feature_creation/feature_generation/test_abs_node.cc @@ -43,6 +43,11 @@ namespace _phi.push_back(std::make_shared<AbsDiffNode>(_feat_1, _feat_3, 3, 1e-50, 1e50)); } + void TearDown() override + { + node_value_arrs::finalize_values_arr(); + } + node_ptr _feat_1; node_ptr _feat_2; node_ptr _feat_3; diff --git a/tests/googletest/feature_creation/feature_generation/test_add_node.cc b/tests/googletest/feature_creation/feature_generation/test_add_node.cc index 329bb0bc..b50c3774 100644 --- a/tests/googletest/feature_creation/feature_generation/test_add_node.cc +++ b/tests/googletest/feature_creation/feature_generation/test_add_node.cc @@ -44,6 +44,11 @@ namespace _phi.push_back(std::make_shared<SubNode>(_feat_1, _feat_2, 4, -1e-50, 1e50)); } + void TearDown() override + { + node_value_arrs::finalize_values_arr(); + } + node_ptr _feat_1; node_ptr _feat_2; node_ptr _feat_3; diff --git a/tests/googletest/feature_creation/feature_generation/test_cb_node.cc b/tests/googletest/feature_creation/feature_generation/test_cb_node.cc index a658d9de..0a2ebebe 100644 --- a/tests/googletest/feature_creation/feature_generation/test_cb_node.cc +++ b/tests/googletest/feature_creation/feature_generation/test_cb_node.cc @@ -50,6 +50,11 @@ namespace _phi.push_back(std::make_shared<CbrtNode>(_feat_1, 11, 1e-50, 1e50)); } + void TearDown() override + { + node_value_arrs::finalize_values_arr(); + } + node_ptr _feat_1; node_ptr _feat_2; node_ptr _feat_3; diff --git a/tests/googletest/feature_creation/feature_generation/test_cbrt_node.cc b/tests/googletest/feature_creation/feature_generation/test_cbrt_node.cc index 8de70ccc..e556cd04 100644 --- a/tests/googletest/feature_creation/feature_generation/test_cbrt_node.cc +++ b/tests/googletest/feature_creation/feature_generation/test_cbrt_node.cc @@ -52,6 +52,11 @@ namespace _phi.push_back(std::make_shared<SixPowNode>(_feat_1, 12, 1e-50, 1e50)); } + void TearDown() override + { + node_value_arrs::finalize_values_arr(); + } + node_ptr _feat_1; node_ptr _feat_2; node_ptr _feat_3; diff --git a/tests/googletest/feature_creation/feature_generation/test_cos_node.cc b/tests/googletest/feature_creation/feature_generation/test_cos_node.cc index 0b54bc0d..73ea5c78 100644 --- a/tests/googletest/feature_creation/feature_generation/test_cos_node.cc +++ b/tests/googletest/feature_creation/feature_generation/test_cos_node.cc @@ -41,6 +41,11 @@ namespace _phi.push_back(std::make_shared<SinNode>(_feat_1, 3, 1e-50, 1e50)); } + void TearDown() override + { + node_value_arrs::finalize_values_arr(); + } + node_ptr _feat_1; node_ptr _feat_2; node_ptr _feat_3; diff --git a/tests/googletest/feature_creation/feature_generation/test_div_node.cc b/tests/googletest/feature_creation/feature_generation/test_div_node.cc index a90af33f..162cb34a 100644 --- a/tests/googletest/feature_creation/feature_generation/test_div_node.cc +++ b/tests/googletest/feature_creation/feature_generation/test_div_node.cc @@ -46,6 +46,11 @@ namespace _phi.push_back(std::make_shared<InvNode>(_feat_2, 5, -1e-50, 1e50)); } + void TearDown() override + { + node_value_arrs::finalize_values_arr(); + } + node_ptr _feat_1; node_ptr _feat_2; node_ptr _feat_3; diff --git a/tests/googletest/feature_creation/feature_generation/test_exp_node.cc b/tests/googletest/feature_creation/feature_generation/test_exp_node.cc index 1337adbc..cb3dff65 100644 --- a/tests/googletest/feature_creation/feature_generation/test_exp_node.cc +++ b/tests/googletest/feature_creation/feature_generation/test_exp_node.cc @@ -48,6 +48,11 @@ namespace _phi.push_back(std::make_shared<SubNode>(_feat_1, _feat_3, 3, 1e-50, 1e50)); } + void TearDown() override + { + node_value_arrs::finalize_values_arr(); + } + node_ptr _feat_1; node_ptr _feat_2; node_ptr _feat_3; diff --git a/tests/googletest/feature_creation/feature_generation/test_feat_node.cc b/tests/googletest/feature_creation/feature_generation/test_feat_node.cc index 51480b42..ffa48c9a 100644 --- a/tests/googletest/feature_creation/feature_generation/test_feat_node.cc +++ b/tests/googletest/feature_creation/feature_generation/test_feat_node.cc @@ -34,6 +34,11 @@ namespace _test_value_3 = {5.0}; } + void TearDown() override + { + node_value_arrs::finalize_values_arr(); + } + std::vector<double> _value_1; std::vector<double> _test_value_1; diff --git a/tests/googletest/feature_creation/feature_generation/test_inv_node.cc b/tests/googletest/feature_creation/feature_generation/test_inv_node.cc index 56f46c63..7eaa5cec 100644 --- a/tests/googletest/feature_creation/feature_generation/test_inv_node.cc +++ b/tests/googletest/feature_creation/feature_generation/test_inv_node.cc @@ -51,6 +51,11 @@ namespace _phi.push_back(std::make_shared<DivNode>(_feat_1, _feat_3, 11, 1e-50, 1e50)); } + void TearDown() override + { + node_value_arrs::finalize_values_arr(); + } + node_ptr _feat_1; node_ptr _feat_2; node_ptr _feat_3; diff --git a/tests/googletest/feature_creation/feature_generation/test_log_node.cc b/tests/googletest/feature_creation/feature_generation/test_log_node.cc index 872d087d..87c67d1f 100644 --- a/tests/googletest/feature_creation/feature_generation/test_log_node.cc +++ b/tests/googletest/feature_creation/feature_generation/test_log_node.cc @@ -64,6 +64,11 @@ namespace _phi.push_back(std::make_shared<SixPowNode>(_feat_1, 13, 1e-50, 1e50)); } + void TearDown() override + { + node_value_arrs::finalize_values_arr(); + } + node_ptr _feat_1; node_ptr _feat_2; node_ptr _feat_3; diff --git a/tests/googletest/feature_creation/feature_generation/test_model_node.cc b/tests/googletest/feature_creation/feature_generation/test_model_node.cc index 9b502069..8b45808d 100644 --- a/tests/googletest/feature_creation/feature_generation/test_model_node.cc +++ b/tests/googletest/feature_creation/feature_generation/test_model_node.cc @@ -35,6 +35,11 @@ namespace _test_value_3 = {5.0}; } + void TearDown() override + { + node_value_arrs::finalize_values_arr(); + } + std::vector<double> _value_1; std::vector<double> _test_value_1; diff --git a/tests/googletest/feature_creation/feature_generation/test_mult_node.cc b/tests/googletest/feature_creation/feature_generation/test_mult_node.cc index 411902d3..eecf8f70 100644 --- a/tests/googletest/feature_creation/feature_generation/test_mult_node.cc +++ b/tests/googletest/feature_creation/feature_generation/test_mult_node.cc @@ -44,6 +44,11 @@ namespace _phi.push_back(std::make_shared<DivNode>(_feat_1, _feat_2, 4, -1e-50, 1e50)); } + void TearDown() override + { + node_value_arrs::finalize_values_arr(); + } + node_ptr _feat_1; node_ptr _feat_2; node_ptr _feat_3; diff --git a/tests/googletest/feature_creation/feature_generation/test_neg_exp_node.cc b/tests/googletest/feature_creation/feature_generation/test_neg_exp_node.cc index 0ed9d1ca..55d5707a 100644 --- a/tests/googletest/feature_creation/feature_generation/test_neg_exp_node.cc +++ b/tests/googletest/feature_creation/feature_generation/test_neg_exp_node.cc @@ -48,6 +48,11 @@ namespace _phi.push_back(std::make_shared<SubNode>(_feat_1, _feat_3, 3, 1e-50, 1e50)); } + void TearDown() override + { + node_value_arrs::finalize_values_arr(); + } + node_ptr _feat_1; node_ptr _feat_2; node_ptr _feat_3; diff --git a/tests/googletest/feature_creation/feature_generation/test_sin_node.cc b/tests/googletest/feature_creation/feature_generation/test_sin_node.cc index aa4263c5..b00850ba 100644 --- a/tests/googletest/feature_creation/feature_generation/test_sin_node.cc +++ b/tests/googletest/feature_creation/feature_generation/test_sin_node.cc @@ -41,6 +41,11 @@ namespace _phi.push_back(std::make_shared<CosNode>(_feat_1, 3, 1e-50, 1e50)); } + void TearDown() override + { + node_value_arrs::finalize_values_arr(); + } + node_ptr _feat_1; node_ptr _feat_2; node_ptr _feat_3; diff --git a/tests/googletest/feature_creation/feature_generation/test_six_pow_node.cc b/tests/googletest/feature_creation/feature_generation/test_six_pow_node.cc index e5d3d0d8..3c596968 100644 --- a/tests/googletest/feature_creation/feature_generation/test_six_pow_node.cc +++ b/tests/googletest/feature_creation/feature_generation/test_six_pow_node.cc @@ -54,6 +54,11 @@ namespace _phi.push_back(std::make_shared<CbNode>(_feat_1, 12, 1e-50, 1e50)); } + void TearDown() override + { + node_value_arrs::finalize_values_arr(); + } + node_ptr _feat_1; node_ptr _feat_2; node_ptr _feat_3; diff --git a/tests/googletest/feature_creation/feature_generation/test_sq_node.cc b/tests/googletest/feature_creation/feature_generation/test_sq_node.cc index 632899cc..5bf19280 100644 --- a/tests/googletest/feature_creation/feature_generation/test_sq_node.cc +++ b/tests/googletest/feature_creation/feature_generation/test_sq_node.cc @@ -48,6 +48,11 @@ namespace _phi.push_back(std::make_shared<SqrtNode>(_feat_1, 11, 1e-50, 1e50)); } + void TearDown() override + { + node_value_arrs::finalize_values_arr(); + } + node_ptr _feat_1; node_ptr _feat_2; node_ptr _feat_3; diff --git a/tests/googletest/feature_creation/feature_generation/test_sqrt_node.cc b/tests/googletest/feature_creation/feature_generation/test_sqrt_node.cc index 254fc49d..0e47ee55 100644 --- a/tests/googletest/feature_creation/feature_generation/test_sqrt_node.cc +++ b/tests/googletest/feature_creation/feature_generation/test_sqrt_node.cc @@ -54,6 +54,11 @@ namespace _phi.push_back(std::make_shared<SixPowNode>(_feat_1, 12, 1e-50, 1e50)); } + void TearDown() override + { + node_value_arrs::finalize_values_arr(); + } + node_ptr _feat_1; node_ptr _feat_2; node_ptr _feat_3; diff --git a/tests/googletest/feature_creation/feature_generation/test_sub_node.cc b/tests/googletest/feature_creation/feature_generation/test_sub_node.cc index dc308a94..f4aad156 100644 --- a/tests/googletest/feature_creation/feature_generation/test_sub_node.cc +++ b/tests/googletest/feature_creation/feature_generation/test_sub_node.cc @@ -44,6 +44,11 @@ namespace _phi.push_back(std::make_shared<AddNode>(_feat_1, _feat_2, 4, -1e-50, 1e50)); } + void TearDown() override + { + node_value_arrs::finalize_values_arr(); + } + node_ptr _feat_1; node_ptr _feat_2; node_ptr _feat_3; diff --git a/tests/googletest/feature_creation/feature_space/test_feat_space.cc b/tests/googletest/feature_creation/feature_space/test_feat_space.cc index 1d30c91c..3d4bc533 100644 --- a/tests/googletest/feature_creation/feature_space/test_feat_space.cc +++ b/tests/googletest/feature_creation/feature_space/test_feat_space.cc @@ -23,16 +23,16 @@ namespace void SetUp() override { allowed_op_maps::set_node_maps(); -#ifdef PARAMETERIZE + #ifdef PARAMETERIZE allowed_op_maps::set_param_node_maps(); -#endif - node_value_arrs::initialize_d_matrix_arr(); + #endif mpi_setup::init_mpi_env(); std::vector<int> task_sizes = {5, 5}; int n_samp = std::accumulate(task_sizes.begin(), task_sizes.end(), 0); node_value_arrs::initialize_values_arr(task_sizes, {0, 0}, 3, 2, false); + node_value_arrs::initialize_d_matrix_arr(); std::vector<double> value_1(n_samp, 0.0); std::vector<double> value_2(n_samp, 0.0); @@ -79,6 +79,11 @@ namespace _inputs.set_reparam_residual(false); } + void TearDown() override + { + node_value_arrs::finalize_values_arr(); + } + InputParser _inputs; std::vector<double> _prop; std::vector<double> _prop_log_reg; @@ -225,5 +230,6 @@ namespace EXPECT_LT(std::abs(feat_space.phi()[0]->value()[0] - _inputs.phi_0()[0].value()[0]), 1e-10); boost::filesystem::remove_all("feature_space/"); + prop_sorted_d_mat::finalize_sorted_d_matrix_arr(); } } diff --git a/tests/googletest/feature_creation/parameterization/test_abs_diff_node.cc b/tests/googletest/feature_creation/parameterization/test_abs_diff_node.cc index f0688b45..79ee8fbd 100644 --- a/tests/googletest/feature_creation/parameterization/test_abs_diff_node.cc +++ b/tests/googletest/feature_creation/parameterization/test_abs_diff_node.cc @@ -72,6 +72,11 @@ namespace _optimizer = nlopt_wrapper::get_optimizer("regression",_task_sizes_train, _prop, 1); } + void TearDown() override + { + node_value_arrs::finalize_values_arr(); + } + node_ptr _feat_1; node_ptr _feat_2; node_ptr _abs_diff_test; diff --git a/tests/googletest/feature_creation/parameterization/test_abs_node.cc b/tests/googletest/feature_creation/parameterization/test_abs_node.cc index cf7bf7c6..a337b3dc 100644 --- a/tests/googletest/feature_creation/parameterization/test_abs_node.cc +++ b/tests/googletest/feature_creation/parameterization/test_abs_node.cc @@ -61,6 +61,11 @@ namespace _optimizer = nlopt_wrapper::get_optimizer("regression",_task_sizes_train, _prop, 1); } + void TearDown() override + { + node_value_arrs::finalize_values_arr(); + } + node_ptr _feat_1; node_ptr _abs_test; diff --git a/tests/googletest/feature_creation/parameterization/test_add_node.cc b/tests/googletest/feature_creation/parameterization/test_add_node.cc index 9399eacf..c9b3f000 100644 --- a/tests/googletest/feature_creation/parameterization/test_add_node.cc +++ b/tests/googletest/feature_creation/parameterization/test_add_node.cc @@ -72,6 +72,11 @@ namespace _optimizer = nlopt_wrapper::get_optimizer("regression",_task_sizes_train, _prop, 1); } + void TearDown() override + { + node_value_arrs::finalize_values_arr(); + } + node_ptr _feat_1; node_ptr _feat_2; node_ptr _add_test; diff --git a/tests/googletest/feature_creation/parameterization/test_cb_node.cc b/tests/googletest/feature_creation/parameterization/test_cb_node.cc index 81e5d78d..42652870 100644 --- a/tests/googletest/feature_creation/parameterization/test_cb_node.cc +++ b/tests/googletest/feature_creation/parameterization/test_cb_node.cc @@ -75,6 +75,11 @@ namespace _optimizer = nlopt_wrapper::get_optimizer("regression",_task_sizes_train, _prop, 1); } + void TearDown() override + { + node_value_arrs::finalize_values_arr(); + } + node_ptr _feat_1; node_ptr _feat_2; node_ptr _exp_test; diff --git a/tests/googletest/feature_creation/parameterization/test_cbrt_node.cc b/tests/googletest/feature_creation/parameterization/test_cbrt_node.cc index 6b3c1bef..80c1fcc5 100644 --- a/tests/googletest/feature_creation/parameterization/test_cbrt_node.cc +++ b/tests/googletest/feature_creation/parameterization/test_cbrt_node.cc @@ -72,6 +72,11 @@ namespace _optimizer = nlopt_wrapper::get_optimizer("regression",_task_sizes_train, _prop, 1); } + void TearDown() override + { + node_value_arrs::finalize_values_arr(); + } + node_ptr _feat_1; node_ptr _feat_2; node_ptr _cbrt_test; diff --git a/tests/googletest/feature_creation/parameterization/test_cos_node.cc b/tests/googletest/feature_creation/parameterization/test_cos_node.cc index e8e988ce..134b44ae 100644 --- a/tests/googletest/feature_creation/parameterization/test_cos_node.cc +++ b/tests/googletest/feature_creation/parameterization/test_cos_node.cc @@ -76,6 +76,11 @@ namespace _optimizer = nlopt_wrapper::get_optimizer("regression",_task_sizes_train, _prop, 1); } + void TearDown() override + { + node_value_arrs::finalize_values_arr(); + } + node_ptr _feat_1; node_ptr _feat_2; node_ptr _feat_3; diff --git a/tests/googletest/feature_creation/parameterization/test_div_node.cc b/tests/googletest/feature_creation/parameterization/test_div_node.cc index 202b05e3..c498c9b1 100644 --- a/tests/googletest/feature_creation/parameterization/test_div_node.cc +++ b/tests/googletest/feature_creation/parameterization/test_div_node.cc @@ -72,6 +72,11 @@ namespace _optimizer = nlopt_wrapper::get_optimizer("regression",_task_sizes_train, _prop, 1); } + void TearDown() override + { + node_value_arrs::finalize_values_arr(); + } + node_ptr _feat_1; node_ptr _feat_2; node_ptr _div_test; diff --git a/tests/googletest/feature_creation/parameterization/test_exp_node.cc b/tests/googletest/feature_creation/parameterization/test_exp_node.cc index 19008656..78940e6a 100644 --- a/tests/googletest/feature_creation/parameterization/test_exp_node.cc +++ b/tests/googletest/feature_creation/parameterization/test_exp_node.cc @@ -79,6 +79,11 @@ namespace _optimizer = nlopt_wrapper::get_optimizer("regression",_task_sizes_train, _prop, 1); } + void TearDown() override + { + node_value_arrs::finalize_values_arr(); + } + node_ptr _feat_1; node_ptr _feat_2; node_ptr _feat_3; diff --git a/tests/googletest/feature_creation/parameterization/test_inv_node.cc b/tests/googletest/feature_creation/parameterization/test_inv_node.cc index cef2d1bb..1341e308 100644 --- a/tests/googletest/feature_creation/parameterization/test_inv_node.cc +++ b/tests/googletest/feature_creation/parameterization/test_inv_node.cc @@ -72,6 +72,11 @@ namespace _optimizer = nlopt_wrapper::get_optimizer("regression",_task_sizes_train, _prop, 1); } + void TearDown() override + { + node_value_arrs::finalize_values_arr(); + } + node_ptr _feat_1; node_ptr _feat_2; node_ptr _inv_test; diff --git a/tests/googletest/feature_creation/parameterization/test_log_node.cc b/tests/googletest/feature_creation/parameterization/test_log_node.cc index dccbf234..4f5d3f42 100644 --- a/tests/googletest/feature_creation/parameterization/test_log_node.cc +++ b/tests/googletest/feature_creation/parameterization/test_log_node.cc @@ -81,6 +81,11 @@ namespace _optimizer = nlopt_wrapper::get_optimizer("regression",_task_sizes_train, _prop, 1); } + void TearDown() override + { + node_value_arrs::finalize_values_arr(); + } + node_ptr _feat_1; node_ptr _feat_2; node_ptr _feat_3; diff --git a/tests/googletest/feature_creation/parameterization/test_mult_node.cc b/tests/googletest/feature_creation/parameterization/test_mult_node.cc index 9d6759d9..43a03876 100644 --- a/tests/googletest/feature_creation/parameterization/test_mult_node.cc +++ b/tests/googletest/feature_creation/parameterization/test_mult_node.cc @@ -72,6 +72,11 @@ namespace _optimizer = nlopt_wrapper::get_optimizer("regression",_task_sizes_train, _prop, 1); } + void TearDown() override + { + node_value_arrs::finalize_values_arr(); + } + node_ptr _feat_1; node_ptr _feat_2; node_ptr _mult_test; diff --git a/tests/googletest/feature_creation/parameterization/test_neg_exp_node.cc b/tests/googletest/feature_creation/parameterization/test_neg_exp_node.cc index cb2ef047..b648a059 100644 --- a/tests/googletest/feature_creation/parameterization/test_neg_exp_node.cc +++ b/tests/googletest/feature_creation/parameterization/test_neg_exp_node.cc @@ -79,6 +79,11 @@ namespace _optimizer = nlopt_wrapper::get_optimizer("regression",_task_sizes_train, _prop, 1); } + void TearDown() override + { + node_value_arrs::finalize_values_arr(); + } + node_ptr _feat_1; node_ptr _feat_2; node_ptr _feat_3; diff --git a/tests/googletest/feature_creation/parameterization/test_sin_node.cc b/tests/googletest/feature_creation/parameterization/test_sin_node.cc index 3e3e8f50..ff277add 100644 --- a/tests/googletest/feature_creation/parameterization/test_sin_node.cc +++ b/tests/googletest/feature_creation/parameterization/test_sin_node.cc @@ -76,6 +76,11 @@ namespace _optimizer = nlopt_wrapper::get_optimizer("regression",_task_sizes_train, _prop, 1); } + void TearDown() override + { + node_value_arrs::finalize_values_arr(); + } + node_ptr _feat_1; node_ptr _feat_2; node_ptr _feat_3; diff --git a/tests/googletest/feature_creation/parameterization/test_six_pow_node.cc b/tests/googletest/feature_creation/parameterization/test_six_pow_node.cc index ca42f461..b9d7cbf5 100644 --- a/tests/googletest/feature_creation/parameterization/test_six_pow_node.cc +++ b/tests/googletest/feature_creation/parameterization/test_six_pow_node.cc @@ -71,6 +71,11 @@ namespace _optimizer = nlopt_wrapper::get_optimizer("regression",_task_sizes_train, _prop, 1); } + void TearDown() override + { + node_value_arrs::finalize_values_arr(); + } + node_ptr _feat_1; node_ptr _feat_2; node_ptr _six_pow_test; diff --git a/tests/googletest/feature_creation/parameterization/test_sq_node.cc b/tests/googletest/feature_creation/parameterization/test_sq_node.cc index 770a0553..03826f66 100644 --- a/tests/googletest/feature_creation/parameterization/test_sq_node.cc +++ b/tests/googletest/feature_creation/parameterization/test_sq_node.cc @@ -71,6 +71,11 @@ namespace _optimizer = nlopt_wrapper::get_optimizer("regression",_task_sizes_train, _prop, 1); } + void TearDown() override + { + node_value_arrs::finalize_values_arr(); + } + node_ptr _feat_1; node_ptr _feat_2; node_ptr _sq_test; diff --git a/tests/googletest/feature_creation/parameterization/test_sqrt_node.cc b/tests/googletest/feature_creation/parameterization/test_sqrt_node.cc index 91a13a8a..6df971e4 100644 --- a/tests/googletest/feature_creation/parameterization/test_sqrt_node.cc +++ b/tests/googletest/feature_creation/parameterization/test_sqrt_node.cc @@ -71,6 +71,11 @@ namespace _optimizer = nlopt_wrapper::get_optimizer("regression",_task_sizes_train, _prop, 1); } + void TearDown() override + { + node_value_arrs::finalize_values_arr(); + } + node_ptr _feat_1; node_ptr _feat_2; node_ptr _sqrt_test; diff --git a/tests/googletest/feature_creation/parameterization/test_sub_node.cc b/tests/googletest/feature_creation/parameterization/test_sub_node.cc index cb936433..4b74be54 100644 --- a/tests/googletest/feature_creation/parameterization/test_sub_node.cc +++ b/tests/googletest/feature_creation/parameterization/test_sub_node.cc @@ -71,6 +71,11 @@ namespace _optimizer = nlopt_wrapper::get_optimizer("regression",_task_sizes_train, _prop, 1); } + void TearDown() override + { + node_value_arrs::finalize_values_arr(); + } + node_ptr _feat_1; node_ptr _feat_2; node_ptr _sub_test; diff --git a/tests/googletest/feature_creation/utils/test_utils.cc b/tests/googletest/feature_creation/utils/test_utils.cc index 5db1d69e..58fa6e5f 100644 --- a/tests/googletest/feature_creation/utils/test_utils.cc +++ b/tests/googletest/feature_creation/utils/test_utils.cc @@ -41,6 +41,11 @@ namespace _feat_ind = 3; } + void TearDown() override + { + node_value_arrs::finalize_values_arr(); + } + std::vector<node_ptr> _phi0; unsigned long int _feat_ind; }; diff --git a/tests/googletest/feature_creation/value_storage/test_value_storage.cc b/tests/googletest/feature_creation/value_storage/test_value_storage.cc index edfbe6d0..3a6f4aa5 100644 --- a/tests/googletest/feature_creation/value_storage/test_value_storage.cc +++ b/tests/googletest/feature_creation/value_storage/test_value_storage.cc @@ -17,6 +17,7 @@ namespace { + //test mean calculations TEST(ValueStorage, ValueStorageTest) { @@ -87,5 +88,30 @@ namespace { std::fill_n(node_value_arrs::TEMP_STORAGE_TEST_REG.data(), node_value_arrs::TEMP_STORAGE_REG.size(), 2.0); node_value_arrs::clear_temp_test_reg(); EXPECT_EQ(node_value_arrs::TEMP_STORAGE_TEST_REG[0], -1); + + node_value_arrs::finalize_values_arr(); + EXPECT_EQ(node_value_arrs::VALUES_ARR.size(), 0); + EXPECT_EQ(node_value_arrs::TEST_VALUES_ARR.size(), 0); + EXPECT_EQ(node_value_arrs::TEMP_STORAGE_ARR.size(), 0); + EXPECT_EQ(node_value_arrs::TEMP_STORAGE_TEST_ARR.size(), 0); + EXPECT_EQ(node_value_arrs::TEMP_STORAGE_REG.size(), 0); + EXPECT_EQ(node_value_arrs::TEMP_STORAGE_TEST_REG.size(), 0); + EXPECT_EQ(node_value_arrs::PARAM_STORAGE_ARR.size(), 0); + EXPECT_EQ(node_value_arrs::PARAM_STORAGE_TEST_ARR.size(), 0); + EXPECT_EQ(node_value_arrs::D_MATRIX.size(), 0); + EXPECT_EQ(node_value_arrs::TASK_SZ_TRAIN.size(), 0); + EXPECT_EQ(node_value_arrs::TASK_START_TRAIN.size(), 0); + EXPECT_EQ(node_value_arrs::TASK_SZ_TEST.size(), 0); + EXPECT_EQ(node_value_arrs::N_SELECTED, 0); + EXPECT_EQ(node_value_arrs::N_SAMPLES, 0); + EXPECT_EQ(node_value_arrs::N_SAMPLES_TEST, 0); + EXPECT_EQ(node_value_arrs::N_PRIMARY_FEATURES, 0); + EXPECT_EQ(node_value_arrs::N_STORE_FEATURES, 0); + EXPECT_EQ(node_value_arrs::N_RUNGS_STORED, 0); + EXPECT_EQ(node_value_arrs::MAX_RUNG, 0); + + EXPECT_EQ(node_value_arrs::MAX_N_THREADS, omp_get_max_threads()); + EXPECT_EQ(node_value_arrs::N_OP_SLOTS, 0); + EXPECT_EQ(node_value_arrs::N_PARAM_OP_SLOTS, 0); } } diff --git a/tests/googletest/inputs/input_parser.cc b/tests/googletest/inputs/input_parser.cc index df2485dc..d3129f52 100644 --- a/tests/googletest/inputs/input_parser.cc +++ b/tests/googletest/inputs/input_parser.cc @@ -22,7 +22,6 @@ namespace void SetUp() override { std::vector<std::string> filepath = str_utils::split_string_trim(__FILE__, "/"); - node_value_arrs::finialize_values_arr(); _sample_ids_train = {"a", "b", "c"}; _sample_ids_test = {"d"}; _task_names = {"task_1", "task_2"}; @@ -55,7 +54,7 @@ namespace _fix_intercept = false; -#ifdef PARAMETERIZE + #ifdef PARAMETERIZE _filename = ( str_utils::join("/", filepath.data(), filepath.size() - 1) + "/sisso_param.json" @@ -69,12 +68,17 @@ namespace _global_param_opt = true; _reparam_residual = true; -#else + #else _filename = ( str_utils::join("/", filepath.data(), filepath.size() - 1) + "/sisso.json" ); -#endif + #endif + } + + void TearDown() override + { + node_value_arrs::finalize_values_arr(); } std::vector<std::string> _sample_ids_train; //!< Vector storing all sample ids for the training samples diff --git a/tests/googletest/loss_function/test_convex_hull_loss.cc b/tests/googletest/loss_function/test_convex_hull_loss.cc index c6dfa722..d61e7ad8 100644 --- a/tests/googletest/loss_function/test_convex_hull_loss.cc +++ b/tests/googletest/loss_function/test_convex_hull_loss.cc @@ -31,6 +31,7 @@ namespace node_value_arrs::initialize_d_matrix_arr(); node_value_arrs::resize_d_matrix_arr(2); + std::vector<double> value_1(_task_sizes_train[0], 0.0); std::vector<double> value_2(_task_sizes_train[0], 0.0); @@ -123,6 +124,16 @@ namespace std::fill_n(_prop_test.begin() + 5, 5, 1.0); std::fill_n(_prop_test.begin() + 10, 5, 2.0); std::fill_n(_prop_test.begin() + 15, 5, 3.0); + + prop_sorted_d_mat::initialize_sorted_d_matrix_arr(2, _task_sizes_train.size(), 4, std::vector<int>(4, 20)); + std::copy_n(value_1.data(), _task_sizes_train[0], prop_sorted_d_mat::access_sorted_d_matrix(0)); + std::copy_n(value_2.data(), _task_sizes_train[0], prop_sorted_d_mat::access_sorted_d_matrix(1)); + } + + void TearDown() override + { + prop_sorted_d_mat::finalize_sorted_d_matrix_arr(); + node_value_arrs::finalize_values_arr(); } std::vector<node_ptr> _phi; diff --git a/tests/googletest/loss_function/test_log_pearson_loss.cc b/tests/googletest/loss_function/test_log_pearson_loss.cc index e1426d2c..85d95f6b 100644 --- a/tests/googletest/loss_function/test_log_pearson_loss.cc +++ b/tests/googletest/loss_function/test_log_pearson_loss.cc @@ -91,6 +91,11 @@ namespace std::transform(_prop_test_no_bias.begin(), _prop_test_no_bias.end(), _log_prop_test_no_bias.begin(), [](double p){return std::log(p);}); } + void TearDown() override + { + node_value_arrs::finalize_values_arr(); + } + std::vector<node_ptr> _phi; std::vector<model_node_ptr> _model_phi; diff --git a/tests/googletest/loss_function/test_pearson_loss.cc b/tests/googletest/loss_function/test_pearson_loss.cc index 7defcc8e..9148c0cd 100644 --- a/tests/googletest/loss_function/test_pearson_loss.cc +++ b/tests/googletest/loss_function/test_pearson_loss.cc @@ -78,6 +78,11 @@ namespace std::transform(test_value_1.begin(), test_value_1.end(), test_value_2.begin(), _prop_test_no_bias.begin(), [=](double v0, double v1){return a0 * v0 + a1 * v1;}); } + void TearDown() override + { + node_value_arrs::finalize_values_arr(); + } + std::vector<node_ptr> _phi; std::vector<model_node_ptr> _model_phi; diff --git a/tests/googletest/nl_opt/nl_opt_classifier.cc b/tests/googletest/nl_opt/nl_opt_classifier.cc index f9716306..3e0648cc 100644 --- a/tests/googletest/nl_opt/nl_opt_classifier.cc +++ b/tests/googletest/nl_opt/nl_opt_classifier.cc @@ -59,6 +59,12 @@ namespace _params = {1.0, 7.5}; } + + void TearDown() override + { + node_value_arrs::finalize_values_arr(); + } + std::vector<int> _task_sizes_train; std::vector<double> _prop_train; std::vector<double> _params; diff --git a/tests/googletest/nl_opt/nl_opt_log_regressor.cc b/tests/googletest/nl_opt/nl_opt_log_regressor.cc index dd7970e0..b019e98e 100644 --- a/tests/googletest/nl_opt/nl_opt_log_regressor.cc +++ b/tests/googletest/nl_opt/nl_opt_log_regressor.cc @@ -53,6 +53,12 @@ namespace [](double val){return std::log(val);} ); } + + void TearDown() override + { + node_value_arrs::finalize_values_arr(); + } + std::vector<int> _task_sizes_train; std::vector<double> _prop_train; std::vector<double> _params; diff --git a/tests/googletest/nl_opt/nl_opt_regressor.cc b/tests/googletest/nl_opt/nl_opt_regressor.cc index 670921a9..ac3e1152 100644 --- a/tests/googletest/nl_opt/nl_opt_regressor.cc +++ b/tests/googletest/nl_opt/nl_opt_regressor.cc @@ -48,6 +48,12 @@ namespace _params = {1.0, distribution_params(generator)}; std::copy_n(_feat->value_ptr(_params.data()), _task_sizes_train[0], _prop_train.data()); } + + void TearDown() override + { + node_value_arrs::finalize_values_arr(); + } + std::vector<int> _task_sizes_train; std::vector<double> _prop_train; std::vector<double> _params; diff --git a/tests/googletest/utils/test_compare_features.cc b/tests/googletest/utils/test_compare_features.cc index 9826c79c..a976b723 100644 --- a/tests/googletest/utils/test_compare_features.cc +++ b/tests/googletest/utils/test_compare_features.cc @@ -43,5 +43,6 @@ namespace { EXPECT_TRUE(comp_feats::valid_feature_against_selected_pearson_max_corr_1_feat_list(val_2.data(), 4, 1.0, selected, scores, 0.9028289727756884)); EXPECT_TRUE(comp_feats::valid_feature_against_selected_pearson(val_2.data(), 4, 1.0, scores, 0.9028289727756884, 1, 0)); EXPECT_TRUE(comp_feats::valid_feature_against_selected_pearson_feat_list(val_2.data(), 4, 1.0, selected, scores, 0.9028289727756884)); + node_value_arrs::finalize_values_arr(); } } diff --git a/tests/googletest/utils/test_project.cc b/tests/googletest/utils/test_project.cc index 0f4b70dc..6abbf809 100644 --- a/tests/googletest/utils/test_project.cc +++ b/tests/googletest/utils/test_project.cc @@ -36,5 +36,6 @@ namespace { project_funcs::project_r_no_omp(prop.data(), scores.data(), phi, sizes, 1); EXPECT_LT(std::abs(-0.9028289727756884 - scores[0]), 1e-10); scores[0] = 0.0; + node_value_arrs::finalize_values_arr(); } } -- GitLab