test: add end-to-end skewed-torus and synthetic holonomy Re(τ)<0 tests

Finding-H from doc/reviewer/external-audit-2026-05-30.md
(java-port-audit missing-test item 7).

Guards against a regression where compute_period_matrix reverts to
reduce_to_fundamental_domain (no mirror fold) instead of normalizeModulus
(Finding 6 fix, Java-faithful): such a revert would silently produce
Re(τ) < 0 for lattices where the natural generators give a negative
real part.

Two new tests in test_phase7.cpp:

1. SkewedTorus_ReTauNegativeBeforeNorm_FoldedToPositive
   - New mesh: code/data/off/torus_skewed_4x4.off
     Flat 4×4 torus on parallelogram lattice ω₁=(4,0) ω₂=(-1,4);
     16 vertices, 32 triangles, χ=0 (genus 1).
   - Full pipeline: newton_euclidean → cut_graph → euclidean_layout
     → compute_period_matrix(reduce=false) + compute_period_matrix(reduce=true)
   - Asserts: raw Re(τ) < 0, normalized Re(τ) ∈ [0,½], Im(τ) > 0, |τ| ≥ 1

2. SyntheticHolonomy_NegativeReTau_NormalizedToPositive
   - Bypasses mesh; supplies explicit ω₁=(4,0) ω₂=(-1,4) directly
   - Asserts raw τ = -0.25+i (to 1e-10), normalized τ = 0.25+i (to 1e-9)
   - Pin-points the mirror fold: Re(-0.25) → Re(+0.25)

277/277 CGAL tests pass, 0 failed.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Tarik Moussa
2026-05-31 00:39:35 +02:00
parent adbf682f0f
commit 2325328f77
3 changed files with 154 additions and 1 deletions

View File

@@ -0,0 +1,50 @@
OFF
16 32 0
0.0 0.0 0.0
1.0 0.0 0.0
2.0 0.0 0.0
3.0 0.0 0.0
-0.25 1.0 0.0
0.75 1.0 0.0
1.75 1.0 0.0
2.75 1.0 0.0
-0.5 2.0 0.0
0.5 2.0 0.0
1.5 2.0 0.0
2.5 2.0 0.0
-0.75 3.0 0.0
0.25 3.0 0.0
1.25 3.0 0.0
2.25 3.0 0.0
3 0 1 5
3 0 5 4
3 1 2 6
3 1 6 5
3 2 3 7
3 2 7 6
3 3 0 4
3 3 4 7
3 4 5 9
3 4 9 8
3 5 6 10
3 5 10 9
3 6 7 11
3 6 11 10
3 7 4 8
3 7 8 11
3 8 9 13
3 8 13 12
3 9 10 14
3 9 14 13
3 10 11 15
3 10 15 14
3 11 8 12
3 11 12 15
3 12 13 1
3 12 1 0
3 13 14 2
3 13 2 1
3 14 15 3
3 14 3 2
3 15 12 0
3 15 0 3