diff --git a/src/classification/prop_sorted_d_mat.cpp b/src/classification/prop_sorted_d_mat.cpp index 386ca307f8e491723476337b54f6083490d87821..8d10aa70ea643a0c9b216464474ff39ec23a4b47 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 acabd3b7c34ae59c315c2ca186d802376c0f851a..95a2725d510b88c0ad0161bfc6a7b58de5651cfd 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 5af8e3eec7183cf6f354a640d37cbcbdc0e70307..589d068f4cb90b781842b82b8afe6bd6f20f063a 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 c7fa9e35088f3e2a52ae9510727dedcf3d8d7532..55f5d705f9eb11398c655b40cdaccde5425b0eba 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 6967d67f50c6ef85cca1d9daec9664429be604a5..0b793bfe4d2668c5d7f8581956ff2b784423de21 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 6c0750d4cc25fc87079006c8bbf2532a0d7c1930..828b7618c8d93c1241f518a4b78680a989e30e62 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 471b6b3c0245bff86f087a6778d6c7845b011947..f9ea45f2097dfd1da2be87e79f49912a3f06d056 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 dee6afba9a418c5f472e0eb435e44978ea677183..f2b71fed1c239de944218a534ad5633cf4eba24f 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 def747f6734678bd3fd9974872866b7fdab6aa24..524c2926287e5e2e5917cf0c3c01fb53dc6f1918 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 52860daa722839fee17a2a299bbfae72dcc0f253..619a6d7aea67d63e7f42481924d47af7d8a8d7da 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 9573ae785efc9e0c4ba068bf89ffdff274856798..b0084cb22fafbc17cbbd58c2069b418541b483bf 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 6b353c522fdd804900d6be97b2df7326fbaf8d2b..bccf03a1cc3129fdfcbf72b205fff97cd36c8b44 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 50efd6bdec1cb72cac89ce3c7695adf25936ea2b..60d18e159bffe9249c91de829f41c934aefce710 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 a6cf0b46496d23ed997d1bfa6c8edcbd08b6b4c3..e61cf3f09c0a9ad0e353ce58f50a5f1a4b76e124 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 d9898c430dfb5df86094c514b1504ec9bdd57142..b55ee6bcc6d4f0808d555c24bda349d82c8067e2 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 84b3790a9e3f8440f78880e3a507fff94b29aa82..1034836027c1629b6bd063584add38f3d4abba64 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 35995fcb574b8abb6fcec474d795792f6e7958e3..c738b9a70f2154ffea89d3a8f5f4c30f9175cea6 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 03cdd564a9e1e7aa289208967d0e4b9bb5c5141c..3018b0f64bdea0d8dcc5a8ff53ae84f5435cf9a2 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 9668bf16a15d3b82754db809463b3220f8d50a11..e196bd19aa6090665577cee3ce3ac6ec2a140177 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 989b7500af98f03c35dedb27276f18356ce86e6a..d1d5440fa73f0b92f49488f95ae3c7e290082311 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 329bb0bc73f31cc1a7d3016c451532eb65aa5653..b50c377427009a83ed5486f134fe2c3ebb063be2 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 a658d9de2c8142d17efa6db8fb953cd606424a7b..0a2ebebef8fc41450022543679351bbbb1c3395e 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 8de70ccc7dbaece3459afde0235cfadda15c5e20..e556cd04146933d1e17f19ee8ae1136a4ef6375c 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 0b54bc0d490fc95cdb227ca6c3d3c075d23eb0df..73ea5c78e59dc3aaf91cc4536cd7b9bc290a7671 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 a90af33f6e60f283c7c04e6f85d912909a9c3bc7..162cb34aa1e35fadb25aa02c59e215b1c00e7f0b 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 1337adbc4ea7672b686833d5a81a8df356c5ac6d..cb3dff658ded2d68fa3f40511ff3ed362da9988f 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 51480b42dd6fce9cb95f4e4df39b841be095c737..ffa48c9a7f2345892ab39a48044223ed19a05cea 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 56f46c633e3a69da63f49cc8d233f052ef54acd2..7eaa5cec0f5c653fdfe874b2b644c7ce29dc9bb3 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 872d087d46d6189f108079b1d569ad6a7abce9ec..87c67d1fe01c8ada56d699d0a43405111c1763e2 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 9b50206945ff2139655e1d3d243256021f41eb6d..8b45808d1c48f76fa0be008f4333a570da4ab733 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 411902d32a2198500ca6b0abb7a72dd4b7c657ad..eecf8f70aa1863594069460fed4905138099c142 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 0ed9d1ca6b638f19c0b11f51c29bdb5a866de9fa..55d5707ab8f10bb0edbc41c4da200773761c10b9 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 aa4263c51b4971147704332e38339e7b0726a76f..b00850baa4cf805c696e3c55bca4ce3a3ebe3006 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 e5d3d0d81c55a61d9095fcc9f02b9ba2c422edc5..3c5969682566a9352a5f4dbc9f18dfbc5b178430 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 632899ccba12cab652cade7202268e30b4ae643c..5bf192801366d35351de994f2b0b08b7ee9551c6 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 254fc49d7998fcd2b977622849fc308b3f6a05d3..0e47ee5555ff1d61457bd3f5d97da7ef4a8b7e63 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 dc308a944e2d95ef4af2d63ed13a2d48ff47bf8e..f4aad1568d82a9795835493d344c89dccbb0ec96 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 1d30c91c5e7a3209d780ae31da298ce6101ee168..3d4bc533f772af9f9638ef746d47f54c05bf5eee 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 f0688b45524d98ecc17dae85aae169309fc67d5e..79ee8fbd6fcb1cae398d4fac862dbf62818cbd33 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 cf7bf7c62e720c135f79ecaaa609c306538e0fdb..a337b3dcaa2f6cb394f7be778565f35f00f4dcd3 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 9399eacf28b99ac9b832c9b20c1ab3325556209a..c9b3f000a6f68b91082f48f928607773be06b976 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 81e5d78de8c7fa79a96db2bccb66e89d90a04683..42652870db126a03d6505a963655645206ec2599 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 6b3c1bef87e643ef452e9ae2f46ceed3a70f193c..80c1fcc5908d4ac8e03c61586f5abda2e2212428 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 e8e988ceafafab6bb96dcfbc184b3e060e187464..134b44aec6acce2a85c03e675d52d7caa6cfaeaf 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 202b05e366d25fa0f22c76c890995916e75476ce..c498c9b187f2979264bad0e5a3ac6c3eb3324efe 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 19008656b7f277f611aa792f236cc71bee70bebd..78940e6ab687744b45b0a8cc218473204c562a51 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 cef2d1bb8bb9f5ba768f4835f38e7938ea9a6ada..1341e30885bb7ec9359d3bfa13a1024ef5b1d875 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 dccbf234488cfe2b9c25e28117601ab726fb6e06..4f5d3f4240d3f55b98a3bf7c41e9f1bcda0f305e 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 9d6759d9dd1d16d79dc46cb6052bb13d5298d008..43a038767f84dfb14c75c51ffef5f57daa537e79 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 cb2ef047e99751d439ac1d96c549294f975b558a..b648a05956a561a8438664dfa567f5ce5a67e123 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 3e3e8f500f2aef3aa2afb2c8b4766c9d0be57b90..ff277add4eabe8c5f49171ee90d5ccaf921e1a5a 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 ca42f461e0f0fae29715f4f69b5d88b33150ac76..b9d7cbf5c043ac180bb43de5b3587deb3c452a80 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 770a055302e35a690894770c5a3339c84d2dc799..03826f667974bb42a4b82bdb0637897baf80f327 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 91a13a8a33277716c3da4f4d30e9a76b091b5c8d..6df971e4ee6710d2217f33626292cfd4632429ce 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 cb936433f63ffb3baa77aa0720067c1ca02d512b..4b74be54e7924fc516c7b96129d7437ff209d51e 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 5db1d69eca9d6e615d82d5ce05ff52ce12f9b64e..58fa6e5fc5b1c96f29963363fe69f8836114c2c2 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 edfbe6d03a81e6032d40948beb431140f658adf4..3a6f4aa5a83ad20a19ee2f4051ab611619cfb998 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 df2485dc02cb8c306a6fe4853a73d764f0095e31..d3129f52caa723ee4812013e85f68fcd18a9ec88 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 c6dfa722c82d182c6a1dfef7692f36470dd8c6fc..d61e7ad897bb8f754de5dc51bae2f7923e28ba89 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 e1426d2cd79b310084de97ac5ac1ac178a3ff43e..85d95f6bade181e827f3b08267592da58776d83e 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 7defcc8e745a68f0f0f93db8e51ec9738a033c02..9148c0cd73d2ac7b6237e642ae13f096f215c9c3 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 f971630660ca6eba7d7c7c33ff693addfc38f2cb..3e0648cc7e8c9af1293511b56c3b3a62b868bc74 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 dd7970e0623bb88f5fb814a676e1cbb3361b4071..b019e98e4544d0fce496ae5e4f916b1dcab3084e 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 670921a9a71d40b0a3b88b4db6699999d7f7d578..ac3e1152f1e7177452b4c1cafeb22b8f03c5f694 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 9826c79cbf010a02b24d1aed2ee1f57d68032d51..a976b7231d6f969bc7795dfbc08c6488f30a60ee 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 0f4b70dc1c0eb8e242cfc670b222260d1589b78a..6abbf8098ef83e03d8c31855ef11afe5fe0be282 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(); } }