Follow-up from PR #942 (review item D3, #942 (review)).
The strict CI job (ubuntu-py313-strict) creates fixture data on array-api-strict's non-default device (device1, set up in ccdproc/tests/pytest_fixtures.py) to emulate CuPy-on-GPU behavior. But many test bodies create arrays inline with xp.ones(...) / xp.asarray(...) and no device= argument, so those arrays land on the default device. array-api-strict raises on any cross-device operation, so a chunk of the strict job's failure list is harness artifacts (fixture-on-device1 vs inline-array-on-default), not real ccdproc bugs.
Fix sketch: provide a fixture-supplied make_array helper (or similar) that pins the testing device, then migrate test bodies to use it instead of raw xp.* constructors.
Worth doing before burning down the strict failure list (#941), so the remaining failures are all genuine array-API escapes.
Follow-up from PR #942 (review item D3, #942 (review)).
The strict CI job (
ubuntu-py313-strict) creates fixture data on array-api-strict's non-default device (device1, set up inccdproc/tests/pytest_fixtures.py) to emulate CuPy-on-GPU behavior. But many test bodies create arrays inline withxp.ones(...)/xp.asarray(...)and nodevice=argument, so those arrays land on the default device. array-api-strict raises on any cross-device operation, so a chunk of the strict job's failure list is harness artifacts (fixture-on-device1 vs inline-array-on-default), not real ccdproc bugs.Fix sketch: provide a fixture-supplied
make_arrayhelper (or similar) that pins the testing device, then migrate test bodies to use it instead of rawxp.*constructors.Worth doing before burning down the strict failure list (#941), so the remaining failures are all genuine array-API escapes.