From 80c1802e106bda3b9b851eb7252057bba31d4ac7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ricardo=20Monta=C3=B1ana?= Date: Sun, 4 Dec 2022 22:16:08 +0100 Subject: [PATCH] Add some tests --- Makefile | 1 + fimdlp/CPPFImdlp.cpp | 8 +++----- fimdlp/cppfimdlp.cpython-310-darwin.so | Bin 122968 -> 123264 bytes fimdlp/testcpp/FImdlp_unittest.cc | 12 ++++++++++++ 4 files changed, 16 insertions(+), 5 deletions(-) diff --git a/Makefile b/Makefile index b7d92df..9b99264 100644 --- a/Makefile +++ b/Makefile @@ -11,6 +11,7 @@ test: cd fimdlp/testcpp && ./test coverage: + if [ -d fimdlp/testcpp/build/CMakeFiles ]; then rm -fr fimdlp/testcpp/build/CMakeFiles/* ; fi; make test cd fimdlp/testcpp && ./cover diff --git a/fimdlp/CPPFImdlp.cpp b/fimdlp/CPPFImdlp.cpp index 27621d3..4b415c6 100644 --- a/fimdlp/CPPFImdlp.cpp +++ b/fimdlp/CPPFImdlp.cpp @@ -41,12 +41,10 @@ namespace mdlp { X = X_; y = y_; if (X.size() != y.size()) { - cerr << "X and y must have the same size" << endl; - return *this; + throw invalid_argument("X and y must have the same size"); } - if (X.size() == 0) { - cerr << "X and y must have at least one element" << endl; - return *this; + if (X.size() == 0 || y.size() == 0) { + throw invalid_argument("X and y must have at least one element"); } this->indices = sortIndices(X_); this->xDiscretized = labels(X.size(), -1); diff --git a/fimdlp/cppfimdlp.cpython-310-darwin.so b/fimdlp/cppfimdlp.cpython-310-darwin.so index 285ee7f1c501bddac5e880f7a24b7e034e6d803b..60cc322931375fdc5ab8428db5da1ce5f0fe61ab 100755 GIT binary patch delta 10095 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 P3+uZa;=}E9McDrUTQ&O? delta 9742 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