Skip to content

Commit

Permalink
Add test file for implicit index
Browse files Browse the repository at this point in the history
  • Loading branch information
jamesmudd committed Jan 11, 2025
1 parent 37f4c19 commit 3b0d74d
Show file tree
Hide file tree
Showing 3 changed files with 48 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -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();
Expand Down
Binary file not shown.
48 changes: 48 additions & 0 deletions jhdf/src/test/resources/scripts/implicit_index_datasets.py
Original file line number Diff line number Diff line change
@@ -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()

0 comments on commit 3b0d74d

Please sign in to comment.