diff --git a/metrics/CMakeLists.txt b/metrics/CMakeLists.txt index 73da6de18a192043694807b19d26b3d3ad2ec77b..83bc97d7022427064d0696fa61c04caf788f52d6 100644 --- a/metrics/CMakeLists.txt +++ b/metrics/CMakeLists.txt @@ -3,6 +3,11 @@ add_library(MetricsLib source/TextMetricImpl.cpp source/TokenMetricImpl.cpp) target_include_directories(MetricsLib PUBLIC metrics_headers) target_link_libraries(MetricsLib PUBLIC ${Boost_LIBRARIES}) +add_custom_target( + ${PROJECT_NAME}_COVERAGE + COMMAND gcovr ${CMAKE_CURRENT_BINARY_DIR} -r ${CMAKE_CURRENT_SOURCE_DIR} +) + #if(BUILD_TESTS) add_subdirectory(tests) #endif() \ No newline at end of file diff --git a/metrics/metrics_headers/TextMetricsLib.h b/metrics/metrics_headers/TextMetricsLib.h index 16f25d710e06e22fdeb6df2f60a278e152ac87f2..bae3a7e4ca26df5e6cd8b59bb4d62ee59321b550 100644 --- a/metrics/metrics_headers/TextMetricsLib.h +++ b/metrics/metrics_headers/TextMetricsLib.h @@ -13,7 +13,6 @@ #include - class ITextMetric{ virtual void countMetric() = 0; virtual void setData(std::string text1, std::string text2) = 0; @@ -33,7 +32,7 @@ private: static std::vector tbmTokenizer(const std::string &text); }; -class LivDistTextMetric : public PrepareDataTextMetric{ +class LevDistTextMetric : public PrepareDataTextMetric{ public: void countMetric() override; }; diff --git a/metrics/source/TextMetricImpl.cpp b/metrics/source/TextMetricImpl.cpp index f9c595b189f6b8704f596e0383848a9d1c939f5c..0727ad01150f2c56e73512aff344a6158d1c7936 100644 --- a/metrics/source/TextMetricImpl.cpp +++ b/metrics/source/TextMetricImpl.cpp @@ -69,7 +69,7 @@ double PrepareDataTextMetric::getMetric() { return metric_res; } -void LivDistTextMetric::countMetric(){ +void LevDistTextMetric::countMetric(){ unsigned long n = tokens1.size(); unsigned long m = tokens2.size(); int x, y, z; @@ -116,5 +116,8 @@ void JaccardTextMetric::countMetric() { set_union(s1.begin(), s1.end(), s2.begin(), s2.end(), std::inserter(union_sets, union_sets.begin())); - metric_res = static_cast (intersect_sets.size()) / static_cast (union_sets.size()); + if (union_sets.empty()) + metric_res = 0; + else + metric_res = static_cast (intersect_sets.size()) / static_cast (union_sets.size()); } diff --git a/metrics/tests/src/text_metrics_tests.cpp b/metrics/tests/src/text_metrics_tests.cpp index c906aa5291ca416291ac81a432c4183a67344151..e8317dd28eb99a5603d8b7f836ac5a66144c3586 100644 --- a/metrics/tests/src/text_metrics_tests.cpp +++ b/metrics/tests/src/text_metrics_tests.cpp @@ -13,9 +13,9 @@ class LivDistTextMetricTest : public ::testing::Test { protected: - std::unique_ptr livDistTextMetric; + std::unique_ptr livDistTextMetric; void SetUp(){ - livDistTextMetric = std::make_unique (); + livDistTextMetric = std::make_unique (); } void TearDown(){} }; diff --git a/src/main.cpp b/src/main.cpp index b2d44b0f040fbdb358dff80324d7f483544dfde3..7caaf2e2a56c1dc8b28bfef8871363fd6de77b65 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -20,7 +20,7 @@ int main(){ fin1.close(); fin2.close(); - LivDistTextMetric livDistTextMetric; + LevDistTextMetric livDistTextMetric; JaccardTextMetric jaccardTextMetric; livDistTextMetric.setData(text1, text2);