summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVincent Rouvreau <vincent.rouvreau@inria.fr>2023-01-13 10:21:57 +0100
committerVincent Rouvreau <vincent.rouvreau@inria.fr>2023-01-13 10:21:57 +0100
commita44c1b5d51b3ecfd1a1ef1cacb029f52fbc3de49 (patch)
tree77810b323c5f0e7815119f70f30bb03a786f4d94
parent533efd51253b0770f9a7de04a42f0820f1a1af66 (diff)
Split Delaunay complex in 4 executables to relieve windows CI
-rw-r--r--src/Alpha_complex/test/CMakeLists.txt20
-rw-r--r--src/Alpha_complex/test/Delaunay_complex_Epeck_dynamic_unit_test.cpp57
-rw-r--r--src/Alpha_complex/test/Delaunay_complex_Epeck_static_unit_test.cpp57
-rw-r--r--src/Alpha_complex/test/Delaunay_complex_Epick_dynamic_unit_test.cpp (renamed from src/Alpha_complex/test/Delaunay_complex_unit_test.cpp)21
-rw-r--r--src/Alpha_complex/test/Delaunay_complex_Epick_static_unit_test.cpp57
5 files changed, 192 insertions, 20 deletions
diff --git a/src/Alpha_complex/test/CMakeLists.txt b/src/Alpha_complex/test/CMakeLists.txt
index dd2c235f..7838a15d 100644
--- a/src/Alpha_complex/test/CMakeLists.txt
+++ b/src/Alpha_complex/test/CMakeLists.txt
@@ -10,17 +10,29 @@ if (NOT CGAL_WITH_EIGEN3_VERSION VERSION_LESS 4.11.0)
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})
+ add_executable ( Delaunay_complex_Epeck_dynamic_test_unit Delaunay_complex_Epeck_dynamic_unit_test.cpp )
+ target_link_libraries(Delaunay_complex_Epeck_dynamic_test_unit ${CGAL_LIBRARY})
+ add_executable ( Delaunay_complex_Epeck_static_test_unit Delaunay_complex_Epeck_static_unit_test.cpp )
+ target_link_libraries(Delaunay_complex_Epeck_static_test_unit ${CGAL_LIBRARY})
+ add_executable ( Delaunay_complex_Epick_dynamic_test_unit Delaunay_complex_Epick_dynamic_unit_test.cpp )
+ target_link_libraries(Delaunay_complex_Epick_dynamic_test_unit ${CGAL_LIBRARY})
+ add_executable ( Delaunay_complex_Epick_static_test_unit Delaunay_complex_Epick_static_unit_test.cpp )
+ target_link_libraries(Delaunay_complex_Epick_static_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})
+ target_link_libraries(Delaunay_complex_Epeck_dynamic_test_unit ${TBB_LIBRARIES})
+ target_link_libraries(Delaunay_complex_Epeck_static_test_unit ${TBB_LIBRARIES})
+ target_link_libraries(Delaunay_complex_Epick_dynamic_test_unit ${TBB_LIBRARIES})
+ target_link_libraries(Delaunay_complex_Epick_static_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)
+ gudhi_add_boost_test(Delaunay_complex_Epeck_dynamic_test_unit)
+ gudhi_add_boost_test(Delaunay_complex_Epeck_static_test_unit)
+ gudhi_add_boost_test(Delaunay_complex_Epick_dynamic_test_unit)
+ gudhi_add_boost_test(Delaunay_complex_Epick_static_test_unit)
endif (NOT CGAL_WITH_EIGEN3_VERSION VERSION_LESS 4.11.0)
diff --git a/src/Alpha_complex/test/Delaunay_complex_Epeck_dynamic_unit_test.cpp b/src/Alpha_complex/test/Delaunay_complex_Epeck_dynamic_unit_test.cpp
new file mode 100644
index 00000000..575a36fc
--- /dev/null
+++ b/src/Alpha_complex/test/Delaunay_complex_Epeck_dynamic_unit_test.cpp
@@ -0,0 +1,57 @@
+/* This file is part of the Gudhi Library - https://gudhi.inria.fr/ - which is released under MIT.
+ * See file LICENSE or go to https://gudhi.inria.fr/licensing/ for full license details.
+ * Author(s): Vincent Rouvreau
+ *
+ * Copyright (C) 2020 Inria
+ *
+ * Modification(s):
+ * - YYYY/MM Author: Description of the modification
+ */
+
+#define BOOST_TEST_DYN_LINK
+#define BOOST_TEST_MODULE "delaunay_complex_exact_kernel_dynamic"
+#include <boost/test/unit_test.hpp>
+
+#include <CGAL/Epeck_d.h>
+
+#include <vector>
+#include <limits> // NaN
+#include <cmath>
+
+#include <gudhi/Alpha_complex.h>
+// to construct a simplex_tree from Delaunay_triangulation
+#include <gudhi/graph_simplicial_complex.h>
+#include <gudhi/Simplex_tree.h>
+#include <gudhi/Unitary_tests_utils.h>
+#include <gudhi/random_point_generators.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;
+
+using Simplex_tree = Gudhi::Simplex_tree<>;
+using Simplex_handle = Simplex_tree::Simplex_handle;
+
+BOOST_AUTO_TEST_CASE(Delaunay_complex_exact_kernel_dynamic_simplices_comparison) {
+ std::cout << "*****************************************************************************************************";
+ using Point = typename Exact_kernel_d::Point_d;
+ std::vector<Point> points;
+ // 50 points on a 4-sphere
+ points = Gudhi::generate_points_on_sphere_d<Exact_kernel_d>(10, 5, 1.);
+
+ Gudhi::alpha_complex::Alpha_complex<Exact_kernel_d> alpha_complex(points);
+
+ // Alpha complex
+ Simplex_tree stree_from_alpha_complex;
+ BOOST_CHECK(alpha_complex.create_complex(stree_from_alpha_complex));
+
+ // Delaunay complex
+ Simplex_tree stree_from_delaunay_complex;
+ BOOST_CHECK(alpha_complex.create_complex(stree_from_delaunay_complex, 0., false, true));
+
+ // Check all the simplices from alpha complex are in the Delaunay complex
+ for (auto f_simplex : stree_from_alpha_complex.complex_simplex_range()) {
+ Simplex_handle sh = stree_from_delaunay_complex.find(stree_from_alpha_complex.simplex_vertex_range(f_simplex));
+ BOOST_CHECK(std::isnan(stree_from_delaunay_complex.filtration(sh)));
+ BOOST_CHECK(sh != stree_from_delaunay_complex.null_simplex());
+ }
+}
diff --git a/src/Alpha_complex/test/Delaunay_complex_Epeck_static_unit_test.cpp b/src/Alpha_complex/test/Delaunay_complex_Epeck_static_unit_test.cpp
new file mode 100644
index 00000000..fd69a81e
--- /dev/null
+++ b/src/Alpha_complex/test/Delaunay_complex_Epeck_static_unit_test.cpp
@@ -0,0 +1,57 @@
+/* This file is part of the Gudhi Library - https://gudhi.inria.fr/ - which is released under MIT.
+ * See file LICENSE or go to https://gudhi.inria.fr/licensing/ for full license details.
+ * Author(s): Vincent Rouvreau
+ *
+ * Copyright (C) 2020 Inria
+ *
+ * Modification(s):
+ * - YYYY/MM Author: Description of the modification
+ */
+
+#define BOOST_TEST_DYN_LINK
+#define BOOST_TEST_MODULE "delaunay_complex_exact_kernel_static"
+#include <boost/test/unit_test.hpp>
+
+#include <CGAL/Epeck_d.h>
+
+#include <vector>
+#include <limits> // NaN
+#include <cmath>
+
+#include <gudhi/Alpha_complex.h>
+// to construct a simplex_tree from Delaunay_triangulation
+#include <gudhi/graph_simplicial_complex.h>
+#include <gudhi/Simplex_tree.h>
+#include <gudhi/Unitary_tests_utils.h>
+#include <gudhi/random_point_generators.h>
+
+// Use static dimension_tag for the user not to be able to set dimension
+typedef CGAL::Epeck_d< CGAL::Dimension_tag<5> > Exact_kernel_s;
+
+using Simplex_tree = Gudhi::Simplex_tree<>;
+using Simplex_handle = Simplex_tree::Simplex_handle;
+
+BOOST_AUTO_TEST_CASE(Delaunay_complex_exact_kernel_static_simplices_comparison) {
+ std::cout << "*****************************************************************************************************";
+ using Point = typename Exact_kernel_s::Point_d;
+ std::vector<Point> points;
+ // 50 points on a 4-sphere
+ points = Gudhi::generate_points_on_sphere_d<Exact_kernel_s>(10, 5, 1.);
+
+ Gudhi::alpha_complex::Alpha_complex<Exact_kernel_s> alpha_complex(points);
+
+ // Alpha complex
+ Simplex_tree stree_from_alpha_complex;
+ BOOST_CHECK(alpha_complex.create_complex(stree_from_alpha_complex));
+
+ // Delaunay complex
+ Simplex_tree stree_from_delaunay_complex;
+ BOOST_CHECK(alpha_complex.create_complex(stree_from_delaunay_complex, 0., false, true));
+
+ // Check all the simplices from alpha complex are in the Delaunay complex
+ for (auto f_simplex : stree_from_alpha_complex.complex_simplex_range()) {
+ Simplex_handle sh = stree_from_delaunay_complex.find(stree_from_alpha_complex.simplex_vertex_range(f_simplex));
+ BOOST_CHECK(std::isnan(stree_from_delaunay_complex.filtration(sh)));
+ BOOST_CHECK(sh != stree_from_delaunay_complex.null_simplex());
+ }
+}
diff --git a/src/Alpha_complex/test/Delaunay_complex_unit_test.cpp b/src/Alpha_complex/test/Delaunay_complex_Epick_dynamic_unit_test.cpp
index c1cc1fab..e04d86bb 100644
--- a/src/Alpha_complex/test/Delaunay_complex_unit_test.cpp
+++ b/src/Alpha_complex/test/Delaunay_complex_Epick_dynamic_unit_test.cpp
@@ -9,12 +9,10 @@
*/
#define BOOST_TEST_DYN_LINK
-#define BOOST_TEST_MODULE "delaunay_complex"
+#define BOOST_TEST_MODULE "delaunay_complex_inexact_kernel_dynamic"
#include <boost/test/unit_test.hpp>
-#include <boost/mpl/list.hpp>
#include <CGAL/Epick_d.h>
-#include <CGAL/Epeck_d.h>
#include <vector>
#include <limits> // NaN
@@ -28,28 +26,19 @@
#include <gudhi/random_point_generators.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<5> > 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<5> > 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;
using Simplex_tree = Gudhi::Simplex_tree<>;
using Simplex_handle = Simplex_tree::Simplex_handle;
-BOOST_AUTO_TEST_CASE_TEMPLATE(Alpha_complex_from_OFF_file, TestedKernel, list_of_kernel_variants) {
+BOOST_AUTO_TEST_CASE(Delaunay_complex_inexact_kernel_dynamic_simplices_comparison) {
std::cout << "*****************************************************************************************************";
- using Point = typename TestedKernel::Point_d;
+ using Point = typename Inexact_kernel_d::Point_d;
std::vector<Point> points;
// 50 points on a 4-sphere
- points = Gudhi::generate_points_on_sphere_d<TestedKernel>(10, 5, 1.);
+ points = Gudhi::generate_points_on_sphere_d<Inexact_kernel_d>(10, 5, 1.);
- Gudhi::alpha_complex::Alpha_complex<TestedKernel> alpha_complex(points);
+ Gudhi::alpha_complex::Alpha_complex<Inexact_kernel_d> alpha_complex(points);
// Alpha complex
Simplex_tree stree_from_alpha_complex;
diff --git a/src/Alpha_complex/test/Delaunay_complex_Epick_static_unit_test.cpp b/src/Alpha_complex/test/Delaunay_complex_Epick_static_unit_test.cpp
new file mode 100644
index 00000000..6bd2a72c
--- /dev/null
+++ b/src/Alpha_complex/test/Delaunay_complex_Epick_static_unit_test.cpp
@@ -0,0 +1,57 @@
+/* This file is part of the Gudhi Library - https://gudhi.inria.fr/ - which is released under MIT.
+ * See file LICENSE or go to https://gudhi.inria.fr/licensing/ for full license details.
+ * Author(s): Vincent Rouvreau
+ *
+ * Copyright (C) 2020 Inria
+ *
+ * Modification(s):
+ * - YYYY/MM Author: Description of the modification
+ */
+
+#define BOOST_TEST_DYN_LINK
+#define BOOST_TEST_MODULE "delaunay_complex_inexact_kernel_static"
+#include <boost/test/unit_test.hpp>
+
+#include <CGAL/Epick_d.h>
+
+#include <vector>
+#include <limits> // NaN
+#include <cmath>
+
+#include <gudhi/Alpha_complex.h>
+// to construct a simplex_tree from Delaunay_triangulation
+#include <gudhi/graph_simplicial_complex.h>
+#include <gudhi/Simplex_tree.h>
+#include <gudhi/Unitary_tests_utils.h>
+#include <gudhi/random_point_generators.h>
+
+// Use static dimension_tag for the user not to be able to set dimension
+typedef CGAL::Epick_d< CGAL::Dimension_tag<5> > Inexact_kernel_s;
+
+using Simplex_tree = Gudhi::Simplex_tree<>;
+using Simplex_handle = Simplex_tree::Simplex_handle;
+
+BOOST_AUTO_TEST_CASE(Delaunay_complex_inexact_kernel_static_simplices_comparison) {
+ std::cout << "*****************************************************************************************************";
+ using Point = typename Inexact_kernel_s::Point_d;
+ std::vector<Point> points;
+ // 50 points on a 4-sphere
+ points = Gudhi::generate_points_on_sphere_d<Inexact_kernel_s>(10, 5, 1.);
+
+ Gudhi::alpha_complex::Alpha_complex<Inexact_kernel_s> alpha_complex(points);
+
+ // Alpha complex
+ Simplex_tree stree_from_alpha_complex;
+ BOOST_CHECK(alpha_complex.create_complex(stree_from_alpha_complex));
+
+ // Delaunay complex
+ Simplex_tree stree_from_delaunay_complex;
+ BOOST_CHECK(alpha_complex.create_complex(stree_from_delaunay_complex, 0., false, true));
+
+ // Check all the simplices from alpha complex are in the Delaunay complex
+ for (auto f_simplex : stree_from_alpha_complex.complex_simplex_range()) {
+ Simplex_handle sh = stree_from_delaunay_complex.find(stree_from_alpha_complex.simplex_vertex_range(f_simplex));
+ BOOST_CHECK(std::isnan(stree_from_delaunay_complex.filtration(sh)));
+ BOOST_CHECK(sh != stree_from_delaunay_complex.null_simplex());
+ }
+}