diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/Skeleton_blocker/include/gudhi/Skeleton_blocker/internal/Trie.h | 2 | ||||
-rw-r--r-- | src/Skeleton_blocker/test/test_skeleton_blocker_complex.cpp | 6 | ||||
-rw-r--r-- | src/common/example/CMakeLists.txt | 18 | ||||
-rw-r--r-- | src/common/example/example_CGAL_3D_points_off_reader.cpp (renamed from src/common/example/CGAL_3D_points_off_reader.cpp) | 0 | ||||
-rw-r--r-- | src/common/example/example_CGAL_points_off_reader.cpp (renamed from src/common/example/CGAL_points_off_reader.cpp) | 2 | ||||
-rw-r--r-- | src/common/example/example_vector_double_points_off_reader.cpp | 41 | ||||
-rw-r--r-- | src/common/include/gudhi/Points_off_io.h | 11 | ||||
-rw-r--r-- | src/common/test/CMakeLists.txt | 27 | ||||
-rw-r--r-- | src/common/test/test_points_off_reader.cpp (renamed from src/common/test/points_off_reader_unit_test.cpp) | 21 |
9 files changed, 79 insertions, 49 deletions
diff --git a/src/Skeleton_blocker/include/gudhi/Skeleton_blocker/internal/Trie.h b/src/Skeleton_blocker/include/gudhi/Skeleton_blocker/internal/Trie.h index b0ee35f5..2c9602fa 100644 --- a/src/Skeleton_blocker/include/gudhi/Skeleton_blocker/internal/Trie.h +++ b/src/Skeleton_blocker/include/gudhi/Skeleton_blocker/internal/Trie.h @@ -147,7 +147,7 @@ struct Trie { } void remove_leaf() { - assert(is_leaf); + assert(is_leaf()); if (!is_root()) parent_->childs.erase(this); } diff --git a/src/Skeleton_blocker/test/test_skeleton_blocker_complex.cpp b/src/Skeleton_blocker/test/test_skeleton_blocker_complex.cpp index 7b303935..4f9888ba 100644 --- a/src/Skeleton_blocker/test/test_skeleton_blocker_complex.cpp +++ b/src/Skeleton_blocker/test/test_skeleton_blocker_complex.cpp @@ -358,7 +358,8 @@ BOOST_AUTO_TEST_CASE(test_skeleton_iterator_blockers) { num_blockers = 0; for (auto blockers : complex.blocker_range()) { -#ifndef _WIN64 +// If not windows - _WIN32 is for windows 32 and 64 bits +#ifndef _WIN32 for (auto block_ptr = myBlockers.begin(); block_ptr < myBlockers.end(); block_ptr++) if (*block_ptr == *blockers) myBlockers.erase(block_ptr); @@ -366,7 +367,8 @@ BOOST_AUTO_TEST_CASE(test_skeleton_iterator_blockers) { num_blockers++; } BOOST_CHECK(num_blockers == 4); -#ifndef _WIN64 +// If not windows - _WIN32 is for windows 32 and 64 bits +#ifndef _WIN32 BOOST_CHECK(myBlockers.empty()); #endif } diff --git a/src/common/example/CMakeLists.txt b/src/common/example/CMakeLists.txt index 0da3dcc0..b0c6d69a 100644 --- a/src/common/example/CMakeLists.txt +++ b/src/common/example/CMakeLists.txt @@ -1,17 +1,21 @@ cmake_minimum_required(VERSION 2.6) project(Common_examples) -# need CGAL 4.7 +add_executable ( vector_double_off_reader example_vector_double_points_off_reader.cpp ) +target_link_libraries(vector_double_off_reader ${Boost_SYSTEM_LIBRARY} ${CGAL_LIBRARY}) +add_test(vector_double_off_reader ${CMAKE_CURRENT_BINARY_DIR}/vector_double_off_reader ${CMAKE_SOURCE_DIR}/data/points/SO3_10000.off) + if(CGAL_FOUND) - add_executable ( cgal3Doffreader CGAL_3D_points_off_reader.cpp ) - target_link_libraries(cgal3Doffreader ${Boost_SYSTEM_LIBRARY} ${CGAL_LIBRARY}) - add_test(cgal3Doffreader ${CMAKE_CURRENT_BINARY_DIR}/cgal3Doffreader ${CMAKE_SOURCE_DIR}/data/points/tore3D_300.off) + add_executable ( cgal_3D_off_reader example_CGAL_3D_points_off_reader.cpp ) + target_link_libraries(cgal_3D_off_reader ${Boost_SYSTEM_LIBRARY} ${CGAL_LIBRARY}) + add_test(cgal_3D_off_reader ${CMAKE_CURRENT_BINARY_DIR}/cgal_3D_off_reader ${CMAKE_SOURCE_DIR}/data/points/tore3D_300.off) + # need CGAL 4.7 if (NOT CGAL_VERSION VERSION_LESS 4.7.0) if (EIGEN3_FOUND) - add_executable ( cgaloffreader CGAL_points_off_reader.cpp ) - target_link_libraries(cgaloffreader ${Boost_SYSTEM_LIBRARY} ${CGAL_LIBRARY}) - add_test(cgaloffreader ${CMAKE_CURRENT_BINARY_DIR}/cgaloffreader ${CMAKE_SOURCE_DIR}/data/points/alphacomplexdoc.off) + add_executable ( cgal_off_reader example_CGAL_points_off_reader.cpp ) + target_link_libraries(cgal_off_reader ${Boost_SYSTEM_LIBRARY} ${CGAL_LIBRARY}) + add_test(cgal_off_reader ${CMAKE_CURRENT_BINARY_DIR}/cgal_off_reader ${CMAKE_SOURCE_DIR}/data/points/alphacomplexdoc.off) endif(EIGEN3_FOUND) endif (NOT CGAL_VERSION VERSION_LESS 4.7.0) endif() diff --git a/src/common/example/CGAL_3D_points_off_reader.cpp b/src/common/example/example_CGAL_3D_points_off_reader.cpp index d48bb17d..d48bb17d 100644 --- a/src/common/example/CGAL_3D_points_off_reader.cpp +++ b/src/common/example/example_CGAL_3D_points_off_reader.cpp diff --git a/src/common/example/CGAL_points_off_reader.cpp b/src/common/example/example_CGAL_points_off_reader.cpp index d1ca166d..4522174a 100644 --- a/src/common/example/CGAL_points_off_reader.cpp +++ b/src/common/example/example_CGAL_points_off_reader.cpp @@ -37,7 +37,7 @@ int main(int argc, char **argv) { int n {0}; for (auto point : point_cloud) { std::cout << "Point[" << n << "] = "; - for (int i {0}; i < point.dimension(); i++) + for (std::size_t i {0}; i < point.size(); i++) std::cout << point[i] << " "; std::cout << "\n"; ++n; diff --git a/src/common/example/example_vector_double_points_off_reader.cpp b/src/common/example/example_vector_double_points_off_reader.cpp new file mode 100644 index 00000000..8aecb26e --- /dev/null +++ b/src/common/example/example_vector_double_points_off_reader.cpp @@ -0,0 +1,41 @@ +#include <gudhi/Points_off_io.h> + +#include <iostream> +#include <string> +#include <vector> + +using Point_d = std::vector<double>; + +void usage(char * const progName) { + std::cerr << "Usage: " << progName << " inputFile.off" << std::endl; + exit(-1); +} + +int main(int argc, char **argv) { + if (argc != 2) { + std::cerr << "Error: Number of arguments (" << argc << ") is not correct" << std::endl; + usage(argv[0]); + } + + std::string offInputFile(argv[1]); + // Read the OFF file (input file name given as parameter) and triangulate points + Gudhi::Points_off_reader<Point_d> off_reader(offInputFile); + // Check the read operation was correct + if (!off_reader.is_valid()) { + std::cerr << "Unable to read file " << offInputFile << std::endl; + usage(argv[0]); + } + + // Retrieve the triangulation + std::vector<Point_d> point_cloud = off_reader.get_point_cloud(); + + int n {0}; + for (auto point : point_cloud) { + std::cout << "Point[" << n << "] = "; + for (std::size_t i {0}; i < point.size(); i++) + std::cout << point[i] << " "; + std::cout << "\n"; + ++n; + } + return 0; +} diff --git a/src/common/include/gudhi/Points_off_io.h b/src/common/include/gudhi/Points_off_io.h index 74b49386..18b23e84 100644 --- a/src/common/include/gudhi/Points_off_io.h +++ b/src/common/include/gudhi/Points_off_io.h @@ -73,9 +73,8 @@ class Points_off_visitor_reader { * @details * Point_d must have a constructor with the following form: * - * @code template<class InputIterator > Point_d::Point_d(int d, InputIterator first, InputIterator last) @endcode + * @code template<class InputIterator > Point_d::Point_d(InputIterator first, InputIterator last) @endcode * - * where d is the point dimension. */ void point(const std::vector<double>& point) { #ifdef DEBUG_TRACES @@ -86,7 +85,7 @@ class Points_off_visitor_reader { std::cout << std::endl; #endif // DEBUG_TRACES // Fill the point cloud - point_cloud.push_back(Point_d(point.size(), point.begin(), point.end())); + point_cloud.push_back(Point_d(point.begin(), point.end())); } // Off_reader visitor maximal_face implementation - Only points are read @@ -117,14 +116,14 @@ class Points_off_visitor_reader { * * \section Example * - * This example loads points from an OFF file and builds a vector of CGAL points in dimension d. + * This example loads points from an OFF file and builds a vector of points (vector of double). * Then, it is asked to display the points. * - * \include common/CGAL_points_off_reader.cpp + * \include common/example_vector_double_points_off_reader.cpp * * When launching: * - * \code $> ./cgaloffreader ../../data/points/alphacomplexdoc.off + * \code $> ./vector_double_off_reader ../../data/points/alphacomplexdoc.off * \endcode * * the program output is: 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/test_points_off_reader.cpp index dbcc0434..b4f71182 100644 --- a/src/common/test/points_off_reader_unit_test.cpp +++ b/src/common/test/test_points_off_reader.cpp @@ -22,10 +22,6 @@ #include <gudhi/Points_off_io.h> -// For CGAL points type in dimension d -// cf. http://doc.cgal.org/latest/Kernel_d/classCGAL_1_1Point__d.html -#include <CGAL/Epick_d.h> - #include <iostream> #include <string> #include <vector> @@ -34,8 +30,7 @@ #define BOOST_TEST_MODULE "points_off_read_write" #include <boost/test/unit_test.hpp> -typedef CGAL::Epick_d< CGAL::Dynamic_dimension_tag > Kernel; -typedef Kernel::Point_d Point_d; +using Point_d = std::vector<double>; BOOST_AUTO_TEST_CASE( points_doc_test ) { @@ -50,19 +45,19 @@ BOOST_AUTO_TEST_CASE( points_doc_test ) std::vector<Point_d> expected_points; std::vector<double> point = {1.0, 1.0}; - expected_points.push_back(Point_d(2, point.begin(), point.end())); + expected_points.push_back(Point_d(point.begin(), point.end())); point = {7.0, 0.0}; - expected_points.push_back(Point_d(2, point.begin(), point.end())); + expected_points.push_back(Point_d(point.begin(), point.end())); point = {4.0, 6.0}; - expected_points.push_back(Point_d(2, point.begin(), point.end())); + expected_points.push_back(Point_d(point.begin(), point.end())); point = {9.0, 6.0}; - expected_points.push_back(Point_d(2, point.begin(), point.end())); + expected_points.push_back(Point_d(point.begin(), point.end())); point = {0.0, 14.0}; - expected_points.push_back(Point_d(2, point.begin(), point.end())); + expected_points.push_back(Point_d(point.begin(), point.end())); point = {2.0, 19.0}; - expected_points.push_back(Point_d(2, point.begin(), point.end())); + expected_points.push_back(Point_d(point.begin(), point.end())); point = {9.0, 17.0}; - expected_points.push_back(Point_d(2, point.begin(), point.end())); + expected_points.push_back(Point_d(point.begin(), point.end())); BOOST_CHECK(point_cloud == expected_points); } |