Part of #2286 (COG readiness/stability rollout).
Scope
Add a focused COG parity layer to the release gate so COG read/write paths are required-green for promotion.
Required changes
New file: xrspatial/geotiff/tests/test_cog_parity_2286.py (or an additive section to test_backend_full_parity_2211.py; prefer a new file to keep diffs reviewable).
Required rows:
xrspatial write COG -> xrspatial eager read
xrspatial write COG -> xrspatial dask read
xrspatial write COG -> rasterio read
golden/rasterio COG fixture -> xrspatial local read
golden/rasterio COG fixture -> xrspatial HTTP range read
golden/rasterio COG fixture -> xrspatial dask HTTP range read
For each row:
- Compare expected pixel values within documented tolerances (lossless = byte-exact).
- Assert CRS, transform, nodata, dtype, band count, dim names survive.
- Skip reasons must be explicit and
pytest.skip with a string mentioning the dependency or linked issue. No silent skips.
Use the existing golden corpus under xrspatial/geotiff/tests/golden_corpus/ where it applies, or generate a small COG fixture via rasterio in the test if no suitable golden exists.
Out of scope
- GPU rows (
reader.gpu stays experimental).
- Experimental codecs.
- Promoting any feature tier (PRs 5/6 do that).
Acceptance
- New file under
xrspatial/geotiff/tests/.
- All six rows present, each either passing or skipping with a linked reason.
- Suite green on CPU CI.
Part of #2286 (COG readiness/stability rollout).
Scope
Add a focused COG parity layer to the release gate so COG read/write paths are required-green for promotion.
Required changes
New file:
xrspatial/geotiff/tests/test_cog_parity_2286.py(or an additive section totest_backend_full_parity_2211.py; prefer a new file to keep diffs reviewable).Required rows:
xrspatial write COG -> xrspatial eager readxrspatial write COG -> xrspatial dask readxrspatial write COG -> rasterio readgolden/rasterio COG fixture -> xrspatial local readgolden/rasterio COG fixture -> xrspatial HTTP range readgolden/rasterio COG fixture -> xrspatial dask HTTP range readFor each row:
pytest.skipwith a string mentioning the dependency or linked issue. No silent skips.Use the existing golden corpus under
xrspatial/geotiff/tests/golden_corpus/where it applies, or generate a small COG fixture via rasterio in the test if no suitable golden exists.Out of scope
reader.gpustays experimental).Acceptance
xrspatial/geotiff/tests/.