fix(simulation): PR #210 review round — guard boundary, live oasis pinning, unreachability proof (T-964)

Guard becomes land_districts <= 1 (both reviewers converged — a lone
island definitionally cannot show two distinct directions; same
nothing-to-vary condition one value short), with a lone-island vacuous-
pass fixture; golden confirmed untouched. Oasis scaling adjudicated as
LIVE, not future — GRID_W is already 1024 on main, so ring iterations
change 2/4 -> 4/8 today: extracted a pure oasis_ring_iterations()
helper pinned by tests at both 512 and 1024, and traced exactly why the
determinism hash stayed green (it reads only elevation; the rings touch
only biome — a genuinely different array, not a coincidence). The
drainage merge-logic question answered byte-precisely: zero logic
changed vs main (comment-only diff) — and the deeper dig PROVED the
'isolated basin with another basin to escape to' branch is
mathematically unreachable for any connected grid (contracting vertex
groups of a connected graph cannot disconnect it), so the comment now
states that instead of narrating a divergence that never fires; two
direct merge-target tests added regardless. Wrap test renamed to what
it actually pins (non-wrap-awareness). D-010 docstring softened to
same-process purity, naming the cascade golden as the cross-run layer.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
2026-07-25 19:35:09 +02:00
co-authored by Claude Fable 5
parent 272d3781d8
commit b165c8038d
6 changed files with 323 additions and 40 deletions
+7 -5
View File
@@ -1112,17 +1112,19 @@ mod tests {
}
#[test]
fn thin_by_spacing_column_wrap_does_not_collide_across_the_seam() {
fn thin_by_spacing_is_not_wrap_aware_pins_current_behavior() {
// thin_by_spacing itself is a pure Chebyshev-distance thinner over
// (row, col) pairs — it has NO knowledge of the equirectangular
// column wrap (unlike NB8-based neighbor walks elsewhere in this
// file, which wrap explicitly via `wrap_col`). Two candidates at
// opposite ends of a wide grid (col 0 and col w-1) are geographically
// adjacent on the globe but numerically far apart in (row, col)
// space, so thin_by_spacing must NOT treat them as colliding — both
// survive. This pins the current (non-wrap-aware) behavior so a
// future change to make thinning wrap-aware is a deliberate,
// visible decision, not a silent behavior drift.
// space, so thin_by_spacing does NOT treat them as colliding — both
// survive. This is NOT proof that wrap support exists or is verified
// — it pins the OPPOSITE: the current lack-of-wrap-awareness, so a
// future change to make thinning wrap-aware is a deliberate, visible
// decision (this test would need to be rewritten), not a silent
// behavior drift.
let w = 64usize;
let claimed = vec![false; w * 64];
let cands = vec![(5usize, 0usize, 0.5f32), (5usize, w - 1, 0.6f32)];