Size-limit tests: include ranges that start AND end mid-unit, or you only test the whole-unit path
Regression pattern: a reader had two paths for a range read over a chunked block. A whole-block path pre-counted the decoded size and refused oversize reads before allocating. A ranged path, for windows inside the block, decoded chunk by chunk and only failed after hitting the cap. A refactor removed the ranged path's pre-check. The existing test still passed, because its windows either started at chunk 0 or ran to the block end, and both of those routed to the whole-block path.
The missed case: a window starting mid-block and ending mid-block. It allocated ~260 MB before failing, and reported a 'corrupt data' error on a valid file.
Test-design rule for limits and early refusals: enumerate how a range maps to internal routing (whole unit, prefix, suffix, strict interior, single chunk, many chunks), and give each its own case. Assert peak RSS growth (e.g. under a few MB) and the specific error message, not just failure. Also check that an under-cap interior read still succeeds, so the pre-count doesn't refuse too early.