def test_save_hdf5(self): # HDF5 support is optional if not ht.io.supports_hdf5(): return # local unsplit data local_data = ht.arange(100) ht.save_hdf5(local_data, self.HDF5_OUT_PATH, self.HDF5_DATASET, dtype=local_data.dtype.char()) if local_data.comm.rank == 0: with ht.io.h5py.File(self.HDF5_OUT_PATH, "r") as handle: comparison = torch.tensor(handle[self.HDF5_DATASET], dtype=torch.int32, device=self.device.torch_device) self.assertTrue((local_data.larray == comparison).all()) # distributed data range split_data = ht.arange(100, split=0) ht.save_hdf5(split_data, self.HDF5_OUT_PATH, self.HDF5_DATASET, dtype=split_data.dtype.char()) if split_data.comm.rank == 0: with ht.io.h5py.File(self.HDF5_OUT_PATH, "r") as handle: comparison = torch.tensor(handle[self.HDF5_DATASET], dtype=torch.int32, device=self.device.torch_device) self.assertTrue((local_data.larray == comparison).all())
def test_save_hdf5_exception(self): # HDF5 support is optional if not ht.io.supports_hdf5(): return # dummy data data = ht.arange(1) with self.assertRaises(TypeError): ht.save_hdf5(1, self.HDF5_OUT_PATH, self.HDF5_DATASET) with self.assertRaises(TypeError): ht.save_hdf5(data, 1, self.HDF5_DATASET) with self.assertRaises(TypeError): ht.save_hdf5(data, self.HDF5_OUT_PATH, 1)