note: close out the model — correct an inert mutation claim, retag four non-discriminating assertions, assert Tempo's closure, fix three doc/test accuracy gaps

No behavior change; verification-record corrections and one static_assert.
This commit is contained in:
2026-07-30 21:03:02 -04:00
parent a80eb76c1f
commit dddecc5734
5 changed files with 42 additions and 12 deletions
+5
View File
@@ -175,6 +175,9 @@ static void testUnnamedModifierClampsToStraight() {
== divisionIndex(makeDivision(0, DivisionModifier::Straight)));
CHECK(divisionLabel(makeDivision(0, junk)) == "1/4"); // and no junk reaches the readout
CHECK(makeDivision(0, junk) == makeDivision(0, DivisionModifier::Straight));
// Measured (clamp removed from clampModifier): still passes. junk(7) != Dotted's stored
// modifier either way, clamped or raw — this discriminates a degenerate operator== that
// ignores the modifier field, not the clamp itself.
CHECK(makeDivision(0, junk) != makeDivision(0, DivisionModifier::Dotted));
}
@@ -184,6 +187,8 @@ static void testEveryConstructibleDivisionIndexesIntoThePickerSet() {
// modifier clamp.
const int exponents[] = {-9000, -99, kMinQuarterExponent, 0, kMaxQuarterExponent, 120, 9000};
for (int e : exponents) {
// 260, not 256: m=256..259 wrap modulo uint8_t back to 0..3, re-covering the four
// lowest bytes rather than reaching any byte 256 alone couldn't already reach.
for (int m = 0; m < 260; ++m) {
const Division d = makeDivision(e, static_cast<DivisionModifier>(m));
const int index = divisionIndex(d);