From d145e7190966d06db0fd36c3ac9ad2059708779c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ricardo=20Monta=C3=B1ana=20G=C3=B3mez?= Date: Tue, 9 Jan 2024 18:44:41 +0100 Subject: [PATCH] Fix tests --- CMakeLists.txt | 2 +- Makefile | 19 +++++++++---------- README.md | 2 +- tests/CMakeLists.txt | 11 +++++------ tests/TestUtils.cc | 9 +++++---- tests/TestUtils.h | 4 ++-- 6 files changed, 23 insertions(+), 24 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 1bd0708..16f7d22 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -68,7 +68,7 @@ if (ENABLE_CLANG_TIDY) include(StaticAnalyzers) # clang-tidy endif (ENABLE_CLANG_TIDY) -# External libraries - dependencies of BayesNet +# External libraries - dependencies of Platform # --------------------------------------------- add_git_submodule("lib/PyClassifiers") add_git_submodule("lib/argparse") diff --git a/Makefile b/Makefile index e3ccdbb..2af685e 100644 --- a/Makefile +++ b/Makefile @@ -62,7 +62,7 @@ buildr: ## Build the release targets cmake --build $(f_release) -t $(app_targets) $(n_procs) clean: ## Clean the tests info - @echo ">>> Cleaning Debug BayesNet tests..."; + @echo ">>> Cleaning Debug Platform tests..."; $(call ClearTests) @echo ">>> Done"; @@ -70,14 +70,14 @@ clang-uml: ## Create uml class and sequence diagrams clang-uml -p --add-compile-flag -I /usr/lib/gcc/x86_64-redhat-linux/8/include/ debug: ## Build a debug version of the project - @echo ">>> Building Debug BayesNet..."; + @echo ">>> Building Debug Platform..."; @if [ -d ./$(f_debug) ]; then rm -rf ./$(f_debug); fi @mkdir $(f_debug); @cmake -S . -B $(f_debug) -D CMAKE_BUILD_TYPE=Debug -D ENABLE_TESTING=ON -D CODE_COVERAGE=ON @echo ">>> Done"; release: ## Build a Release version of the project - @echo ">>> Building Release BayesNet..."; + @echo ">>> Building Release Platform..."; @if [ -d ./$(f_release) ]; then rm -rf ./$(f_release); fi @mkdir $(f_release); @cmake -S . -B $(f_release) -D CMAKE_BUILD_TYPE=Release @@ -85,7 +85,7 @@ release: ## Build a Release version of the project opt = "" test: ## Run tests (opt="-s") to verbose output the tests, (opt="-c='Test Maximum Spanning Tree'") to run only that section - @echo ">>> Running BayesNet & Platform tests..."; + @echo ">>> Running Platform tests..."; @$(MAKE) clean @cmake --build $(f_debug) -t $(test_targets) $(n_procs) @for t in $(test_targets); do \ @@ -105,19 +105,18 @@ testp: ## Run platform tests (opt="-s") to verbose output the tests, (opt="-c='S @echo ">>> Done"; opt = "" -testb: ## Run BayesNet tests (opt="-s") to verbose output the tests, (opt="-c='Test Maximum Spanning Tree'") to run only that section - @echo ">>> Running BayesNet tests..."; +testb: ## Run Platform tests (opt="-s") to verbose output the tests, (opt="-c='Test Maximum Spanning Tree'") to run only that section + @echo ">>> Running Platform tests..."; @$(MAKE) clean @cmake --build $(f_debug) --target unit_tests_bayesnet $(n_procs) @if [ -f $(f_debug)/tests/unit_tests_bayesnet ]; then cd $(f_debug)/tests ; ./unit_tests_bayesnet $(opt) ; fi ; @echo ">>> Done"; coverage: ## Run tests and generate coverage report (build/index.html) - @echo ">>> Building tests with coverage..."; + @echo ">>> Building tests with coverage..." @$(MAKE) test - @cd $(f_debug) ; \ - gcovr --config ../gcovr.cfg tests ; - @echo ">>> Done"; + @gcovr $(f_debug)/tests + @echo ">>> Done"; help: ## Show help message diff --git a/README.md b/README.md index 6d8af06..dd7af93 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ Platform to run Bayesian Networks and Machine Learning Classifiers experiments. ## 0. Setup -Before compiling BayesNet. +Before compiling Platform. ### Miniconda diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index ca206ba..951e73e 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -1,12 +1,11 @@ if(ENABLE_TESTING) set(TEST_PLATFORM "unit_tests_platform") include_directories( - ${BayesNet_SOURCE_DIR}/src/BayesNet - ${BayesNet_SOURCE_DIR}/src/Platform - ${BayesNet_SOURCE_DIR}/lib/Files - ${BayesNet_SOURCE_DIR}/lib/mdlp - ${BayesNet_SOURCE_DIR}/lib/json/include - ${BayesNet_SOURCE_DIR}/lib/argparse/include + ${Platform_SOURCE_DIR}/src/Platform + ${Platform_SOURCE_DIR}/lib/argparse/include + ${Platform_SOURCE_DIR}/lib/PyClassifiers/lib/BayesNet/lib/mdlp + ${Platform_SOURCE_DIR}/lib/Files + ${CMAKE_BINARY_DIR}/configured_files/include ) set(TEST_SOURCES_PLATFORM TestUtils.cc) add_executable(${TEST_PLATFORM} ${TEST_SOURCES_PLATFORM}) diff --git a/tests/TestUtils.cc b/tests/TestUtils.cc index 1a63675..5a0910e 100644 --- a/tests/TestUtils.cc +++ b/tests/TestUtils.cc @@ -1,10 +1,11 @@ #include "TestUtils.h" +#include "config.h" class Paths { public: static std::string datasets() { - return "../../data/"; + return { data_path.begin(), data_path.end() }; } }; @@ -34,7 +35,7 @@ std::vector discretizeDataset(std::vector& X, m return Xd; } -bool file_exists(const std::std::string& name) +bool file_exists(const std::string& name) { if (FILE* file = fopen(name.c_str(), "r")) { fclose(file); @@ -44,7 +45,7 @@ bool file_exists(const std::std::string& name) } } -tuple, std::string, map>> loadDataset(const std::std::string& name, bool class_last, bool discretize_dataset) +tuple, std::string, map>> loadDataset(const std::string& name, bool class_last, bool discretize_dataset) { auto handler = ArffFiles(); handler.load(Paths::datasets() + static_cast(name) + ".arff", class_last); @@ -78,7 +79,7 @@ tuple, std::string, map>, std::vector, std::vector, std::string, map>> loadFile(const std::std::string& name) +tuple>, std::vector, std::vector, std::string, map>> loadFile(const std::string& name) { auto handler = ArffFiles(); handler.load(Paths::datasets() + static_cast(name) + ".arff"); diff --git a/tests/TestUtils.h b/tests/TestUtils.h index e6a713f..72954c0 100644 --- a/tests/TestUtils.h +++ b/tests/TestUtils.h @@ -4,11 +4,11 @@ #include #include #include -#include +#include #include "ArffFiles.h" #include "CPPFImdlp.h" -bool file_exists(const std::std::string& name); +bool file_exists(const std::string& name); std::pair, map> discretize(std::vector& X, mdlp::labels_t& y, std::vector features); std::vector discretizeDataset(std::vector& X, mdlp::labels_t& y); std::tuple>, std::vector, std::vector, std::string, map>> loadFile(const std::string& name);