HDF5: Use explicit mapping for VDS
Build Packages / build:rpm (rocky8_nocuda) (push) Successful in 10m30s
Build Packages / build:rpm (ubuntu2404_nocuda) (push) Successful in 14m25s
Build Packages / build:rpm (ubuntu2204_nocuda) (push) Successful in 16m8s
Build Packages / build:rpm (rocky9_nocuda) (push) Successful in 16m21s
Build Packages / build:rpm (rocky8) (push) Successful in 18m13s
Build Packages / build:rpm (rocky8_sls9) (push) Successful in 18m25s
Build Packages / build:rpm (rocky9) (push) Successful in 19m12s
Build Packages / build:rpm (rocky9_sls9) (push) Successful in 19m21s
Build Packages / Generate python client (push) Successful in 51s
Build Packages / Build documentation (push) Successful in 1m10s
Build Packages / Create release (push) Has been skipped
Build Packages / build:rpm (ubuntu2204) (push) Successful in 10m38s
Build Packages / build:rpm (ubuntu2404) (push) Successful in 8m29s
Build Packages / XDS test (neggia plugin) (push) Successful in 9m50s
Build Packages / XDS test (durin plugin) (push) Successful in 13m7s
Build Packages / XDS test (JFJoch plugin) (push) Successful in 11m16s
Build Packages / DIALS test (push) Successful in 15m26s
Build Packages / Unit tests (push) Successful in 49m40s
Build Packages / build:rpm (rocky8_nocuda) (push) Successful in 10m30s
Build Packages / build:rpm (ubuntu2404_nocuda) (push) Successful in 14m25s
Build Packages / build:rpm (ubuntu2204_nocuda) (push) Successful in 16m8s
Build Packages / build:rpm (rocky9_nocuda) (push) Successful in 16m21s
Build Packages / build:rpm (rocky8) (push) Successful in 18m13s
Build Packages / build:rpm (rocky8_sls9) (push) Successful in 18m25s
Build Packages / build:rpm (rocky9) (push) Successful in 19m12s
Build Packages / build:rpm (rocky9_sls9) (push) Successful in 19m21s
Build Packages / Generate python client (push) Successful in 51s
Build Packages / Build documentation (push) Successful in 1m10s
Build Packages / Create release (push) Has been skipped
Build Packages / build:rpm (ubuntu2204) (push) Successful in 10m38s
Build Packages / build:rpm (ubuntu2404) (push) Successful in 8m29s
Build Packages / XDS test (neggia plugin) (push) Successful in 9m50s
Build Packages / XDS test (durin plugin) (push) Successful in 13m7s
Build Packages / XDS test (JFJoch plugin) (push) Successful in 11m16s
Build Packages / DIALS test (push) Successful in 15m26s
Build Packages / Unit tests (push) Successful in 49m40s
This commit is contained in:
@@ -1344,3 +1344,100 @@ TEST_CASE("FileWriter_TIFF", "[HDF5][Full]") {
|
||||
REQUIRE(!file_set.GetZMQAddr());
|
||||
}
|
||||
}
|
||||
|
||||
TEST_CASE("HDF5Objects_VDS_reverse_contiguous", "[HDF5][Unit]") {
|
||||
{
|
||||
RegisterHDF5Filter();
|
||||
|
||||
HDF5File file("scratch_vds_reverse_contiguous.h5", true);
|
||||
HDF5Dcpl dcpl;
|
||||
HDF5DataType data_type((int16_t) 0);
|
||||
HDF5DataSpace full_space({5, 4, 3});
|
||||
|
||||
{
|
||||
HDF5DataSpace source_space({2, 4, 3});
|
||||
HDF5DataSpace virtual_space({5, 4, 3});
|
||||
virtual_space.SelectHyperslab({0, 0, 0}, {2, 4, 3});
|
||||
dcpl.SetVirtual("file_000001.h5", "/entry/data/data", source_space, virtual_space);
|
||||
}
|
||||
|
||||
{
|
||||
HDF5DataSpace source_space({3, 4, 3});
|
||||
HDF5DataSpace virtual_space({5, 4, 3});
|
||||
virtual_space.SelectHyperslab({2, 0, 0}, {3, 4, 3});
|
||||
dcpl.SetVirtual("file_000002.h5", "/entry/data/data", source_space, virtual_space);
|
||||
}
|
||||
|
||||
HDF5DataSet dataset(file, "/data", data_type, full_space, dcpl);
|
||||
|
||||
HDF5Dcpl read_dcpl(dataset);
|
||||
auto mappings = read_dcpl.GetVirtualMappings();
|
||||
|
||||
REQUIRE(mappings.size() == 2);
|
||||
REQUIRE(mappings[0].ContainsVirtualImage(0));
|
||||
REQUIRE(mappings[0].ContainsVirtualImage(1));
|
||||
REQUIRE(!mappings[0].ContainsVirtualImage(2));
|
||||
CHECK(mappings[0].SourceImage(0) == 0);
|
||||
CHECK(mappings[0].SourceImage(1) == 1);
|
||||
|
||||
REQUIRE(mappings[1].ContainsVirtualImage(2));
|
||||
REQUIRE(mappings[1].ContainsVirtualImage(4));
|
||||
CHECK(mappings[1].SourceImage(2) == 0);
|
||||
CHECK(mappings[1].SourceImage(3) == 1);
|
||||
CHECK(mappings[1].SourceImage(4) == 2);
|
||||
}
|
||||
|
||||
remove("scratch_vds_reverse_contiguous.h5");
|
||||
REQUIRE(H5Fget_obj_count(H5F_OBJ_ALL, H5F_OBJ_ALL) == 0);
|
||||
}
|
||||
|
||||
TEST_CASE("HDF5Objects_VDS_reverse_strided", "[HDF5][Unit]") {
|
||||
{
|
||||
RegisterHDF5Filter();
|
||||
|
||||
HDF5File file("scratch_vds_reverse_strided.h5", true);
|
||||
HDF5Dcpl dcpl;
|
||||
HDF5DataType data_type((int16_t) 0);
|
||||
HDF5DataSpace full_space({6, 4, 3});
|
||||
|
||||
{
|
||||
HDF5DataSpace source_space({3, 4, 3});
|
||||
HDF5DataSpace virtual_space({6, 4, 3});
|
||||
virtual_space.SelectHyperslabWithStride({0, 0, 0}, {3, 4, 3}, {2, 1, 1});
|
||||
dcpl.SetVirtual("file_even.h5", "/entry/data/data", source_space, virtual_space);
|
||||
}
|
||||
|
||||
{
|
||||
HDF5DataSpace source_space({3, 4, 3});
|
||||
HDF5DataSpace virtual_space({6, 4, 3});
|
||||
virtual_space.SelectHyperslabWithStride({1, 0, 0}, {3, 4, 3}, {2, 1, 1});
|
||||
dcpl.SetVirtual("file_odd.h5", "/entry/data/data", source_space, virtual_space);
|
||||
}
|
||||
|
||||
HDF5DataSet dataset(file, "/data", data_type, full_space, dcpl);
|
||||
|
||||
HDF5Dcpl read_dcpl(dataset);
|
||||
auto mappings = read_dcpl.GetVirtualMappings();
|
||||
|
||||
REQUIRE(mappings.size() == 2);
|
||||
|
||||
REQUIRE(mappings[0].ContainsVirtualImage(0));
|
||||
REQUIRE(mappings[0].ContainsVirtualImage(2));
|
||||
REQUIRE(mappings[0].ContainsVirtualImage(4));
|
||||
REQUIRE(!mappings[0].ContainsVirtualImage(1));
|
||||
CHECK(mappings[0].SourceImage(0) == 0);
|
||||
CHECK(mappings[0].SourceImage(2) == 1);
|
||||
CHECK(mappings[0].SourceImage(4) == 2);
|
||||
|
||||
REQUIRE(mappings[1].ContainsVirtualImage(1));
|
||||
REQUIRE(mappings[1].ContainsVirtualImage(3));
|
||||
REQUIRE(mappings[1].ContainsVirtualImage(5));
|
||||
REQUIRE(!mappings[1].ContainsVirtualImage(0));
|
||||
CHECK(mappings[1].SourceImage(1) == 0);
|
||||
CHECK(mappings[1].SourceImage(3) == 1);
|
||||
CHECK(mappings[1].SourceImage(5) == 2);
|
||||
}
|
||||
|
||||
remove("scratch_vds_reverse_strided.h5");
|
||||
REQUIRE(H5Fget_obj_count(H5F_OBJ_ALL, H5F_OBJ_ALL) == 0);
|
||||
}
|
||||
Reference in New Issue
Block a user