fix: cover Local G2 window targets before splits

This commit is contained in:
梁薄云
2026-08-01 00:20:15 +08:00
parent 144a0883b2
commit bd08a9bac6
2 changed files with 69 additions and 11 deletions
@@ -116,7 +116,15 @@ Assert-True ($boundary.FirstRightLength -gt $boundary.FirstLeftLength) `
Assert-True ($boundary.MaximumWindowLength -le 0.80 + 1e-9) `
'No candidate window may exceed 0.80 m total length.'
foreach ($snapshot in @($separated, $mergeable, $partition, $boundary)) {
$coverage = $planScenario.Invoke($null, @('InteriorCoverage'))
Assert-True $coverage.RepresentativeTargetsFirst `
'Preferred, minimum, and maximum balanced targets must precede asymmetric variants.'
Assert-True $coverage.HasAsymmetricVariant `
'Default window planning must retain a legal asymmetric variant after balanced coverage.'
Assert-True ($coverage.FirstRegionVariantCount -le 12) `
'Window planning must obey the configured default cap.'
foreach ($snapshot in @($separated, $mergeable, $partition, $boundary, $coverage)) {
Assert-True $snapshot.ExactEnvelope 'Region envelope must equal the extrema of actual legal variants.'
Assert-True ($snapshot.MaximumWindowLength -le 0.80 + 1e-9) `
'MaximumWindowLengthMeters is a total, not a per-side length.'