diff --git a/jhdf/src/main/java/io/jhdf/dataset/chunked/indexing/ImplicitChunkIndex.java b/jhdf/src/main/java/io/jhdf/dataset/chunked/indexing/ImplicitChunkIndex.java index 3ee47884..ad945d66 100644 --- a/jhdf/src/main/java/io/jhdf/dataset/chunked/indexing/ImplicitChunkIndex.java +++ b/jhdf/src/main/java/io/jhdf/dataset/chunked/indexing/ImplicitChunkIndex.java @@ -26,7 +26,6 @@ public class ImplicitChunkIndex implements ChunkIndex { private final long baseAddress; public ImplicitChunkIndex(long baseAddress, DatasetInfo datasetInfo) { - this.baseAddress = baseAddress; this.chunkSize = datasetInfo.getChunkSizeInBytes(); this.datasetDimensions = datasetInfo.getDatasetDimensions(); diff --git a/jhdf/src/test/resources/hdf5/implicit_index_datasets.hdf5 b/jhdf/src/test/resources/hdf5/implicit_index_datasets.hdf5 new file mode 100644 index 00000000..627eda66 Binary files /dev/null and b/jhdf/src/test/resources/hdf5/implicit_index_datasets.hdf5 differ diff --git a/jhdf/src/test/resources/scripts/implicit_index_datasets.py b/jhdf/src/test/resources/scripts/implicit_index_datasets.py new file mode 100644 index 00000000..79eeddf5 --- /dev/null +++ b/jhdf/src/test/resources/scripts/implicit_index_datasets.py @@ -0,0 +1,48 @@ +import h5py +import numpy + + +f = h5py.File("implicit_index_datasets.hdf5", "w", libver='latest') + +data = numpy.arange(20) + +dataspace = h5py.h5s.create_simple(data.shape) # Create simple dataspace +datatype = h5py.h5t.NATIVE_INT32 + +# Dataset creation property list +dcpl = h5py.h5p.create(h5py.h5p.DATASET_CREATE) +dcpl.set_alloc_time(h5py.h5d.ALLOC_TIME_EARLY) +# Set chunk dimensions (e.g., chunks of size 5) +chunk_dims = (5,) # Ensure chunks are compatible with dataspace shape +dcpl.set_chunk(chunk_dims) + +# Create the dataset +dataset_name = "implicit_index_exact".encode('utf-8') # Dataset name must be bytes +dataset = h5py.h5d.create(f.id, dataset_name, datatype, dataspace, dcpl) + +# Write data to the dataset +dataset.write(h5py.h5s.ALL, h5py.h5s.ALL, data) +dataset.close() + +# Second dataset with chunk size mismatch +data = numpy.arange(50).reshape(10,5) + +dataspace = h5py.h5s.create_simple(data.shape) # Create simple dataspace +datatype = h5py.h5t.NATIVE_INT32 + +# Dataset creation property list +dcpl = h5py.h5p.create(h5py.h5p.DATASET_CREATE) +dcpl.set_alloc_time(h5py.h5d.ALLOC_TIME_EARLY) +# Set chunk dimensions +chunk_dims = (3,2) # mismatched to data shape +dcpl.set_chunk(chunk_dims) + +# Create the dataset +dataset_name = "implicit_index_mismatch".encode('utf-8') # Dataset name must be bytes +dataset = h5py.h5d.create(f.id, dataset_name, datatype, dataspace, dcpl) + +# Write data to the dataset +dataset.write(h5py.h5s.ALL, h5py.h5s.ALL, data) +dataset.close() + +f.close()