| |
| |
| |
| |
| |
| |
| |
| |
|
|
| import unittest as ut |
|
|
| from h5py import h5p, h5f, version |
|
|
| from .common import TestCase |
|
|
|
|
| class TestLibver(TestCase): |
|
|
| """ |
| Feature: Setting/getting lib ver bounds |
| """ |
|
|
| def test_libver(self): |
| """ Test libver bounds set/get """ |
| plist = h5p.create(h5p.FILE_ACCESS) |
| plist.set_libver_bounds(h5f.LIBVER_EARLIEST, h5f.LIBVER_LATEST) |
| self.assertEqual((h5f.LIBVER_EARLIEST, h5f.LIBVER_LATEST), |
| plist.get_libver_bounds()) |
|
|
| @ut.skipIf(version.hdf5_version_tuple < (1, 10, 2), |
| 'Requires HDF5 1.10.2 or later') |
| def test_libver_v18(self): |
| """ Test libver bounds set/get for H5F_LIBVER_V18""" |
| plist = h5p.create(h5p.FILE_ACCESS) |
| plist.set_libver_bounds(h5f.LIBVER_EARLIEST, h5f.LIBVER_V18) |
| self.assertEqual((h5f.LIBVER_EARLIEST, h5f.LIBVER_V18), |
| plist.get_libver_bounds()) |
|
|
| @ut.skipIf(version.hdf5_version_tuple < (1, 10, 2), |
| 'Requires HDF5 1.10.2 or later') |
| def test_libver_v110(self): |
| """ Test libver bounds set/get for H5F_LIBVER_V110""" |
| plist = h5p.create(h5p.FILE_ACCESS) |
| plist.set_libver_bounds(h5f.LIBVER_V18, h5f.LIBVER_V110) |
| self.assertEqual((h5f.LIBVER_V18, h5f.LIBVER_V110), |
| plist.get_libver_bounds()) |
|
|
| @ut.skipIf(version.hdf5_version_tuple < (1, 11, 4), |
| 'Requires HDF5 1.11.4 or later') |
| def test_libver_v112(self): |
| """ Test libver bounds set/get for H5F_LIBVER_V112""" |
| plist = h5p.create(h5p.FILE_ACCESS) |
| plist.set_libver_bounds(h5f.LIBVER_V18, h5f.LIBVER_V112) |
| self.assertEqual((h5f.LIBVER_V18, h5f.LIBVER_V112), |
| plist.get_libver_bounds()) |
|
|
| class TestDA(TestCase): |
| ''' |
| Feature: setting/getting chunk cache size on a dataset access property list |
| ''' |
| def test_chunk_cache(self): |
| '''test get/set chunk cache ''' |
| dalist = h5p.create(h5p.DATASET_ACCESS) |
| nslots = 10000 |
| nbytes = 1000000 |
| w0 = .5 |
|
|
| dalist.set_chunk_cache(nslots, nbytes, w0) |
| self.assertEqual((nslots, nbytes, w0), |
| dalist.get_chunk_cache()) |
|
|
| @ut.skipIf(version.hdf5_version_tuple < (1, 8, 17), |
| 'Requires HDF5 1.8.17 or later') |
| def test_efile_prefix(self): |
| '''test get/set efile prefix ''' |
| dalist = h5p.create(h5p.DATASET_ACCESS) |
| self.assertEqual(dalist.get_efile_prefix().decode(), '') |
|
|
| efile_prefix = "path/to/external/dataset" |
| dalist.set_efile_prefix(efile_prefix.encode('utf-8')) |
| self.assertEqual(dalist.get_efile_prefix().decode(), |
| efile_prefix) |
|
|
| efile_prefix = "${ORIGIN}" |
| dalist.set_efile_prefix(efile_prefix.encode('utf-8')) |
| self.assertEqual(dalist.get_efile_prefix().decode(), |
| efile_prefix) |
|
|
| @ut.skipIf(version.hdf5_version_tuple < (1, 10, 2), |
| 'Requires HDF5 1.10.2 or later') |
| def test_virtual_prefix(self): |
| '''test get/set virtual prefix ''' |
| dalist = h5p.create(h5p.DATASET_ACCESS) |
| self.assertEqual(dalist.get_virtual_prefix().decode(), '') |
|
|
| virtual_prefix = "path/to/virtual/dataset" |
| dalist.set_virtual_prefix(virtual_prefix.encode('utf-8')) |
| self.assertEqual(dalist.get_virtual_prefix().decode(), |
| virtual_prefix) |
|
|
|
|
| class TestFA(TestCase): |
| ''' |
| Feature: setting/getting mdc config on a file access property list |
| ''' |
| def test_mdc_config(self): |
| '''test get/set mdc config ''' |
| falist = h5p.create(h5p.FILE_ACCESS) |
|
|
| config = falist.get_mdc_config() |
| falist.set_mdc_config(config) |
|
|
| def test_set_alignment(self): |
| '''test get/set chunk cache ''' |
| falist = h5p.create(h5p.FILE_ACCESS) |
| threshold = 10 * 1024 |
| alignment = 1024 * 1024 |
|
|
| falist.set_alignment(threshold, alignment) |
| self.assertEqual((threshold, alignment), |
| falist.get_alignment()) |
|
|
| @ut.skipUnless( |
| version.hdf5_version_tuple >= (1, 12, 1) or |
| (version.hdf5_version_tuple[:2] == (1, 10) and version.hdf5_version_tuple[2] >= 7), |
| 'Requires HDF5 1.12.1 or later or 1.10.x >= 1.10.7') |
| def test_set_file_locking(self): |
| '''test get/set file locking''' |
| falist = h5p.create(h5p.FILE_ACCESS) |
| use_file_locking = False |
| ignore_when_disabled = False |
|
|
| falist.set_file_locking(use_file_locking, ignore_when_disabled) |
| self.assertEqual((use_file_locking, ignore_when_disabled), |
| falist.get_file_locking()) |
|
|
|
|
| class TestPL(TestCase): |
| def test_obj_track_times(self): |
| """ |
| tests if the object track times set/get |
| """ |
| |
| gcid = h5p.create(h5p.GROUP_CREATE) |
| gcid.set_obj_track_times(False) |
| self.assertEqual(False, gcid.get_obj_track_times()) |
|
|
| gcid.set_obj_track_times(True) |
| self.assertEqual(True, gcid.get_obj_track_times()) |
| |
| dcid = h5p.create(h5p.DATASET_CREATE) |
| dcid.set_obj_track_times(False) |
| self.assertEqual(False, dcid.get_obj_track_times()) |
|
|
| dcid.set_obj_track_times(True) |
| self.assertEqual(True, dcid.get_obj_track_times()) |
|
|
| |
| ocid = h5p.create(h5p.OBJECT_CREATE) |
| ocid.set_obj_track_times(False) |
| self.assertEqual(False, ocid.get_obj_track_times()) |
|
|
| ocid.set_obj_track_times(True) |
| self.assertEqual(True, ocid.get_obj_track_times()) |
|
|
| def test_link_creation_tracking(self): |
| """ |
| tests the link creation order set/get |
| """ |
|
|
| gcid = h5p.create(h5p.GROUP_CREATE) |
| gcid.set_link_creation_order(0) |
| self.assertEqual(0, gcid.get_link_creation_order()) |
|
|
| flags = h5p.CRT_ORDER_TRACKED | h5p.CRT_ORDER_INDEXED |
| gcid.set_link_creation_order(flags) |
| self.assertEqual(flags, gcid.get_link_creation_order()) |
|
|
| |
| fcpl = h5p.create(h5p.FILE_CREATE) |
| fcpl.set_link_creation_order(flags) |
| self.assertEqual(flags, fcpl.get_link_creation_order()) |
|
|
| def test_attr_phase_change(self): |
| """ |
| test the attribute phase change |
| """ |
|
|
| cid = h5p.create(h5p.OBJECT_CREATE) |
| |
| ret = cid.get_attr_phase_change() |
| self.assertEqual((8,6), ret) |
|
|
| |
| with self.assertRaises(ValueError): |
| cid.set_attr_phase_change(65536, 6) |
|
|
| |
| |
| cid.set_attr_phase_change(0, 0) |
| self.assertEqual((0,0), cid.get_attr_phase_change()) |
|
|