v0.7.0 — Phase 7 complete: 173 Tests, Onboarding-Doku, geometry-central #3

Merged
user2595 merged 19 commits from dev into main 2026-05-18 18:40:00 +00:00
Showing only changes of commit c8e77e715c - Show all commits

View File

@@ -239,11 +239,30 @@ Two jobs in `.gitea/workflows/cpp-tests.yml`:
Runner: `eulernest` — self-hosted Raspberry Pi, ARM64, Ubuntu 22.04. Docker image: `git.eulernest.eu/conformallab/ci-cpp:latest`. `test-cgal` needs `test-fast` to pass first (`needs: test-fast`).
Expected results: **36 non-CGAL tests pass**, **158 CGAL tests pass, 2 skipped** (intentional `GTEST_SKIP` stubs for genus-2 homology and analytic HyperIdeal Hessian — these are Java features deferred to Phase 9).
Expected results: **36 non-CGAL tests pass**, **173 CGAL tests pass, 1 skipped** (intentional `GTEST_SKIP` stub for analytic HyperIdeal Hessian — deferred to Phase 9b).
## Key documentation for mathematical context
When working on math-heavy tasks, read these before reasoning from scratch:
| Question | Document |
|---|---|
| What is the mathematical problem this library solves? | `doc/math/discrete-conformal-theory.md` |
| What are the three geometry modes and how do they differ? | `doc/math/geometry-modes.md` |
| How does conformallab++ relate to geometry-central (CMU)? | `doc/architecture/geometry-central-comparison.md` |
| What analytic results can be used to validate correctness? | `doc/math/validation.md` |
| Which Java classes are ported, which are planned? | `doc/roadmap/java-parity.md` |
| What does each processing function require/provide? | `doc/api/contracts.md` |
**geometry-central** (Keenan Crane, CMU) implements the same discrete conformal
equivalence problem (Gillespie, Springborn & Crane, SIGGRAPH 2021) but uses
Ptolemaic flips on intrinsic triangulations instead of Newton on the original mesh.
It has no period matrix, holonomy, or spherical geometry mode.
The shared mathematical core (Springborn 2020) means cross-validation is meaningful.
See `doc/architecture/geometry-central-comparison.md` for the full comparison.
## Known quirks
- **Finder duplicate files**: `include/` contains files like `clausen 2.hpp`, `hyper_ideal_utility 2.hpp` — macOS Finder duplicates. Always use the canonical name without ` 2`. These should be deleted.
- **`test-fast` also runs stubs**: `conformallab_tests` (non-CGAL) contains `GTEST_SKIP`-based stubs for functionals that need CGAL. This is intentional — those tests document what was in the Java port scope but requires the CGAL mesh type.
- **Boost is header-only**: CGAL 6.x uses only Boost headers (`Boost.Config`, `Boost.Graph`). No compiled Boost libraries are needed. `find_package(Boost REQUIRED)` only locates the include path.
- **`main` branch is protected** on `origin` (Gitea). Push to `dev`, then merge via pull request. Codeberg `main` can be pushed to directly.