Update all doc test counts to 176 CGAL tests, 0 skipped
Some checks failed
C++ Tests / test-fast (push) Successful in 2m10s
C++ Tests / test-cgal (push) Has been skipped
C++ Tests / test-fast (pull_request) Successful in 2m3s
C++ Tests / test-cgal (pull_request) Failing after 2m51s

Propagates the new baseline (176 passed, 0 skipped) established by the
GradientCheck_Hessian implementation across all documentation files that
previously referenced the stale counts (174/173/170 + 1-2 skips).

Files updated: CLAUDE.md, doc/api/tests.md, doc/contributing.md,
doc/getting-started.md, doc/math/novelty-statement.md,
doc/math/validation.md, doc/math/validation-protocol.md, scripts/try_it.sh

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Tarik Moussa
2026-05-18 23:33:31 +02:00
parent 1442de9c8d
commit 52f61cec36
8 changed files with 15 additions and 28 deletions

View File

@@ -244,13 +244,7 @@ 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**, **174 CGAL tests pass, 2 skipped**.
The 2 intentional skips are Java `@Ignore` ports:
- `EuclideanFunctional.GradientCheck_Hessian` — analytic Euclidean Hessian gradient check
- `SphericalFunctional.GradientCheck_Hessian` — analytic Spherical Hessian gradient check
Both are deferred to Phase 9b. Do not remove them.
Expected results: **36 non-CGAL tests pass**, **176 CGAL tests pass, 0 skipped**.
## Release state
@@ -298,7 +292,7 @@ Root-level files added at v0.7.0:
| Full pipeline API for all three geometries | `doc/api/pipeline.md` |
| What does each processing unit require/provide (contracts)? | `doc/api/contracts.md` |
| How to add a new functional / geometry mode / port from Java | `doc/api/extending.md` |
| All 34 test suites, 174+36 tests, individual counts | `doc/api/tests.md` |
| All 35 test suites, 176+36 tests, individual counts | `doc/api/tests.md` |
| Phase 8 CGAL package design + Declarative YAML pipeline spec | `doc/api/cgal-package.md` |
### Concepts & specs

View File

@@ -29,8 +29,8 @@ All tests have CTest prefix `cgal.` (set via `TEST_PREFIX "cgal."` in CMakeLists
| `ConformalMeshProperties` | `test_conformal_mesh.cpp` | 5 | Property maps (λ, θ, idx, α, geometry type) |
| `ConformalMeshValidity` | `test_conformal_mesh.cpp` | 1 | CGAL validity for all factory meshes |
| `HyperIdealFunctional` | `test_hyper_ideal_functional.cpp` | 7 | FD gradient checks + Hessian symmetry |
| `SphericalFunctional` | `test_spherical_functional.cpp` | 12 | Angle formula + gradient + gauge-fix *(1 skipped)* |
| `EuclideanFunctional` | `test_euclidean_functional.cpp` | 12 | Angle formula + gradient *(1 skipped)* |
| `SphericalFunctional` | `test_spherical_functional.cpp` | 12 | Angle formula + gradient + gauge-fix + cross-module Hessian check |
| `EuclideanFunctional` | `test_euclidean_functional.cpp` | 12 | Angle formula + gradient + cross-module Hessian check |
| `EuclideanHessian` | `test_euclidean_hessian.cpp` | 9 | Cotangent Laplacian structure, FD agreement, PSD, null space |
| `SphericalHessian` | `test_spherical_hessian.cpp` | 8 | Derivative correctness, NSD at equilibrium |
| `NewtonSolver` | `test_newton_solver.cpp` | 11 | Convergence: Euclidean ×3, Spherical ×4, HyperIdeal ×4 |
@@ -59,11 +59,7 @@ All tests have CTest prefix `cgal.` (set via `TEST_PREFIX "cgal."` in CMakeLists
| `HomologyGenerators` | `test_geometry_utils.cpp` | 1 | Genus-2 cut graph: χ = 2, 4 cut edges (`brezel2.obj`) |
| `SmokeEuclidean` | `test_scalability_smoke.cpp` | 3 | Smoke tests on real meshes: CatHead (open), Brezel genus-1, Brezel2 genus-2 |
**Total: 176 tests, 2 intentional skips.**
The 2 skips are Java `@Ignore` ports — stubs until the analytic Hessian gradient checks are implemented (Phase 9b):
- `SphericalFunctional.GradientCheck_Hessian`
- `EuclideanFunctional.GradientCheck_Hessian`
**Total: 176 tests, 0 skipped.**
---

View File

@@ -30,7 +30,7 @@ Two jobs run on push to `dev`/`main` or on pull requests:
| Job | What it tests | Trigger |
|---|---|---|
| `test-fast` | 36 non-CGAL tests, no Boost | all branches |
| `test-cgal` | 170 CGAL tests + 1 skip | `main`, `dev`, PRs only |
| `test-cgal` | 176 CGAL tests, 0 skipped | `main`, `dev`, PRs only |
A PR is ready to merge when both jobs pass.
@@ -51,10 +51,7 @@ Every new algorithm needs:
3. **Registration** — add the `.cpp` file to `code/tests/cgal/CMakeLists.txt`.
Expected CI result: **36 + 170 tests pass, exactly 1 skipped**.
The skip is an intentional `GTEST_SKIP()` stub for the genus-2 homology test
(`cgal.HomologyGenerators.Genus2_FourGeneratorPaths_BLOCKED`) — blocked until a
genus-2 mesh is available in Phase 9c. Do not remove it.
Expected CI result: **36 + 176 tests pass, 0 skipped**.
---

View File

@@ -60,7 +60,7 @@ cmake --build build --target conformallab_cgal_tests -j$(nproc)
ctest --test-dir build -R "^cgal\." --output-on-failure
```
Expected: **173 tests pass, 1 skipped** (intentional stub for analytic HyperIdeal Hessian, Phase 9b).
Expected: **176 tests pass, 0 skipped**.
### Mode 3 — Full local build (CLI app + interactive viewer)
@@ -146,7 +146,7 @@ sets x* = 0, so a small perturbation (-0.05) needs only one Newton step.
bash scripts/try_it.sh
```
This clones nothing (run from inside the repo), builds the CGAL test suite, runs
all 173+36 tests, and prints a summary. See `scripts/try_it.sh` for details.
all 176+36 tests, and prints a summary. See `scripts/try_it.sh` for details.
---

View File

@@ -91,7 +91,7 @@ is an open research question that this library is designed to investigate.
### 3.4 — Full test coverage of analytic invariants
173 CGAL tests verify mathematically provable properties:
176 CGAL tests verify mathematically provable properties:
- GaussBonnet: Σ(2πΘᵥ) = 2π·χ(M) to machine precision
- τ ∈ fundamental domain: three inequalities
- Holonomy closure: [T_a, T_b] = Id (abelian for genus 1)
@@ -120,7 +120,7 @@ conformallab++ is a port of Stefan Sechelmann's Java ConformalLab (TU Berlin,
~850 commits, v1.0.0 2018, LGPL). The port:
- Replaces the custom Java halfedge structure (`CoHDS`) with `CGAL::Surface_mesh`
- Replaces JUnit tests with GTest + CGAL test format (173 tests)
- Replaces JUnit tests with GTest + CGAL test format (176 tests)
- Adds Doxygen API documentation, CMake build, and CLI
- Is MIT licensed (the Java original is LGPL)
- Targets submission to the CGAL library as package `Discrete_conformal_map`

View File

@@ -199,7 +199,7 @@ inner/outer edge lengths). Use `torus_8x8.off` for a finer approximation.
## Summary checklist
```
[ ] Check 0: 170 tests pass, 1 skip
[ ] Check 0: 176 tests pass, 0 skipped
[ ] Check 1: GaussBonnet exact (1e-10)
[ ] Check 2: FD gradient < 1e-6 for all 3 geometries
[ ] Check 3: Newton convergence < 50 iterations

View File

@@ -14,7 +14,7 @@ cmake --build build --target conformallab_cgal_tests
ctest --test-dir build -R cgal --output-on-failure
```
All 173 tests pass (1 skipped by design — see `doc/api/tests.md`).
All 176 tests pass, 0 skipped (see `doc/api/tests.md`).
---
@@ -260,7 +260,7 @@ im Phasen-Roadmap).
Run these in order to validate the implementation:
- [ ] `ctest --test-dir build -R cgal --output-on-failure` 173 tests pass, 1 skip
- [ ] `ctest --test-dir build -R cgal --output-on-failure` 176 tests pass, 0 skipped
- [ ] `cgal.GaussBonnet.*` all pass topology is correctly read from mesh
- [ ] `cgal.EuclideanFunctional.GradientCheck_*` pass energy = integral of gradient
- [ ] `cgal.PeriodMatrix.TauInFundamentalDomain_*` pass SL(2,) reduction correct

View File

@@ -10,7 +10,7 @@
# bash scripts/try_it.sh
#
# Expected output (last lines):
# [PASS] 174 CGAL tests pass, 2 skipped
# [PASS] 176 CGAL tests pass, 0 skipped
# [PASS] 36 non-CGAL tests pass
# [EXAMPLE] Converged in N iterations. ||G||_inf < 1e-9