v1.0.0-rc.34
This commit is contained in:
@@ -30,7 +30,9 @@ TEST_CASE("HDF5DataSet_scalar", "[HDF5][Unit]") {
|
||||
REQUIRE(scalar_dataset.ReadScalar<uint16_t>() == tmp_scalar);
|
||||
REQUIRE(scalar_dataset.ReadScalar<int64_t>() == tmp_scalar);
|
||||
std::vector<uint16_t> v;
|
||||
REQUIRE_THROWS(scalar_dataset.ReadVector(v));
|
||||
REQUIRE_NOTHROW(scalar_dataset.ReadVector(v));
|
||||
REQUIRE(v.size() == 1);
|
||||
REQUIRE(v[0] == tmp_scalar);
|
||||
}
|
||||
remove("scratch1.h5");
|
||||
REQUIRE (H5Fget_obj_count(H5F_OBJ_ALL, H5F_OBJ_ALL) == 0);
|
||||
@@ -145,6 +147,20 @@ TEST_CASE("HDF5LeafDetection", "[HDF5]") {
|
||||
REQUIRE (H5Fget_obj_count(H5F_OBJ_ALL, H5F_OBJ_ALL) == 0);
|
||||
}
|
||||
|
||||
TEST_CASE("HDF5ExternalLink", "[HDF5][Unit]") {
|
||||
uint16_t tmp_scalar = 16788;
|
||||
{
|
||||
HDF5File file("scratch123.h5");
|
||||
file.ExternalLink("../abc.h5", "/zzz/fgh6", "fgh6");
|
||||
}
|
||||
{
|
||||
HDF5ReadOnlyFile file("scratch123.h5");
|
||||
REQUIRE(file.GetLinkedFileName("/fgh6") == "abc.h5");
|
||||
}
|
||||
remove("scratch123.h5");
|
||||
REQUIRE (H5Fget_obj_count(H5F_OBJ_ALL, H5F_OBJ_ALL) == 0);
|
||||
}
|
||||
|
||||
TEST_CASE("HDF5MasterFile", "[HDF5][Full]") {
|
||||
{
|
||||
RegisterHDF5Filter();
|
||||
@@ -571,14 +587,14 @@ TEST_CASE("HDF5Writer_Link_VDS", "[HDF5][Full]") {
|
||||
DiffractionExperiment x(DetectorGeometry(1));
|
||||
|
||||
x.ImagesPerTrigger(7).ImagesPerFile(2).Compression(CompressionAlgorithm::NO_COMPRESSION).FilePrefix("link_vds");
|
||||
x.HDF5MasterFormatVersion(2).OverwriteExistingFiles(true);
|
||||
x.HDF5MasterFormatVersion(FileWriterFileFormat::NXmxVDS).OverwriteExistingFiles(true);
|
||||
{
|
||||
RegisterHDF5Filter();
|
||||
|
||||
StartMessage start_message;
|
||||
x.FillMessage(start_message);
|
||||
|
||||
REQUIRE(start_message.hdf5_format_version == 2);
|
||||
REQUIRE(start_message.hdf5_format_version == FileWriterFileFormat::NXmxVDS);
|
||||
EndMessage end_message;
|
||||
end_message.max_image_number = x.GetImageNum() - 2;
|
||||
|
||||
@@ -626,6 +642,52 @@ TEST_CASE("HDF5Writer_Link_VDS", "[HDF5][Full]") {
|
||||
}
|
||||
|
||||
|
||||
TEST_CASE("HDF5Writer_NoMasterFile", "[HDF5][Full]") {
|
||||
DiffractionExperiment x(DetectorGeometry(1));
|
||||
|
||||
x.ImagesPerTrigger(7).ImagesPerFile(2).Compression(CompressionAlgorithm::NO_COMPRESSION).FilePrefix("data_only");
|
||||
x.HDF5MasterFormatVersion(FileWriterFileFormat::DataOnly).OverwriteExistingFiles(true);
|
||||
{
|
||||
RegisterHDF5Filter();
|
||||
|
||||
StartMessage start_message;
|
||||
x.FillMessage(start_message);
|
||||
|
||||
REQUIRE(start_message.hdf5_format_version == FileWriterFileFormat::DataOnly);
|
||||
EndMessage end_message;
|
||||
end_message.max_image_number = x.GetImageNum() - 2;
|
||||
|
||||
HDF5Writer writer(start_message);
|
||||
std::vector<uint16_t> image(x.GetPixelsNum());
|
||||
std::vector<SpotToSave> spots;
|
||||
for (int i = 0; i < x.GetImageNum() - 2; i++) {
|
||||
for (auto &j: image)
|
||||
j = i;
|
||||
DataMessage message{};
|
||||
message.image.pixel_depth_bytes = 2;
|
||||
message.image.pixel_is_signed = false;
|
||||
message.image.xpixel = x.GetXPixelsNum();
|
||||
message.image.ypixel = x.GetYPixelsNum();
|
||||
message.image.algorithm = CompressionAlgorithm::NO_COMPRESSION;
|
||||
message.image.data = (uint8_t *) image.data();
|
||||
message.image.size = x.GetPixelsNum() * x.GetByteDepthImage();
|
||||
message.spots = spots;
|
||||
message.number = i;
|
||||
|
||||
REQUIRE_NOTHROW(writer.Write(message));
|
||||
}
|
||||
|
||||
writer.Write(end_message);
|
||||
writer.Finalize();
|
||||
}
|
||||
REQUIRE(!std::filesystem::exists("data_only_master.h5"));
|
||||
REQUIRE(std::filesystem::exists("data_only_data_000001.h5"));
|
||||
|
||||
// No leftover HDF5 objects
|
||||
REQUIRE (H5Fget_obj_count(H5F_OBJ_ALL, H5F_OBJ_ALL) == 0);
|
||||
}
|
||||
|
||||
|
||||
TEST_CASE("HDF5Writer_Link_zero_images", "[HDF5][Full]") {
|
||||
DiffractionExperiment x(DetectorGeometry(1));
|
||||
x.ImagesPerTrigger(5).ImagesPerFile(2).Compression(CompressionAlgorithm::NO_COMPRESSION).FilePrefix("link_zero");
|
||||
|
||||
Reference in New Issue
Block a user