3 Commits

Author SHA1 Message Date
8a1b68376d Update debug build 2025-07-17 11:45:56 +02:00
Ricardo Montañana Gómez
563a84659f Fix conan and create new version (#11)
* First approach

* Fix debug conan build target

* Add viewcoverage and fix coverage generation

* Add more tests to cover new integrity checks

* Add tests to accomplish 100%

* Fix conan-create makefile target
2025-07-17 00:14:18 +02:00
1b9d924ebe Update version and dependencies 2025-07-16 23:40:33 +02:00
4 changed files with 22 additions and 25 deletions

View File

@@ -19,29 +19,26 @@ jobs:
submodules: recursive submodules: recursive
- name: Install sonar-scanner and build-wrapper - name: Install sonar-scanner and build-wrapper
uses: SonarSource/sonarcloud-github-c-cpp@v2 uses: SonarSource/sonarcloud-github-c-cpp@v2
- name: Install Python and Conan
run: |
sudo apt-get update
sudo apt-get -y install python3 python3-pip
pip3 install conan
- name: Install lcov & gcovr - name: Install lcov & gcovr
run: | run: |
sudo apt-get -y install lcov sudo apt-get -y install lcov
sudo apt-get -y install gcovr sudo apt-get -y install gcovr
- name: Setup Conan profileson - name: Install Libtorch
run: | run: |
conan profile detect --force wget https://download.pytorch.org/libtorch/cpu/libtorch-cxx11-abi-shared-with-deps-2.3.1%2Bcpu.zip
conan remote add cimmeria https://conan.rmontanana.es/artifactory/api/conan/Cimmeria unzip libtorch-cxx11-abi-shared-with-deps-2.3.1+cpu.zip
- name: Install dependencies with Conan
run: |
conan install . --build=missing -of build_debug -s build_type=Debug -o enable_testing=True
- name: Configure with CMake
run: |
cmake -S . -B build_debug -DCMAKE_TOOLCHAIN_FILE=build_debug/build/Debug/generators/conan_toolchain.cmake -DCMAKE_BUILD_TYPE=Debug -DENABLE_TESTING=ON
- name: Tests & build-wrapper - name: Tests & build-wrapper
run: | run: |
build-wrapper-linux-x86-64 --out-dir ${{ env.BUILD_WRAPPER_OUT_DIR }} cmake --build build_debug --config Debug -j 4 cmake -S . -B build -Wno-dev -DCMAKE_PREFIX_PATH=$(pwd)/libtorch -DCMAKE_BUILD_TYPE=Debug -DENABLE_TESTING=ON
cp -r tests/datasets build_debug/tests/datasets build-wrapper-linux-x86-64 --out-dir ${{ env.BUILD_WRAPPER_OUT_DIR }} cmake --build build/ --config Debug
cd build_debug/tests cmake --build build -j 4
ctest --output-on-failure -j 4 cd build
ctest -C Debug --output-on-failure -j 4
gcovr -f ../src/CPPFImdlp.cpp -f ../src/Metrics.cpp -f ../src/BinDisc.cpp -f ../src/Discretizer.cpp --txt --sonarqube=coverage.xml
- name: Run sonar-scanner
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
run: |
sonar-scanner --define sonar.cfamily.compile-commands="${{ env.BUILD_WRAPPER_OUT_DIR }}" \
--define sonar.coverageReportPaths=build/coverage.xml

View File

@@ -7,11 +7,9 @@ This directory contains the Conan package configuration for the fimdlp library.
The package manages the following dependencies: The package manages the following dependencies:
### Build Requirements ### Build Requirements
- **libtorch/2.4.1** - PyTorch C++ library for tensor operations - **libtorch/2.4.1** - PyTorch C++ library for tensor operations
### Test Requirements (when testing enabled) ### Test Requirements (when testing enabled)
- **catch2/3.8.1** - Modern C++ testing framework - **catch2/3.8.1** - Modern C++ testing framework
- **arff-files** - ARFF file format support (included locally in tests/lib/Files/) - **arff-files** - ARFF file format support (included locally in tests/lib/Files/)
@@ -69,7 +67,7 @@ conan create . -o shared=True --profile:build=default --profile:host=default
```bash ```bash
# Add Cimmeria remote # Add Cimmeria remote
conan remote add cimmeria https://conan.rmontanana.es/artifactory/api/conan/Cimmeria conan remote add cimmeria <cimmeria-server-url>
# Login to Cimmeria # Login to Cimmeria
conan remote login cimmeria <username> conan remote login cimmeria <username>

View File

@@ -20,7 +20,7 @@ debug: ## Build Debug version of the library
@$(call build_target,"Debug","$(f_debug)", "ENABLE_TESTING=ON", "-o enable_testing=True") @$(call build_target,"Debug","$(f_debug)", "ENABLE_TESTING=ON", "-o enable_testing=True")
release: ## Build Release version of the library release: ## Build Release version of the library
@$(call build_target,"Release","$(f_release)", "ENABLE_TESTING=OFF", "-o enable_testing=False") @$(call build_target,"Release","$(f_release)", "ENABLE_TESTING=OFF", "")
install: ## Install the library install: ## Install the library
@echo ">>> Installing the project..." @echo ">>> Installing the project..."

View File

@@ -3,7 +3,7 @@
[![Reliability Rating](https://sonarcloud.io/api/project_badges/measure?project=rmontanana_mdlp&metric=reliability_rating)](https://sonarcloud.io/summary/new_code?id=rmontanana_mdlp) [![Reliability Rating](https://sonarcloud.io/api/project_badges/measure?project=rmontanana_mdlp&metric=reliability_rating)](https://sonarcloud.io/summary/new_code?id=rmontanana_mdlp)
[![Coverage Badge](https://img.shields.io/badge/Coverage-100,0%25-green)](html/index.html) [![Coverage Badge](https://img.shields.io/badge/Coverage-100,0%25-green)](html/index.html)
[![Ask DeepWiki](https://deepwiki.com/badge.svg)](https://deepwiki.com/rmontanana/mdlp) [![Ask DeepWiki](https://deepwiki.com/badge.svg)](https://deepwiki.com/rmontanana/mdlp)
[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.16025501.svg)](https://doi.org/10.5281/zenodo.16025501) [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.14245443.svg)](https://doi.org/10.5281/zenodo.14245443)
# <img src="logo.png" alt="logo" width="50"/> mdlp # <img src="logo.png" alt="logo" width="50"/> mdlp
@@ -18,7 +18,9 @@ Other features:
- Intervals with the same value of the variable are not taken into account for cutpoints. - Intervals with the same value of the variable are not taken into account for cutpoints.
- Intervals have to have more than two examples to be evaluated (mdlp). - Intervals have to have more than two examples to be evaluated (mdlp).
- The algorithm returns the cut points for the variable. - The algorithm returns the cut points for the variable.
- The transform method uses the cut points returning its index in the following way: - The transform method uses the cut points returning its index in the following way:
cut[i - 1] <= x < cut[i] cut[i - 1] <= x < cut[i]