From 5cdf5825e0e5a937c5bbc5cee49ed9aa34f0af0e Mon Sep 17 00:00:00 2001 From: vrouvrea Date: Mon, 19 Sep 2016 19:40:44 +0000 Subject: use of std::vector for unitary test instead of CGAL points type rename unitary test as stands in convention git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/gudhi/trunk@1511 636b058d-ea47-450e-bf9e-a15bfbe3eedb Former-commit-id: b768b5a6bb0fe823abe6cbbea28d49c7ecb39a9d --- src/common/test/CMakeLists.txt | 27 +++------ src/common/test/points_off_reader_unit_test.cpp | 78 ------------------------- src/common/test/test_points_off_reader.cpp | 73 +++++++++++++++++++++++ 3 files changed, 81 insertions(+), 97 deletions(-) delete mode 100644 src/common/test/points_off_reader_unit_test.cpp create mode 100644 src/common/test/test_points_off_reader.cpp diff --git a/src/common/test/CMakeLists.txt b/src/common/test/CMakeLists.txt index 0a88cf8e..7ccdb752 100644 --- a/src/common/test/CMakeLists.txt +++ b/src/common/test/CMakeLists.txt @@ -10,26 +10,15 @@ if (GPROF_PATH) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pg") endif() -# need CGAL 4.7 -if(CGAL_FOUND) - if (NOT CGAL_VERSION VERSION_LESS 4.7.0) - if (EIGEN3_FOUND) - add_executable ( poffreader_UT points_off_reader_unit_test.cpp ) - target_link_libraries(poffreader_UT ${Boost_SYSTEM_LIBRARY} ${Boost_UNIT_TEST_FRAMEWORK_LIBRARY}) +add_executable ( poffreader_UT test_points_off_reader.cpp ) +target_link_libraries(poffreader_UT ${Boost_SYSTEM_LIBRARY} ${Boost_UNIT_TEST_FRAMEWORK_LIBRARY}) - # Do not forget to copy test files in current binary dir - file(COPY "${CMAKE_SOURCE_DIR}/data/points/alphacomplexdoc.off" DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/) +# Do not forget to copy test files in current binary dir +file(COPY "${CMAKE_SOURCE_DIR}/data/points/alphacomplexdoc.off" DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/) - # Unitary tests - add_test(poffreader_UT ${CMAKE_CURRENT_BINARY_DIR}/poffreader_UT - # XML format for Jenkins xUnit plugin - --log_format=XML --log_sink=${CMAKE_SOURCE_DIR}/poffreader_UT.xml --log_level=test_suite --report_level=no) +# Unitary tests +add_test(poffreader_UT ${CMAKE_CURRENT_BINARY_DIR}/poffreader_UT + # XML format for Jenkins xUnit plugin + --log_format=XML --log_sink=${CMAKE_SOURCE_DIR}/poffreader_UT.xml --log_level=test_suite --report_level=no) - else() - message(WARNING "Eigen3 not found. Version 3.1.0 is required for points_off_reader unitary tests.") - endif() - else() - message(WARNING "CGAL version: ${CGAL_VERSION} is too old to compile points_off_reader unitary tests. Version 4.7.0 is required.") - endif () -endif() diff --git a/src/common/test/points_off_reader_unit_test.cpp b/src/common/test/points_off_reader_unit_test.cpp deleted file mode 100644 index dbcc0434..00000000 --- a/src/common/test/points_off_reader_unit_test.cpp +++ /dev/null @@ -1,78 +0,0 @@ -/* This file is part of the Gudhi Library. The Gudhi library - * (Geometric Understanding in Higher Dimensions) is a generic C++ - * library for computational topology. - * - * Author(s): Vincent Rouvreau - * - * Copyright (C) 2015 INRIA Saclay (France) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include - -// For CGAL points type in dimension d -// cf. http://doc.cgal.org/latest/Kernel_d/classCGAL_1_1Point__d.html -#include - -#include -#include -#include - -#define BOOST_TEST_DYN_LINK -#define BOOST_TEST_MODULE "points_off_read_write" -#include - -typedef CGAL::Epick_d< CGAL::Dynamic_dimension_tag > Kernel; -typedef Kernel::Point_d Point_d; - -BOOST_AUTO_TEST_CASE( points_doc_test ) -{ - // Read the OFF file (input file name given as parameter) and triangulates points - Gudhi::Points_off_reader off_reader("alphacomplexdoc.off"); - // Check the read operation was correct - BOOST_CHECK(off_reader.is_valid()); - - // Retrieve the triangulation - std::vector point_cloud = off_reader.get_point_cloud(); - BOOST_CHECK(point_cloud.size() == 7); - - std::vector expected_points; - std::vector point = {1.0, 1.0}; - expected_points.push_back(Point_d(2, point.begin(), point.end())); - point = {7.0, 0.0}; - expected_points.push_back(Point_d(2, point.begin(), point.end())); - point = {4.0, 6.0}; - expected_points.push_back(Point_d(2, point.begin(), point.end())); - point = {9.0, 6.0}; - expected_points.push_back(Point_d(2, point.begin(), point.end())); - point = {0.0, 14.0}; - expected_points.push_back(Point_d(2, point.begin(), point.end())); - point = {2.0, 19.0}; - expected_points.push_back(Point_d(2, point.begin(), point.end())); - point = {9.0, 17.0}; - expected_points.push_back(Point_d(2, point.begin(), point.end())); - - BOOST_CHECK(point_cloud == expected_points); -} - -BOOST_AUTO_TEST_CASE( Delaunay_triangulation_unexisting_file_read_test ) -{ - Gudhi::Points_off_reader off_reader("some_impossible_weird_file_name.off"); - // Check the read operation was correct - BOOST_CHECK(!off_reader.is_valid()); - - std::vector point_cloud = off_reader.get_point_cloud(); - BOOST_CHECK(point_cloud.size() == 0); -} diff --git a/src/common/test/test_points_off_reader.cpp b/src/common/test/test_points_off_reader.cpp new file mode 100644 index 00000000..b4f71182 --- /dev/null +++ b/src/common/test/test_points_off_reader.cpp @@ -0,0 +1,73 @@ +/* This file is part of the Gudhi Library. The Gudhi library + * (Geometric Understanding in Higher Dimensions) is a generic C++ + * library for computational topology. + * + * Author(s): Vincent Rouvreau + * + * Copyright (C) 2015 INRIA Saclay (France) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include + +#include +#include +#include + +#define BOOST_TEST_DYN_LINK +#define BOOST_TEST_MODULE "points_off_read_write" +#include + +using Point_d = std::vector; + +BOOST_AUTO_TEST_CASE( points_doc_test ) +{ + // Read the OFF file (input file name given as parameter) and triangulates points + Gudhi::Points_off_reader off_reader("alphacomplexdoc.off"); + // Check the read operation was correct + BOOST_CHECK(off_reader.is_valid()); + + // Retrieve the triangulation + std::vector point_cloud = off_reader.get_point_cloud(); + BOOST_CHECK(point_cloud.size() == 7); + + std::vector expected_points; + std::vector point = {1.0, 1.0}; + expected_points.push_back(Point_d(point.begin(), point.end())); + point = {7.0, 0.0}; + expected_points.push_back(Point_d(point.begin(), point.end())); + point = {4.0, 6.0}; + expected_points.push_back(Point_d(point.begin(), point.end())); + point = {9.0, 6.0}; + expected_points.push_back(Point_d(point.begin(), point.end())); + point = {0.0, 14.0}; + expected_points.push_back(Point_d(point.begin(), point.end())); + point = {2.0, 19.0}; + expected_points.push_back(Point_d(point.begin(), point.end())); + point = {9.0, 17.0}; + expected_points.push_back(Point_d(point.begin(), point.end())); + + BOOST_CHECK(point_cloud == expected_points); +} + +BOOST_AUTO_TEST_CASE( Delaunay_triangulation_unexisting_file_read_test ) +{ + Gudhi::Points_off_reader off_reader("some_impossible_weird_file_name.off"); + // Check the read operation was correct + BOOST_CHECK(!off_reader.is_valid()); + + std::vector point_cloud = off_reader.get_point_cloud(); + BOOST_CHECK(point_cloud.size() == 0); +} -- cgit v1.2.3