Phase 3d — EuclideanCyclicFunctional:
• euclidean_geometry.hpp: t-value / atan2 corner-angle formula with
centering trick (μ = (Λ̃₁₂+Λ̃₂₃+Λ̃₃₁)/6) for numerical stability
• euclidean_functional.hpp: EuclideanMaps bundle, gradient (G_v = Θ_v − Σα_v,
G_e = α_opp⁺ + α_opp⁻ − φ_e), 10-point GL path-integral energy,
gradient_check_euclidean — identical halfedge convention to SphericalFunctional
• test_euclidean_functional.cpp: 11 tests (1 skip) covering angle formula,
right-isosceles triangle, angle sum = π, degenerate detection, gradient
checks on triangle/quad-strip/tetrahedron/fan-5/mixed-pinned, NaN check
Phase 3e — Spherical gauge-fix:
• spherical_gauge_shift(): Newton + backtracking line search to find t*
where ΣG_v(x + t·1) = 0 (maximises E along the global scale direction);
bisection used when sign change is detectable, Newton+backtrack otherwise
• apply_spherical_gauge(): in-place wrapper
• 3 new tests: GaugeFix_SpherTetVertexZerosSumGv, GaugeFix_ApplyInPlace,
GaugeFix_AlreadyAtGaugeReturnsTNearZero
Total: 45 cgal tests pass, 3 skipped (@Ignore Hessian stubs, one per functional)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
52 lines
1.8 KiB
CMake
52 lines
1.8 KiB
CMake
# 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
|
|
)
|
|
|
|
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
|
|
${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
|
|
)
|
|
|
|
# Suppress warnings from CGAL/Boost headers
|
|
target_compile_options(conformallab_cgal_tests PRIVATE
|
|
$<$<CXX_COMPILER_ID:GNU,Clang,AppleClang>:-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
|
|
)
|