# tests/cgal/CMakeLists.txt # # CGAL-dependent test target. Only built when -DWITH_CGAL=ON. # Requires Boost (find_package(Boost REQUIRED) is called in the root CMakeLists). # # Run with: # cmake -S code -B build -DWITH_CGAL=ON # cmake --build build --target conformallab_cgal_tests # ctest --test-dir build -R cgal add_executable(conformallab_cgal_tests # ── Phase 3a: mesh infrastructure ────────────────────────────────────── test_conformal_mesh.cpp # ── Phase 3b: HyperIdealFunctional ───────────────────────────────────── test_hyper_ideal_functional.cpp # ── Phase 3c + 3e: SphericalFunctional + gauge-fix ──────────────────── test_spherical_functional.cpp # ── Phase 3d: EuclideanCyclicFunctional ─────────────────────────────── test_euclidean_functional.cpp # ── Phase 3f: Hessians (cotangent Laplacian, spherical + Euclidean) ─── test_euclidean_hessian.cpp test_spherical_hessian.cpp # ── Phase 4a: Newton solver ──────────────────────────────────────────── test_newton_solver.cpp # ── Phase 4b: Mesh I/O (CGAL::IO) ───────────────────────────────────── test_mesh_io.cpp # ── Phase 4c: End-to-end pipeline + user examples ───────────────────── test_pipeline.cpp # ── Phase 5: Layout / embedding + serialization ──────────────────────── test_layout.cpp # ── Phase 6: Gauss–Bonnet, cut graph, exact trilateration, normalisation test_phase6.cpp # ── Phase 7: Java-parity layout — MobiusMap, priority BFS, halfedge_uv, # period matrix, fundamental domain, tiling test_phase7.cpp # ── Java parity: geometry utility tests ────────────────────────────────── # Ported from CuttinUtilityTest, UnwrapUtilityTest, # ConvergenceUtilityTests, HomologyTest (tests 1–6). # Test 7 (genus-2 homology) as GTEST_SKIP stub until Phase 8. test_geometry_utils.cpp # ── Scalability smoke tests ──────────────────────────────────────────────── # Newton convergence on large real-world meshes (cathead, brezel, brezel2). # Assert correctness only (< 30 iterations, ||G|| < 1e-8). # Wall-clock time is printed for documentation but NOT asserted, # so the tests remain stable on slow CI hardware (Raspberry Pi ARM64). test_scalability_smoke.cpp ) target_include_directories(conformallab_cgal_tests SYSTEM PRIVATE ${CMAKE_SOURCE_DIR}/deps/eigen-3.4.0 ${CMAKE_SOURCE_DIR}/deps/CGAL-6.1.1/include ${CMAKE_SOURCE_DIR}/deps/single_includes ${Boost_INCLUDE_DIRS} ) target_include_directories(conformallab_cgal_tests PRIVATE ${CMAKE_SOURCE_DIR}/include ) target_compile_definitions(conformallab_cgal_tests PRIVATE CGAL_DISABLE_GMP CGAL_DISABLE_MPFR # Data directory — absolute path to code/data/ at build time. # Used by tests that load real mesh files (cathead.obj, brezel2.obj, …). CONFORMALLAB_DATA_DIR="${CMAKE_SOURCE_DIR}/data" ) # Suppress warnings from CGAL/Boost headers target_compile_options(conformallab_cgal_tests PRIVATE $<$:-Wno-unused-parameter> ) target_link_libraries(conformallab_cgal_tests PRIVATE GTest::gtest_main) include(GoogleTest) gtest_discover_tests(conformallab_cgal_tests TEST_PREFIX "cgal." DISCOVERY_TIMEOUT 60 )