Close pass four: undetented host curve read, LiveValues guard, ordering assert, static-lane fix, docs
Points toPlain's exponent arm at the undetented curve map so host reads match the editor; adds a sizeof guard plus field-poison test for LiveValues::operator==; skips the model write when an automation value hasn't moved; corrects five stale doc citations.
This commit is contained in:
@@ -126,11 +126,10 @@ static void testTheEditorAndTheHostPrintTheSameDigitsAtTheSameStoredValue() {
|
||||
}
|
||||
}
|
||||
|
||||
// The one place the two surfaces GENUINELY diverge, asserted so it stays a known property rather
|
||||
// than a surprise: an exponent inside curve_law's centre detent but not exactly neutral is
|
||||
// reachable only through an overlay knot drag, and the host — which holds the norm and nothing
|
||||
// else — reads it back as the neutral the knob law snaps to.
|
||||
static void testAnOffDetentExponentReadsNeutralToTheHostAndTrueToTheEditor() {
|
||||
// A continuous range stays continuous at the host boundary (Daniel, 2026-08-02): the knob
|
||||
// detent is a drag affordance only, so an exponent inside it but not exactly neutral — reachable
|
||||
// via an overlay knot drag — must read back true to the host, the same digits the editor shows.
|
||||
static void testAnOffDetentExponentReadsTrueToBothTheHostAndTheEditor() {
|
||||
PlaySeconds play;
|
||||
// The detent is +/-0.01 in NORM, which is a ~+/-0.047 band in the exponent — so 1.04 is
|
||||
// inside it and still prints as a distinct number.
|
||||
@@ -144,7 +143,7 @@ static void testAnOffDetentExponentReadsNeutralToTheHostAndTrueToTheEditor() {
|
||||
char hostBuf[24];
|
||||
formatPlainFor(DeckParam::kAttackCurve, toPlain(DeckParam::kAttackCurve, hostNorm), hostBuf,
|
||||
sizeof(hostBuf));
|
||||
CHECK(std::string(hostBuf) == "1.00");
|
||||
CHECK(std::string(hostBuf) == "1.04");
|
||||
}
|
||||
|
||||
static void testKeyTrackPrintsTheSameDigitsFromEitherSurface() {
|
||||
@@ -227,7 +226,7 @@ static void testEveryExposedParameterHasAFormatterThatWritesSomething() {
|
||||
int main() {
|
||||
testEachCategoryPrintsItsSpecifiedShape();
|
||||
testTheEditorAndTheHostPrintTheSameDigitsAtTheSameStoredValue();
|
||||
testAnOffDetentExponentReadsNeutralToTheHostAndTrueToTheEditor();
|
||||
testAnOffDetentExponentReadsTrueToBothTheHostAndTheEditor();
|
||||
testMasterGainPrintsTheSameDigitsFromEitherSurface();
|
||||
testKeyTrackPrintsTheSameDigitsFromEitherSurface();
|
||||
testTypingBackADisplayedValueLandsOnIt();
|
||||
|
||||
Reference in New Issue
Block a user