Record why the ring legend needs no overflow assertion

gospel landed 21ebb4f2 -- "Stop the ring legend pushing the centered-set
chart off the page" -- which is the same figure and the same legend I had
just added to the packet, so it was worth checking whether the print side
has the bug too.

It does not, and the reason is worth writing down rather than leaving as
arithmetic I happened to do once: a printed sheet is much taller than
their constrained screen pane. With ALL TEN rings named the column needs
~924px of a ~1715px page.

I wrote the assertion anyway and then deleted it, because mutation-testing
showed it only begins to fail at 51 legend rows -- and there are only ten
rings, so it could never fail for any input this code can produce. That is
a tautology dressed as a safety check, the same class as the "rows close
on the bottom margin" assertion already removed from check-profile-table:
a value compared against a bound it cannot reach reads as coverage and is
not.

What actually protects the layout is the empty-ring filter asserted just
above (ten rows is the hard ceiling) plus rega's rendered check. The
comment now says so, including the detail that gospel's fix leans on
overflow:auto and print has no scroll -- so if this page ever does get
tight, their remedy is not available here.
This commit is contained in:
Doxa Maps 2026-09-28 17:30:14 +00:00
parent 64ac9c00b9
commit 1272aa6dc3

View file

@ -132,6 +132,19 @@ ok(count(full, /class="sheet/g) - count(light, /class="sheet/g) === 3,
ok(sparse.length === 3, `only the populated rings should be listed, got ${sparse.length}: ${JSON.stringify(sparse)}`)
ok(/^2 /.test(sparse[0]) && /^1 /.test(sparse[1]) && /^3 /.test(sparse[2]),
`the legend should carry each ring's own count, got ${JSON.stringify(sparse)}`)
// ⚠ NO VERTICAL-OVERFLOW ASSERTION HERE, AND THAT IS DELIBERATE — I wrote one and deleted it.
// gospel hit exactly this failure on their screen panel (21ebb4f2, "Stop the ring legend pushing
// the centered-set chart off the page"): a legend stacked below a figure, taller than its space,
// displaces the chart. Their fix leans on overflow:auto, which PRINT DOES NOT HAVE — so the same
// layout would fail worse here, with the content simply gone rather than scrollable.
// Budgeted it: the column needs ~924px of a ~1715px sheet with ALL TEN rings named, and the
// assertion only starts failing at 51 rows. THERE ARE ONLY TEN RINGS, so it could never fail for
// any input this code can produce — a tautology dressed as a safety check, the same class as the
// "rows close on the bottom margin" one already deleted from check-profile-table. A printed sheet
// is simply much taller than gospel's constrained pane, which is why their bug is not ours.
// The real protection is the empty-ring filter asserted above (ten rows is the ceiling) plus
// rega's rendered check; a headless budget with 790px of slack would be decoration.
}
// An unknown variant must print the FULL packet. A typo that printed a SHORTER packet would look