diff options
author | Marc Glisse <marc.glisse@inria.fr> | 2022-10-15 15:46:09 +0200 |
---|---|---|
committer | Marc Glisse <marc.glisse@inria.fr> | 2022-10-15 15:46:09 +0200 |
commit | b380380aecb601fbc601710da1a62cca202304db (patch) | |
tree | 0a01ca65f9c4cea494ca2b5991e4bbd3e105c787 /src/Alpha_complex | |
parent | b3b5d1da1ad441c8a76e8137b25e752e5654b938 (diff) |
Split Alpha_complex_unit_test.cpp into 2 files
It was taking too much memory to compile
Diffstat (limited to 'src/Alpha_complex')
-rw-r--r-- | src/Alpha_complex/test/Alpha_complex_dim3_unit_test.cpp | 191 | ||||
-rw-r--r-- | src/Alpha_complex/test/Alpha_complex_unit_test.cpp | 91 | ||||
-rw-r--r-- | src/Alpha_complex/test/CMakeLists.txt | 6 |
3 files changed, 5 insertions, 283 deletions
diff --git a/src/Alpha_complex/test/Alpha_complex_dim3_unit_test.cpp b/src/Alpha_complex/test/Alpha_complex_dim3_unit_test.cpp index 1ac0093d..0085ae67 100644 --- a/src/Alpha_complex/test/Alpha_complex_dim3_unit_test.cpp +++ b/src/Alpha_complex/test/Alpha_complex_dim3_unit_test.cpp @@ -22,7 +22,6 @@ #include <gudhi/Alpha_complex.h> #include <gudhi/Simplex_tree.h> -#include <gudhi/Unitary_tests_utils.h> // Use dynamic_dimension_tag for the user to be able to set dimension typedef CGAL::Epeck_d< CGAL::Dynamic_dimension_tag > Exact_kernel_d; @@ -84,153 +83,6 @@ BOOST_AUTO_TEST_CASE_TEMPLATE(Alpha_complex_from_OFF_file, TestedKernel, list_of BOOST_CHECK(simplex_tree_59.num_simplices() == 23); } -// Use static dimension_tag for the user not to be able to set dimension -typedef CGAL::Epeck_d< CGAL::Dimension_tag<4> > Kernel_4; -typedef Kernel_4::Point_d Point_4; -typedef std::vector<Point_4> Vector_4_Points; - -bool is_point_in_list(Vector_4_Points points_list, Point_4 point) { - for (auto& point_in_list : points_list) { - if (point_in_list == point) { - return true; // point found - } - } - return false; // point not found -} - -BOOST_AUTO_TEST_CASE(Alpha_complex_from_points) { - // ---------------------------------------------------------------------------- - // Init of a list of points - // ---------------------------------------------------------------------------- - Vector_4_Points points; - std::vector<double> coords = { 0.0, 0.0, 0.0, 1.0 }; - points.push_back(Point_4(coords.begin(), coords.end())); - coords = { 0.0, 0.0, 1.0, 0.0 }; - points.push_back(Point_4(coords.begin(), coords.end())); - coords = { 0.0, 1.0, 0.0, 0.0 }; - points.push_back(Point_4(coords.begin(), coords.end())); - coords = { 1.0, 0.0, 0.0, 0.0 }; - points.push_back(Point_4(coords.begin(), coords.end())); - - // ---------------------------------------------------------------------------- - // Init of an alpha complex from the list of points - // ---------------------------------------------------------------------------- - Gudhi::alpha_complex::Alpha_complex<Kernel_4> alpha_complex_from_points(points); - - std::clog << "========== Alpha_complex_from_points ==========" << std::endl; - - Gudhi::Simplex_tree<> simplex_tree; - BOOST_CHECK(alpha_complex_from_points.create_complex(simplex_tree)); - - std::clog << "alpha_complex_from_points.num_vertices()=" << alpha_complex_from_points.num_vertices() << std::endl; - BOOST_CHECK(alpha_complex_from_points.num_vertices() == points.size()); - - // Another way to check num_simplices - std::clog << "Iterator on alpha complex simplices in the filtration order, with [filtration value]:" << std::endl; - int num_simplices = 0; - for (auto f_simplex : simplex_tree.filtration_simplex_range()) { - num_simplices++; - std::clog << " ( "; - for (auto vertex : simplex_tree.simplex_vertex_range(f_simplex)) { - std::clog << vertex << " "; - } - std::clog << ") -> " << "[" << simplex_tree.filtration(f_simplex) << "] "; - std::clog << std::endl; - } - BOOST_CHECK(num_simplices == 15); - std::clog << "simplex_tree.num_simplices()=" << simplex_tree.num_simplices() << std::endl; - BOOST_CHECK(simplex_tree.num_simplices() == 15); - - std::clog << "simplex_tree.dimension()=" << simplex_tree.dimension() << std::endl; - BOOST_CHECK(simplex_tree.dimension() == 3); - std::clog << "simplex_tree.num_vertices()=" << simplex_tree.num_vertices() << std::endl; - BOOST_CHECK(simplex_tree.num_vertices() == points.size()); - - for (auto f_simplex : simplex_tree.filtration_simplex_range()) { - switch (simplex_tree.dimension(f_simplex)) { - case 0: - GUDHI_TEST_FLOAT_EQUALITY_CHECK(simplex_tree.filtration(f_simplex), 0.0); - break; - case 1: - GUDHI_TEST_FLOAT_EQUALITY_CHECK(simplex_tree.filtration(f_simplex), 1.0/2.0); - break; - case 2: - GUDHI_TEST_FLOAT_EQUALITY_CHECK(simplex_tree.filtration(f_simplex), 2.0/3.0); - break; - case 3: - GUDHI_TEST_FLOAT_EQUALITY_CHECK(simplex_tree.filtration(f_simplex), 3.0/4.0); - break; - default: - BOOST_CHECK(false); // Shall not happen - break; - } - } - - Point_4 p0 = alpha_complex_from_points.get_point(0); - std::clog << "alpha_complex_from_points.get_point(0)=" << p0 << std::endl; - BOOST_CHECK(4 == p0.dimension()); - BOOST_CHECK(is_point_in_list(points, p0)); - - Point_4 p1 = alpha_complex_from_points.get_point(1); - std::clog << "alpha_complex_from_points.get_point(1)=" << p1 << std::endl; - BOOST_CHECK(4 == p1.dimension()); - BOOST_CHECK(is_point_in_list(points, p1)); - - Point_4 p2 = alpha_complex_from_points.get_point(2); - std::clog << "alpha_complex_from_points.get_point(2)=" << p2 << std::endl; - BOOST_CHECK(4 == p2.dimension()); - BOOST_CHECK(is_point_in_list(points, p2)); - - Point_4 p3 = alpha_complex_from_points.get_point(3); - std::clog << "alpha_complex_from_points.get_point(3)=" << p3 << std::endl; - BOOST_CHECK(4 == p3.dimension()); - BOOST_CHECK(is_point_in_list(points, p3)); - - // Test to the limit - BOOST_CHECK_THROW (alpha_complex_from_points.get_point(4), std::out_of_range); - BOOST_CHECK_THROW (alpha_complex_from_points.get_point(-1), std::out_of_range); - BOOST_CHECK_THROW (alpha_complex_from_points.get_point(1234), std::out_of_range); - - // Test after prune_above_filtration - bool modified = simplex_tree.prune_above_filtration(0.6); - BOOST_CHECK(modified); - - // Another way to check num_simplices - std::clog << "Iterator on alpha complex simplices in the filtration order, with [filtration value]:" << std::endl; - num_simplices = 0; - for (auto f_simplex : simplex_tree.filtration_simplex_range()) { - num_simplices++; - std::clog << " ( "; - for (auto vertex : simplex_tree.simplex_vertex_range(f_simplex)) { - std::clog << vertex << " "; - } - std::clog << ") -> " << "[" << simplex_tree.filtration(f_simplex) << "] "; - std::clog << std::endl; - } - BOOST_CHECK(num_simplices == 10); - std::clog << "simplex_tree.num_simplices()=" << simplex_tree.num_simplices() << std::endl; - BOOST_CHECK(simplex_tree.num_simplices() == 10); - - std::clog << "simplex_tree.dimension()=" << simplex_tree.dimension() << std::endl; - BOOST_CHECK(simplex_tree.dimension() == 1); - std::clog << "simplex_tree.num_vertices()=" << simplex_tree.num_vertices() << std::endl; - BOOST_CHECK(simplex_tree.num_vertices() == 4); - - for (auto f_simplex : simplex_tree.filtration_simplex_range()) { - switch (simplex_tree.dimension(f_simplex)) { - case 0: - GUDHI_TEST_FLOAT_EQUALITY_CHECK(simplex_tree.filtration(f_simplex), 0.0); - break; - case 1: - GUDHI_TEST_FLOAT_EQUALITY_CHECK(simplex_tree.filtration(f_simplex), 1.0/2.0); - break; - default: - BOOST_CHECK(false); // Shall not happen - break; - } - } - -} BOOST_AUTO_TEST_CASE_TEMPLATE(Alpha_complex_from_empty_points, TestedKernel, list_of_kernel_variants) { std::clog << "========== Alpha_complex_from_empty_points ==========" << std::endl; @@ -263,46 +115,3 @@ BOOST_AUTO_TEST_CASE_TEMPLATE(Alpha_complex_from_empty_points, TestedKernel, lis std::clog << "simplex_tree.num_vertices()=" << simplex_tree.num_vertices() << std::endl; BOOST_CHECK(simplex_tree.num_vertices() == points.size()); } - -using Inexact_kernel_2 = CGAL::Epick_d< CGAL::Dimension_tag<2> >; -using Exact_kernel_2 = CGAL::Epeck_d< CGAL::Dimension_tag<2> >; -using list_of_kernel_2_variants = boost::mpl::list<Inexact_kernel_2, Exact_kernel_2>; - -BOOST_AUTO_TEST_CASE_TEMPLATE(Alpha_complex_with_duplicated_points, TestedKernel, list_of_kernel_2_variants) { - std::clog << "========== Alpha_complex_with_duplicated_points ==========" << std::endl; - - using Point = typename TestedKernel::Point_d; - using Vector_of_points = std::vector<Point>; - - // ---------------------------------------------------------------------------- - // Init of a list of points - // ---------------------------------------------------------------------------- - Vector_of_points points; - points.push_back(Point(1.0, 1.0)); - points.push_back(Point(7.0, 0.0)); - points.push_back(Point(4.0, 6.0)); - points.push_back(Point(9.0, 6.0)); - points.push_back(Point(0.0, 14.0)); - points.push_back(Point(2.0, 19.0)); - points.push_back(Point(9.0, 17.0)); - // duplicated points - points.push_back(Point(1.0, 1.0)); - points.push_back(Point(7.0, 0.0)); - - // ---------------------------------------------------------------------------- - // Init of an alpha complex from the list of points - // ---------------------------------------------------------------------------- - std::clog << "Init" << std::endl; - Gudhi::alpha_complex::Alpha_complex<TestedKernel> alpha_complex_from_points(points); - - Gudhi::Simplex_tree<> simplex_tree; - std::clog << "create_complex" << std::endl; - BOOST_CHECK(alpha_complex_from_points.create_complex(simplex_tree)); - - std::clog << "alpha_complex_from_points.num_vertices()=" << alpha_complex_from_points.num_vertices() << std::endl; - BOOST_CHECK(alpha_complex_from_points.num_vertices() < points.size()); - - std::clog << "simplex_tree.num_vertices()=" << simplex_tree.num_vertices() - << std::endl; - BOOST_CHECK(simplex_tree.num_vertices() < points.size()); -} diff --git a/src/Alpha_complex/test/Alpha_complex_unit_test.cpp b/src/Alpha_complex/test/Alpha_complex_unit_test.cpp index 1ac0093d..b474917f 100644 --- a/src/Alpha_complex/test/Alpha_complex_unit_test.cpp +++ b/src/Alpha_complex/test/Alpha_complex_unit_test.cpp @@ -24,66 +24,6 @@ #include <gudhi/Simplex_tree.h> #include <gudhi/Unitary_tests_utils.h> -// Use dynamic_dimension_tag for the user to be able to set dimension -typedef CGAL::Epeck_d< CGAL::Dynamic_dimension_tag > Exact_kernel_d; -// Use static dimension_tag for the user not to be able to set dimension -typedef CGAL::Epeck_d< CGAL::Dimension_tag<3> > Exact_kernel_s; -// Use dynamic_dimension_tag for the user to be able to set dimension -typedef CGAL::Epick_d< CGAL::Dynamic_dimension_tag > Inexact_kernel_d; -// Use static dimension_tag for the user not to be able to set dimension -typedef CGAL::Epick_d< CGAL::Dimension_tag<3> > Inexact_kernel_s; -// The triangulation uses the default instantiation of the TriangulationDataStructure template parameter - -typedef boost::mpl::list<Exact_kernel_d, Exact_kernel_s, Inexact_kernel_d, Inexact_kernel_s> list_of_kernel_variants; - -BOOST_AUTO_TEST_CASE_TEMPLATE(Alpha_complex_from_OFF_file, TestedKernel, list_of_kernel_variants) { - // ---------------------------------------------------------------------------- - // - // Init of an alpha-complex from a OFF file - // - // ---------------------------------------------------------------------------- - std::string off_file_name("alphacomplexdoc.off"); - double max_alpha_square_value = 60.0; - std::clog << "========== OFF FILE NAME = " << off_file_name << " - alpha²=" << - max_alpha_square_value << "==========" << std::endl; - - Gudhi::alpha_complex::Alpha_complex<TestedKernel> alpha_complex_from_file(off_file_name); - - Gudhi::Simplex_tree<> simplex_tree_60; - BOOST_CHECK(alpha_complex_from_file.create_complex(simplex_tree_60, max_alpha_square_value)); - - std::clog << "alpha_complex_from_file.num_vertices()=" << alpha_complex_from_file.num_vertices() << std::endl; - BOOST_CHECK(alpha_complex_from_file.num_vertices() == 7); - - std::clog << "simplex_tree_60.dimension()=" << simplex_tree_60.dimension() << std::endl; - BOOST_CHECK(simplex_tree_60.dimension() == 2); - - std::clog << "simplex_tree_60.num_vertices()=" << simplex_tree_60.num_vertices() << std::endl; - BOOST_CHECK(simplex_tree_60.num_vertices() == 7); - - std::clog << "simplex_tree_60.num_simplices()=" << simplex_tree_60.num_simplices() << std::endl; - BOOST_CHECK(simplex_tree_60.num_simplices() == 25); - - max_alpha_square_value = 59.0; - std::clog << "========== OFF FILE NAME = " << off_file_name << " - alpha²=" << - max_alpha_square_value << "==========" << std::endl; - - Gudhi::Simplex_tree<> simplex_tree_59; - BOOST_CHECK(alpha_complex_from_file.create_complex(simplex_tree_59, max_alpha_square_value)); - - std::clog << "alpha_complex_from_file.num_vertices()=" << alpha_complex_from_file.num_vertices() << std::endl; - BOOST_CHECK(alpha_complex_from_file.num_vertices() == 7); - - std::clog << "simplex_tree_59.dimension()=" << simplex_tree_59.dimension() << std::endl; - BOOST_CHECK(simplex_tree_59.dimension() == 2); - - std::clog << "simplex_tree_59.num_vertices()=" << simplex_tree_59.num_vertices() << std::endl; - BOOST_CHECK(simplex_tree_59.num_vertices() == 7); - - std::clog << "simplex_tree_59.num_simplices()=" << simplex_tree_59.num_simplices() << std::endl; - BOOST_CHECK(simplex_tree_59.num_simplices() == 23); -} - // Use static dimension_tag for the user not to be able to set dimension typedef CGAL::Epeck_d< CGAL::Dimension_tag<4> > Kernel_4; typedef Kernel_4::Point_d Point_4; @@ -232,37 +172,6 @@ BOOST_AUTO_TEST_CASE(Alpha_complex_from_points) { } -BOOST_AUTO_TEST_CASE_TEMPLATE(Alpha_complex_from_empty_points, TestedKernel, list_of_kernel_variants) { - std::clog << "========== Alpha_complex_from_empty_points ==========" << std::endl; - - // ---------------------------------------------------------------------------- - // Init of an empty list of points - // ---------------------------------------------------------------------------- - std::vector<typename TestedKernel::Point_d> points; - - // ---------------------------------------------------------------------------- - // Init of an alpha complex from the list of points - // ---------------------------------------------------------------------------- - Gudhi::alpha_complex::Alpha_complex<TestedKernel> alpha_complex_from_points(points); - - std::clog << "alpha_complex_from_points.num_vertices()=" << alpha_complex_from_points.num_vertices() << std::endl; - BOOST_CHECK(alpha_complex_from_points.num_vertices() == points.size()); - - // Test to the limit - BOOST_CHECK_THROW (alpha_complex_from_points.get_point(0), std::out_of_range); - - Gudhi::Simplex_tree<> simplex_tree; - BOOST_CHECK(!alpha_complex_from_points.create_complex(simplex_tree)); - - std::clog << "simplex_tree.num_simplices()=" << simplex_tree.num_simplices() << std::endl; - BOOST_CHECK(simplex_tree.num_simplices() == 0); - - std::clog << "simplex_tree.dimension()=" << simplex_tree.dimension() << std::endl; - BOOST_CHECK(simplex_tree.dimension() == -1); - - std::clog << "simplex_tree.num_vertices()=" << simplex_tree.num_vertices() << std::endl; - BOOST_CHECK(simplex_tree.num_vertices() == points.size()); -} using Inexact_kernel_2 = CGAL::Epick_d< CGAL::Dimension_tag<2> >; using Exact_kernel_2 = CGAL::Epeck_d< CGAL::Dimension_tag<2> >; diff --git a/src/Alpha_complex/test/CMakeLists.txt b/src/Alpha_complex/test/CMakeLists.txt index 0595ca92..dd2c235f 100644 --- a/src/Alpha_complex/test/CMakeLists.txt +++ b/src/Alpha_complex/test/CMakeLists.txt @@ -8,14 +8,18 @@ if (NOT CGAL_WITH_EIGEN3_VERSION VERSION_LESS 4.11.0) add_executable ( Alpha_complex_test_unit Alpha_complex_unit_test.cpp ) target_link_libraries(Alpha_complex_test_unit ${CGAL_LIBRARY}) + add_executable ( Alpha_complex_dim3_test_unit Alpha_complex_dim3_unit_test.cpp ) + target_link_libraries(Alpha_complex_dim3_test_unit ${CGAL_LIBRARY}) add_executable ( Delaunay_complex_test_unit Delaunay_complex_unit_test.cpp ) target_link_libraries(Delaunay_complex_test_unit ${CGAL_LIBRARY}) if (TBB_FOUND) target_link_libraries(Alpha_complex_test_unit ${TBB_LIBRARIES}) + target_link_libraries(Alpha_complex_dim3_test_unit ${TBB_LIBRARIES}) target_link_libraries(Delaunay_complex_test_unit ${TBB_LIBRARIES}) endif() gudhi_add_boost_test(Alpha_complex_test_unit) + gudhi_add_boost_test(Alpha_complex_dim3_test_unit) gudhi_add_boost_test(Delaunay_complex_test_unit) endif (NOT CGAL_WITH_EIGEN3_VERSION VERSION_LESS 4.11.0) @@ -73,4 +77,4 @@ if (NOT CGAL_WITH_EIGEN3_VERSION VERSION_LESS 5.1.0) endif() gudhi_add_boost_test(Zero_weighted_alpha_complex_test_unit) -endif (NOT CGAL_WITH_EIGEN3_VERSION VERSION_LESS 5.1.0)
\ No newline at end of file +endif (NOT CGAL_WITH_EIGEN3_VERSION VERSION_LESS 5.1.0) |