From 11b3d38da3bda367f2bdda7bd4e03146a1643e43 Mon Sep 17 00:00:00 2001 From: Qingnan Zhou Date: Wed, 3 Jun 2026 20:50:54 -0400 Subject: [PATCH 1/3] Fix unit tests. --- CMakeLists.txt | 4 ++-- src/optimization/CMakeLists.txt | 3 +++ src/optimization/tests/test_area.cpp | 11 ++++++----- src/optimization/tests/test_energies.cpp | 11 ++++++----- src/optimization/tests/test_optimize.cpp | 15 ++++++++------- src/optimization/tests/test_refinement.cpp | 12 +++++++----- src/optimization/tests/test_regression.cpp | 11 ++++++----- src/optimization/tests/test_shear.cpp | 19 ++++++++++--------- 8 files changed, 48 insertions(+), 38 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index c5fa2d2..3d28aa1 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -8,6 +8,8 @@ add_compile_options(-fPIC) add_compile_options(-Wno-register) set(DIR_EXT "${CMAKE_CURRENT_SOURCE_DIR}/ext") +list(PREPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake) + # Set options if top level if (PROJECT_IS_TOP_LEVEL) # Options to generate python bindings @@ -37,8 +39,6 @@ if (PROJECT_IS_TOP_LEVEL) option ( SUITESPARSE_USE_CUDA OFF ) endif() -list(PREPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake) - include(boost) #include(eigen) diff --git a/src/optimization/CMakeLists.txt b/src/optimization/CMakeLists.txt index 8668534..ef8461c 100644 --- a/src/optimization/CMakeLists.txt +++ b/src/optimization/CMakeLists.txt @@ -60,5 +60,8 @@ if(BUILD_CURVATURE_METRIC_TESTS) add_executable(penner_tests tests/tests.cpp) target_link_libraries(penner_tests PRIVATE PennerOptimizationLib Catch2::Catch2WithMain) target_include_directories(penner_tests PRIVATE tests) + target_compile_definitions(penner_tests PRIVATE + TEST_DATA_DIR="${CMAKE_CURRENT_SOURCE_DIR}/tests/regression" + ) add_test(NAME penner_tests COMMAND penner_tests) endif() diff --git a/src/optimization/tests/test_area.cpp b/src/optimization/tests/test_area.cpp index 402ee99..7f0a0a7 100644 --- a/src/optimization/tests/test_area.cpp +++ b/src/optimization/tests/test_area.cpp @@ -30,12 +30,13 @@ *********************************************************************************/ #include -#include "area.hh" -#include "shapes.hh" -#include "common.hh" -#include "cone_metric.hh" +#include "optimization/core/area.h" +#include "optimization/util/shapes.h" +#include "optimization/core/common.h" +#include "optimization/core/cone_metric.h" -using namespace CurvatureMetric; +using namespace Penner; +using namespace Penner::Optimization; TEST_CASE( "The squared area of a triangle can be computed", "[area]" ) { diff --git a/src/optimization/tests/test_energies.cpp b/src/optimization/tests/test_energies.cpp index 3fea108..6f9beed 100644 --- a/src/optimization/tests/test_energies.cpp +++ b/src/optimization/tests/test_energies.cpp @@ -30,12 +30,13 @@ *********************************************************************************/ #include -#include "energies.hh" -#include "shapes.hh" -#include "common.hh" -#include "cone_metric.hh" +#include "optimization/metric_optimization/energies.h" +#include "optimization/util/shapes.h" +#include "optimization/core/common.h" +#include "optimization/core/cone_metric.h" -using namespace CurvatureMetric; +using namespace Penner; +using namespace Penner::Optimization; TEST_CASE( "The energies of a triangle can be computed", "[energies]" ) { diff --git a/src/optimization/tests/test_optimize.cpp b/src/optimization/tests/test_optimize.cpp index caa86c5..8905f61 100644 --- a/src/optimization/tests/test_optimize.cpp +++ b/src/optimization/tests/test_optimize.cpp @@ -30,13 +30,14 @@ *********************************************************************************/ #include -#include "implicit_optimization.hh" -#include "shapes.hh" -#include "common.hh" -#include "cone_metric.hh" -#include "energy_functor.hh" - -using namespace CurvatureMetric; +#include "optimization/metric_optimization/implicit_optimization.h" +#include "optimization/util/shapes.h" +#include "optimization/core/common.h" +#include "optimization/core/cone_metric.h" +#include "optimization/metric_optimization/energy_functor.h" + +using namespace Penner; +using namespace Penner::Optimization; TEST_CASE("The optimium edge length for a triangle can be computed", "[optimize]") { diff --git a/src/optimization/tests/test_refinement.cpp b/src/optimization/tests/test_refinement.cpp index 0d0d8b5..0f1f798 100644 --- a/src/optimization/tests/test_refinement.cpp +++ b/src/optimization/tests/test_refinement.cpp @@ -30,18 +30,20 @@ *********************************************************************************/ #include -#include "common.hh" -#include "refinement.hh" -#include "triangulation.hh" +#include "optimization/core/common.h" +#include "optimization/parameterization/refinement.h" +#include "optimization/parameterization/triangulation.h" -using namespace CurvatureMetric; +using namespace Penner; +using namespace Penner::Optimization; TEST_CASE( "A self overlapping polygon can be identified", "[refinement]" ) { std::vector> is_self_overlapping_subpolygon; std::vector> splitting_vertices; std::vector> min_face_areas; - std::vector uv_vertices, vertices; + std::vector uv_vertices; + std::vector vertices; SECTION ( "Vertex" ) { diff --git a/src/optimization/tests/test_regression.cpp b/src/optimization/tests/test_regression.cpp index 279fe66..23514bc 100644 --- a/src/optimization/tests/test_regression.cpp +++ b/src/optimization/tests/test_regression.cpp @@ -32,12 +32,13 @@ #include #include -#include "common.hh" -#include "penner_optimization_interface.hh" -#include "io.hh" -#include "vector.hh" +#include "optimization/core/common.h" +#include "optimization/interface.h" +#include "util/io.h" +#include "util/vector.h" -using namespace CurvatureMetric; +using namespace Penner; +using namespace Penner::Optimization; namespace { diff --git a/src/optimization/tests/test_shear.cpp b/src/optimization/tests/test_shear.cpp index 23d2503..1b82616 100644 --- a/src/optimization/tests/test_shear.cpp +++ b/src/optimization/tests/test_shear.cpp @@ -30,15 +30,16 @@ *********************************************************************************/ #include -#include "shear.hh" -#include "shapes.hh" -#include "embedding.hh" -#include "common.hh" -#include "cone_metric.hh" -#include "penner_optimization_interface.hh" -#include "projection.hh" - -using namespace CurvatureMetric; +#include "optimization/core/shear.h" +#include "optimization/util/shapes.h" +#include "util/embedding.h" +#include "optimization/core/common.h" +#include "optimization/core/cone_metric.h" +#include "optimization/interface.h" +#include "optimization/core/projection.h" + +using namespace Penner; +using namespace Penner::Optimization; TEST_CASE( "A dual shear coordinate basis can be computed", "[shear]" ) { From 909cb503a50a020550a810b5bd44af8803a490ec Mon Sep 17 00:00:00 2001 From: Qingnan Zhou Date: Wed, 3 Jun 2026 22:02:45 -0400 Subject: [PATCH 2/3] Update catch2 and compilation fix. --- cmake/Catch2.cmake | 4 ++-- cmake/conformal_ideal_delaunay.cmake | 4 ++++ 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/cmake/Catch2.cmake b/cmake/Catch2.cmake index 44577de..589941b 100644 --- a/cmake/Catch2.cmake +++ b/cmake/Catch2.cmake @@ -6,6 +6,6 @@ Include(FetchContent) FetchContent_Declare( Catch2 GIT_REPOSITORY https://github.com/catchorg/Catch2.git - GIT_TAG v3.0.1 + GIT_TAG v3.15.0 ) -FetchContent_MakeAvailable(Catch2) \ No newline at end of file +FetchContent_MakeAvailable(Catch2) diff --git a/cmake/conformal_ideal_delaunay.cmake b/cmake/conformal_ideal_delaunay.cmake index 276533f..0026489 100644 --- a/cmake/conformal_ideal_delaunay.cmake +++ b/cmake/conformal_ideal_delaunay.cmake @@ -6,3 +6,7 @@ FetchContent_Declare( GIT_TAG penner_optimization ) FetchContent_MakeAvailable(conformal_ideal_delaunay) + +if(TARGET conformal_ideal_delaunay AND APPLE) + target_compile_options(conformal_ideal_delaunay PRIVATE -Wno-extra-tokens) +endif() From 31f3720e7041ad4ae5173c32907be987582e5827 Mon Sep 17 00:00:00 2001 From: Qingnan Zhou Date: Wed, 3 Jun 2026 22:23:50 -0400 Subject: [PATCH 3/3] Update github actions. --- .github/workflows/cmake-single-platform.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/cmake-single-platform.yml b/.github/workflows/cmake-single-platform.yml index 8ded0d0..c2fb718 100644 --- a/.github/workflows/cmake-single-platform.yml +++ b/.github/workflows/cmake-single-platform.yml @@ -28,7 +28,7 @@ jobs: - name: Configure CMake # Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make. # See https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html?highlight=cmake_build_type - run: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} + run: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DENABLE_VISUALIZATION=OFF - name: Build # Build your program with the given configuration