Fix descending uniform-coordinate binned selection in ImageTool#376
Conversation
There was a problem hiding this comment.
Pull request overview
Fixes an ImageTool bug where binning at the boundary of a descending uniform coordinate produced empty selections, and makes qsel_args_from_indexers correctly handle descending coordinates by always emitting non-negative bin widths and validating against a reversed slice.
Changes:
- Clamp/redistribute
_bin_slicebounds at array boundaries so edge cursors don't yield empty windows. - Make
qsel_args_from_indexersproduce non-negative widths and validate using a reversed slice for descending coords. - Reuse
_bin_slicein both hidden-axis binning paths (_bin_along_axis/_bin_along_multiaxis) to keep slicing consistent.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated no comments.
| File | Description |
|---|---|
| src/erlab/interactive/imagetool/slicer.py | Boundary clamping in _bin_slice, descending-coord safety in qsel_args_from_indexers, and reuse of _bin_slice in binning helpers. |
| tests/interactive/imagetool/test_slicer.py | Adds regressions for boundary _bin_slice, descending-coord qsel_args_from_indexers, and xslice with descending hidden axis. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #376 +/- ##
=======================================
Coverage 88.89% 88.89%
=======================================
Files 139 139
Lines 47155 47165 +10
Branches 7588 7592 +4
=======================================
+ Hits 41918 41927 +9
Misses 3271 3271
- Partials 1966 1967 +1 ☔ View full report in Codecov by Sentry. |
Summary
qsel_args_from_indexerssafe for descending uniform coordinates by rejecting empty bins early, emitting non-negative widths, and validating against reversed slice bounds when needed.xsliceand averaged selection stay consistent.xslicenear a boundary.Testing
_bin_slice,qsel_args_from_indexers, andxsliceon descending uniform coordinates.