feat: extend same-file VDS assembly to N dimensions
Generalize Selection iteration from 1-D to arbitrary rank: iter_linear(dims) enumerates a selection's row-major linear indices over a dataspace of the given shape (ALL, NONE, regular hyperslabs, points), which is the order HDF5 uses to pair virtual and source selections. read_virtual_data now passes the full virtual/source dimensions instead of a single extent, so multi-dimensional block mappings scatter to the correct non-contiguous linear positions. read_named_dataset_raw returns the source dataset's dimensions. The rank-1 restriction is removed; only external-file sources remain unsupported. Tests: 2-D integration fixture (vds_2d_same_file.h5: two 2x2 sources placed as non-contiguous blocks in a 4x4 virtual) plus N-D iter_linear unit tests (block, strided, ALL, rank-mismatch). The 1-D path is unchanged. Co-Authored-By: Claude Opus 4.8 <[email protected]>
This commit is contained in:
Binary file not shown.
Reference in New Issue
Block a user