Skip to content

Commit 29d2b28

Browse files
committed
Address Copilot review on #1639: clarify prior coverage scope
- Fix "six" -> "seven" reductions count (mean, nearest, min, max, median, mode, cubic). - Reword module docstring: CPU end-to-end paths for min/max/median were already covered by test_cog_overview_nodata_1613; the gap this file closes is GPU end-to-end + direct CPU/GPU block-reducer branches. - Mirror the clarification in the sweep-test-coverage state CSV row.
1 parent e1120c1 commit 29d2b28

2 files changed

Lines changed: 10 additions & 9 deletions

File tree

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
module,last_inspected,issue,severity_max,categories_found,notes
2-
geotiff,2026-05-11,,HIGH,2;3;4,"Pass 6 (2026-05-11): added test_overview_resampling_min_max_median_2026_05_11.py covering Cat 4 HIGH parameter-coverage gap on overview_resampling=min/max/median. Both CPU (_block_reduce_2d) and GPU (_block_reduce_2d_gpu) reductions had branches with zero test coverage; an unnoticed regression in any of the three modes would ship undetected. 26 tests, all passing on GPU host: block-reducer unit tests (finite + partial-NaN), end-to-end COG writes for both to_geotiff and write_geotiff_gpu, CPU/GPU parity for to_geotiff(gpu=True), CPU nodata-sentinel regression check, and ValueError error-path tests for unknown method names on both backends. Pass 5 (2026-05-11): added test_degenerate_shapes_backends_2026_05_11.py covering Cat 3 HIGH geometric gaps (1x1 / 1xN / Nx1 reads on dask+numpy, GPU, dask+cupy backends; 1x1 / 1xN / Nx1 writes through write_geotiff_gpu) and Cat 2 MEDIUM NaN/Inf gaps (all-NaN read on GPU + dask+cupy, Inf / -Inf reads on all non-eager backends, NaN sentinel mask on dask read path including sentinel block split across chunk boundary). 23 tests, all passing on GPU host. Prior passes still hold: pass 4 (r4) closed read_geotiff_gpu/dask name= + max_pixels= kwargs (Cat 4), pass 3 (r3) closed read_vrt GPU/dask+GPU backend dispatch (Cat 1) and dtype/name kwargs (Cat 4)."
2+
geotiff,2026-05-11,,HIGH,2;3;4,"Pass 6 (2026-05-11): added test_overview_resampling_min_max_median_2026_05_11.py covering Cat 4 HIGH parameter-coverage gap on overview_resampling=min/max/median. CPU end-to-end paths were already covered by test_cog_overview_nodata_1613::test_cpu_cog_overview_aggregations_ignore_sentinel; the GPU end-to-end paths and the direct CPU+GPU block-reducer branches had no targeted tests, so a regression on those code paths would ship undetected. 26 tests, all passing on GPU host: block-reducer unit tests (finite + partial-NaN), end-to-end COG writes for both to_geotiff and write_geotiff_gpu, CPU/GPU parity for to_geotiff(gpu=True), CPU nodata-sentinel regression check, and ValueError error-path tests for unknown method names on both backends. Pass 5 (2026-05-11): added test_degenerate_shapes_backends_2026_05_11.py covering Cat 3 HIGH geometric gaps (1x1 / 1xN / Nx1 reads on dask+numpy, GPU, dask+cupy backends; 1x1 / 1xN / Nx1 writes through write_geotiff_gpu) and Cat 2 MEDIUM NaN/Inf gaps (all-NaN read on GPU + dask+cupy, Inf / -Inf reads on all non-eager backends, NaN sentinel mask on dask read path including sentinel block split across chunk boundary). 23 tests, all passing on GPU host. Prior passes still hold: pass 4 (r4) closed read_geotiff_gpu/dask name= + max_pixels= kwargs (Cat 4), pass 3 (r3) closed read_vrt GPU/dask+GPU backend dispatch (Cat 1) and dtype/name kwargs (Cat 4)."
33
reproject,2026-05-10,,HIGH,1;4;5,"Added 39 tests: LiteCRS direct coverage, itrf_transform behaviour/roundtrip/array, itrf_frames, geoid_height numerical correctness + raster happy-path, vertical helpers (ellipsoidal<->orthometric/depth), reproject() lat/lon and latitude/longitude dim propagation. Note: _merge_arrays_cupy is imported but unused (no cupy merge dispatch in merge()); flagged as feature gap not test gap."

xrspatial/geotiff/tests/test_overview_resampling_min_max_median_2026_05_11.py

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,22 +3,23 @@
33
44
The CPU writer (``xrspatial.geotiff._writer._block_reduce_2d``) and the
55
GPU writer (``xrspatial.geotiff._gpu_decode._block_reduce_2d_gpu``) both
6-
implement six resampling reductions for COG overview generation:
6+
implement seven resampling reductions for COG overview generation:
77
88
* ``mean`` -- covered by ``test_cog_overview_nodata_1613`` and
99
``test_features``.
1010
* ``nearest`` -- covered by ``test_features`` and the same suite.
1111
* ``mode`` -- covered by ``test_mode_overview_perf``.
1212
* ``cubic`` -- covered by ``test_cog_cubic_overview_nodata_1623``.
13-
* ``min`` -- NO coverage prior to this file.
14-
* ``max`` -- NO coverage prior to this file.
15-
* ``median`` -- NO coverage prior to this file.
13+
* ``min`` / ``max`` / ``median`` -- CPU end-to-end paths covered by
14+
``test_cog_overview_nodata_1613::test_cpu_cog_overview_aggregations_ignore_sentinel``,
15+
but the GPU end-to-end paths and the direct CPU/GPU block-reducer
16+
branches had no targeted tests prior to this file.
1617
1718
Test coverage gap sweep 2026-05-11 (pass 6) closes a Cat 4 (parameter
18-
coverage) HIGH gap: three documented public modes of the
19-
``overview_resampling`` parameter on ``to_geotiff`` and
20-
``write_geotiff_gpu`` had implementations but no tests, so a regression
21-
in any of those reduction branches would ship undetected.
19+
coverage) HIGH gap: the GPU end-to-end paths and the direct CPU+GPU
20+
block-reducer branches for ``overview_resampling='min'/'max'/'median'``
21+
had no targeted tests, so a regression on those code paths would ship
22+
undetected.
2223
2324
The tests cover:
2425

0 commit comments

Comments
 (0)