fix: guard filter tail NaNs, skip static-filter envelope work, pin stereo filter path, correct stale comments

Codec fallback for non-finite filter fields, a modAmount==0 early-out in tickFilterCutoff,
new stereo render tests for the dual-mono mirror, and comment/test accuracy fixes flagged
in review (stale deck-width claims, restated invariants, drifted CMake link comments).
This commit is contained in:
2026-07-30 17:35:45 -04:00
parent 67215509cb
commit 39389c1183
14 changed files with 137 additions and 41 deletions
-14
View File
@@ -51,19 +51,6 @@ static void testGroupWidth() {
CHECK(deckGroupWidth(master) == kDeckCellW + 2 * kDeckGroupPadX);
}
static void testShellDeckFitsOneRowAtDefaultWidth() {
// The r11 default window is 840 with kPad=8 margins -> 824 available. The five shell
// groups must fit ONE deck row there (the elastic hero keeps ~430px — the layout spec's
// premise). Locks the constants against accidental growth.
const auto deck = shellLikeDeck();
int total = 0;
for (const auto& g : deck) total += deckGroupWidth(g);
total += (static_cast<int>(deck.size()) - 1) * kDeckGroupGap;
CHECK(total <= 824);
CHECK(deckRowCount(deck, 824) == 1);
CHECK(deckHeight(deck, 824) == kDeckGroupH);
}
static void testWrapAtNarrowWidthIsDeterministic() {
// At the 560x460 checkSizeConstraint floor (544 available) the deck wraps to TWO rows,
// whole trailing groups only.
@@ -185,7 +172,6 @@ static void testEmptyDeck() {
int main() {
testGroupWidth();
testShellDeckFitsOneRowAtDefaultWidth();
testWrapAtNarrowWidthIsDeterministic();
testFirstGroupAlwaysPlaces();
testGroupInnerGeometry();