download() now runs _check_storage(), which reads _ddf_shifting and the
per-level configs; the fake backend set neither. Both are set to the
unshifted default, so the download/step failure assertions run again.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- test_channel_root: owner is uint64; int() before -1 so the probe slot
stays an integer under NumPy 1 value-based promotion.
- test_shifted_storage: build FP32 fixtures with FP32 NaN; np.where with a
Python NaN promoted to FP64 under NumPy 1, so the shifted FP32 contract
rejected the fixture before the intended checks.
- test_block_stepper: fake backend sets _ddf_shifting (unshifted).
- test_fine_surface_gpu: set _boundary_hosts/_level_jets; fine_boundary
is now a read-only view over the level lists.
- test_refinement_followup: set _layouts (fine_layout is a read-only
view); a pair tau that disagrees with its level config is now rejected
by hierarchy._check_chain before the per-level omega/tau check.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- GPU test: after hop 2 some INNER_GHOST populations are NaN (pulled from
OUTER poisoned on hop 1; 236 slots in pinned CPUREF); assert ACTIVE
finite and OUTER NaN, keep the full dense-vs-blocked raw value/NaN-mask
comparison.
- A 1x1 non-periodic fine layout has zero halo pairs: skip the halo table
uploads (CUDA rejects mem_alloc(0)); _fine_halo already skips launch.
CPU guard test with driver doubles.
- Drop the class-level fine_layout default; the followup fake backend now
sets fine_layout = None explicitly.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>