test(simulation): derivation-harness call sites + believability golden regen for coastline invention

Mechanical call-site updates (7) for the invent_primitives signature;
believability golden regenerated via UPDATE_GOLDEN=1. Deltas are
deliberate: slope_q/elev_q spreads widen, vegetation_classes +1
(Marine), water-districts-wet coherence reaches 46/46 and 19/19
(T-1082 class closed — classification and coastline are the same line).
Reductions (ocean_fraction distinct, morphology_zones on GJ244Ad)
are the eager pseudo-grid point-sampling coasts honestly instead of
area-averaging them into synthetic intermediates; believability
coast-sampling resolution is Q-123 calibration territory. All 37
derivation-harness law checks unchanged.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
2026-07-17 08:21:57 +02:00
co-authored by Claude Fable 5
parent 6aafa77583
commit aa1471069b
2 changed files with 31 additions and 31 deletions
+7 -7
View File
@@ -841,7 +841,7 @@ fn law_climate_vegetation_no_skip_temperature_sweep() {
let mut last: Option<VegetationClass> = None;
for t_i in (-60i32..=30).rev().step_by(5) {
let temp = Some(t_i as f32);
let vc = derive_vegetation(temp, moisture_q, elev_q, false);
let vc = derive_vegetation(temp, moisture_q, elev_q, false, false);
if let Some(prev) = last {
if prev == VegetationClass::Forest && vc == VegetationClass::Barren {
panic!(
@@ -861,7 +861,7 @@ fn law_climate_vegetation_no_skip_elevation_sweep() {
let moisture_q = 55;
let mut last: Option<VegetationClass> = None;
for elev_q in (0i32..=100).step_by(5) {
let vc = derive_vegetation(temp, moisture_q, elev_q, false);
let vc = derive_vegetation(temp, moisture_q, elev_q, false, false);
if let Some(prev) = last {
if prev == VegetationClass::Forest && vc == VegetationClass::Barren {
panic!(
@@ -898,7 +898,7 @@ fn law_climate_vegetation_full_grid_no_skip() {
for elev_q in (0i32..=100).step_by(10) {
let mut last: Option<VegetationClass> = None;
for &temp in &temps_desc {
let vc = derive_vegetation(temp, moisture_q, elev_q, false);
let vc = derive_vegetation(temp, moisture_q, elev_q, false, false);
if let Some(prev) = last {
if prev == VegetationClass::Forest && vc == VegetationClass::Barren {
panic!(
@@ -919,7 +919,7 @@ fn law_climate_vegetation_riparian_near_perennial_water() {
// near_perennial_water=true must produce a Riparian variant in viable zones.
// Forest zone → RiparianThicket.
let vc_forest = derive_vegetation(Some(18.0), 60, 20, true);
let vc_forest = derive_vegetation(Some(18.0), 60, 20, true, false);
assert!(
matches!(
vc_forest,
@@ -930,7 +930,7 @@ fn law_climate_vegetation_riparian_near_perennial_water() {
);
// Scrub zone → RiparianScrub.
let vc_scrub = derive_vegetation(Some(5.0), 30, 50, true);
let vc_scrub = derive_vegetation(Some(5.0), 30, 50, true, false);
assert!(
matches!(
vc_scrub,
@@ -941,7 +941,7 @@ fn law_climate_vegetation_riparian_near_perennial_water() {
);
// Hyper-arid Barren zone + perennial water → RiparianScrub oasis (D-239 §8).
let vc_arid = derive_vegetation(Some(20.0), 3, 10, true);
let vc_arid = derive_vegetation(Some(20.0), 3, 10, true, false);
assert_eq!(
vc_arid,
VegetationClass::RiparianScrub,
@@ -957,7 +957,7 @@ fn law_climate_vegetation_airless_always_absent() {
for moisture_q in [0, 30, 70, 100] {
for elev_q in [0, 50, 100] {
for near_water in [false, true] {
let vc = derive_vegetation(None, moisture_q, elev_q, near_water);
let vc = derive_vegetation(None, moisture_q, elev_q, near_water, false);
assert_eq!(
vc,
VegetationClass::Absent,
+24 -24
View File
@@ -6,38 +6,38 @@
"voxel_sampled_districts": 64,
"contrast": {
"moisture_q": {
"min": 32,
"min": 31,
"max": 80,
"distinct": 49
"distinct": 48
},
"elev_q": {
"min": 0,
"max": 98,
"distinct": 99
"max": 100,
"distinct": 101
},
"slope_q": {
"min": 0,
"max": 13,
"distinct": 14
"max": 30,
"distinct": 30
},
"ocean_fraction_q": {
"min": 0,
"max": 100,
"distinct": 65
"distinct": 44
},
"morphology_zones": 9,
"vegetation_classes": 3,
"vegetation_classes": 4,
"terrain_materials": 4,
"voxel_relief_m": 20,
"voxel_relief_m": 24,
"micro_habitat_distinct": 2
},
"coherence": {
"water_districts": 49,
"water_districts_wet": 44,
"water_districts": 46,
"water_districts_wet": 46,
"drainage_samples": 0,
"drainage_monotonic": 0,
"vegetation_samples": 64,
"vegetated_districts": 8
"vegetated_districts": 7
}
},
{
@@ -49,32 +49,32 @@
"moisture_q": {
"min": 0,
"max": 20,
"distinct": 21
"distinct": 20
},
"elev_q": {
"min": 0,
"max": 99,
"distinct": 100
"max": 100,
"distinct": 101
},
"slope_q": {
"min": 0,
"max": 6,
"distinct": 7
"max": 15,
"distinct": 14
},
"ocean_fraction_q": {
"min": 0,
"max": 100,
"distinct": 65
"distinct": 38
},
"morphology_zones": 9,
"vegetation_classes": 1,
"terrain_materials": 4,
"voxel_relief_m": 19,
"morphology_zones": 6,
"vegetation_classes": 2,
"terrain_materials": 2,
"voxel_relief_m": 21,
"micro_habitat_distinct": 0
},
"coherence": {
"water_districts": 25,
"water_districts_wet": 22,
"water_districts": 19,
"water_districts_wet": 19,
"drainage_samples": 0,
"drainage_monotonic": 0,
"vegetation_samples": 64,