diff --git a/bob/io/base/test_hdf5.py b/bob/io/base/test_hdf5.py index 376e2659f2f2a0b5120a320b340f73cee1677b74..67515049b27ac965d3b56d84d7f81050e0022fae 100644 --- a/bob/io/base/test_hdf5.py +++ b/bob/io/base/test_hdf5.py @@ -60,6 +60,18 @@ def read_write_array_check(outfile, dtype): arrays.append(nparray) read_write_check(outfile, dtype.__name__ + '_array', arrays) +def read_write_subarray_check(outfile, dtype): + N = 10 + SHAPE = (2, 3, 4, 2) #48 elements in arrays + arrays = [] + for k in range(N): + data = [random.uniform(0,N) for z in range(numpy.product(SHAPE))] + nparray = numpy.array(data, dtype=dtype).reshape(SHAPE) + usearray = nparray[:,1,1:2,:] + assert not usearray.flags.contiguous + arrays.append(usearray) + read_write_check(outfile, dtype.__name__ + '_subarray', arrays) + def test_can_create(): # This test demonstrates how to create HDF5 files from scratch, @@ -190,6 +202,21 @@ def test_type_support(): read_write_array_check(outfile, numpy.complex128) #read_write_array_check(outfile, numpy.complex256) #no numpy conversion + read_write_subarray_check(outfile, numpy.int8) + read_write_subarray_check(outfile, numpy.int16) + read_write_subarray_check(outfile, numpy.int32) + read_write_subarray_check(outfile, numpy.int64) + read_write_subarray_check(outfile, numpy.uint8) + read_write_subarray_check(outfile, numpy.uint16) + read_write_subarray_check(outfile, numpy.uint32) + read_write_subarray_check(outfile, numpy.uint64) + read_write_subarray_check(outfile, numpy.float32) + read_write_subarray_check(outfile, numpy.float64) + #read_write_subarray_check(outfile, numpy.float128) #no numpy conversion + read_write_subarray_check(outfile, numpy.complex64) + read_write_subarray_check(outfile, numpy.complex128) + #read_write_subarray_check(outfile, numpy.complex256) #no numpy conversion + finally: os.unlink(tmpname)