Nicholas Gower and Brandon Thomas
9f2060d674
analysis: report found/analysed/skipped counts, caps and implausibility ( #1890 )
...
* analysis: report found/analyzed/skipped, caps and implausible values (fixes #1440 )
* docs: document the functions touched by #1440
Add doc comments to the self-check helpers, the COUNT/SHAPES/MASSPROP entry points and helpers, and the tests and fixtures the analysis self-check change touches, so CodeRabbit's docstring coverage check passes.
* analysis: tolerate rounding past a bound, and skip area checks without extents (#1440 )
The self-check's implausible() compared value > bound exactly, so a border
rectangle whose shoelace area equals the extents' width * height could be
flagged by one ulp of rounding. Allow a 1e-9 relative slack past the bound
(the roundings of two ways of measuring the same thing), while a clearly
larger value is still flagged.
MASSPROP and SHAPES fell back to an extents area of 0 when nothing visible
gave the drawing extents, so every region or shape with area got a false
"area is larger than the drawing extents" flag. Pass f64::INFINITY instead:
implausible() already skips non-finite bounds, because no bound applies.
Tests: one ulp past the bound is not flagged while 1e-6 past is; an
extents-filling rectangle is not flagged; invisible-only masses/shapes with
no visible extents are not flagged.
---------
Co-authored-by: Brandon Thomas <echelon@gmail.com >
2026-10-24 01:56:51 -04:00
..
2026-10-23 13:34:26 -04:00
2026-10-23 13:34:26 -04:00
2026-10-23 13:34:26 -04:00
2026-10-23 13:34:26 -04:00
2026-10-23 13:34:26 -04:00
2026-10-23 13:34:26 -04:00
2026-10-23 13:34:26 -04:00
2026-10-23 13:34:26 -04:00
2026-10-23 13:34:26 -04:00
2026-10-23 13:34:26 -04:00
2026-10-23 13:34:26 -04:00
2026-10-23 13:34:26 -04:00
2026-10-23 13:34:26 -04:00
2026-10-23 13:34:26 -04:00
2026-10-23 13:34:26 -04:00
2026-10-23 13:34:26 -04:00
2026-10-23 13:34:26 -04:00
2026-10-23 13:34:26 -04:00
2026-10-23 13:34:26 -04:00
2026-10-23 13:34:26 -04:00
2026-10-24 01:56:51 -04:00
2026-10-23 13:34:26 -04:00
2026-10-23 13:34:26 -04:00
2026-10-23 13:34:26 -04:00
2026-10-23 13:34:26 -04:00
2026-10-23 13:34:26 -04:00
2026-10-23 13:34:26 -04:00
2026-10-23 13:34:26 -04:00
2026-10-23 13:34:26 -04:00
2026-10-23 13:34:26 -04:00
2026-10-23 13:34:26 -04:00
2026-10-23 13:34:26 -04:00
2026-10-23 13:34:26 -04:00
2026-10-23 13:34:26 -04:00
2026-10-23 13:34:26 -04:00
2026-10-23 13:34:26 -04:00
2026-10-23 13:34:26 -04:00
2026-10-23 13:34:26 -04:00
2026-10-23 13:34:26 -04:00
2026-10-23 13:34:26 -04:00
2026-10-23 13:34:26 -04:00
2026-10-23 13:34:26 -04:00
2026-10-23 13:34:26 -04:00
2026-10-23 13:34:26 -04:00
2026-10-23 13:34:26 -04:00
2026-10-23 13:34:26 -04:00
2026-10-23 13:34:26 -04:00
2026-10-23 13:34:26 -04:00
2026-10-23 13:34:26 -04:00
2026-10-24 01:54:04 -04:00
2026-10-23 13:34:26 -04:00
2026-10-23 13:34:26 -04:00
2026-10-23 13:34:26 -04:00
2026-10-23 13:34:26 -04:00
2026-10-23 13:34:26 -04:00
2026-10-23 13:34:26 -04:00
2026-10-23 13:34:26 -04:00
2026-10-23 13:34:26 -04:00
2026-10-23 13:34:26 -04:00
2026-10-23 13:34:26 -04:00
2026-10-23 13:34:26 -04:00
2026-10-23 13:34:26 -04:00
2026-10-24 01:52:00 -04:00
2026-10-23 13:34:26 -04:00
2026-10-23 13:34:26 -04:00
2026-10-23 13:34:26 -04:00
2026-10-23 13:34:26 -04:00
2026-10-23 13:34:26 -04:00
2026-10-23 13:34:26 -04:00
2026-10-23 13:34:26 -04:00
2026-10-23 13:34:26 -04:00
2026-10-23 13:34:26 -04:00
2026-10-23 13:34:26 -04:00
2026-10-23 13:34:26 -04:00
2026-10-23 13:34:26 -04:00
2026-10-23 13:34:26 -04:00
2026-10-23 13:34:26 -04:00
2026-10-23 13:34:26 -04:00
2026-10-23 13:34:26 -04:00
2026-10-23 13:34:26 -04:00
2026-10-23 13:34:26 -04:00
2026-10-23 13:34:26 -04:00
2026-10-23 13:34:26 -04:00
2026-10-23 13:34:26 -04:00
2026-10-23 13:34:26 -04:00
2026-10-23 13:34:26 -04:00
2026-10-23 13:34:26 -04:00
2026-10-23 13:34:26 -04:00
2026-10-23 13:34:26 -04:00
2026-10-23 13:34:26 -04:00
2026-10-23 13:34:26 -04:00
2026-10-23 13:34:26 -04:00
2026-10-23 13:34:26 -04:00
2026-10-23 13:34:26 -04:00
2026-10-23 13:34:26 -04:00
2026-10-23 13:34:26 -04:00
2026-10-23 13:34:26 -04:00
2026-10-23 13:34:26 -04:00
2026-10-23 13:34:26 -04:00
2026-10-23 13:34:26 -04:00
2026-10-23 13:34:26 -04:00
2026-10-23 13:34:26 -04:00
2026-10-24 01:56:51 -04:00
2026-10-23 13:34:26 -04:00
2026-10-23 13:34:26 -04:00
2026-10-23 13:34:26 -04:00
2026-10-23 13:34:26 -04:00
2026-10-23 13:34:26 -04:00
2026-10-23 13:34:26 -04:00
2026-10-23 13:34:26 -04:00
2026-10-24 01:52:00 -04:00
2026-10-23 13:34:26 -04:00
2026-10-24 01:56:51 -04:00
2026-10-23 13:34:26 -04:00
2026-10-23 13:34:26 -04:00
2026-10-23 13:34:26 -04:00
2026-10-23 13:34:26 -04:00
2026-10-23 13:34:26 -04:00
2026-10-23 13:34:26 -04:00
2026-10-23 13:34:26 -04:00
2026-10-23 13:34:26 -04:00
2026-10-23 13:34:26 -04:00
2026-10-23 13:34:26 -04:00
2026-10-23 13:34:26 -04:00
2026-10-24 01:54:20 -04:00
2026-10-23 13:34:26 -04:00
2026-10-23 13:34:26 -04:00
2026-10-23 13:34:26 -04:00
2026-10-23 13:34:26 -04:00
2026-10-23 13:34:26 -04:00
2026-10-23 13:34:26 -04:00
2026-10-23 13:34:26 -04:00
2026-10-23 13:34:26 -04:00
2026-10-23 13:34:26 -04:00
2026-10-23 13:34:26 -04:00
2026-10-23 13:34:26 -04:00
2026-10-23 13:34:26 -04:00
2026-10-23 13:34:26 -04:00
2026-10-23 13:34:26 -04:00
2026-10-23 13:34:26 -04:00
2026-10-23 13:34:26 -04:00
2026-10-23 13:34:26 -04:00
2026-10-23 13:34:26 -04:00
2026-10-23 13:34:26 -04:00