* Enhancements for XFEL
* Enhancements for EIGER * Writer is more flexible and capable of handling DECTRIS data
This commit is contained in:
@@ -91,6 +91,30 @@ TEST_CASE("HDF5DataSet_vector", "[HDF5][Unit]") {
|
||||
REQUIRE (H5Fget_obj_count(H5F_OBJ_ALL, H5F_OBJ_ALL) == 0);
|
||||
}
|
||||
|
||||
TEST_CASE("HDF5DataSet_vector_string", "[HDF5][Unit]") {
|
||||
std::string long_string = "ccdcsdcdscsdcsdcs";
|
||||
std::vector<std::string> tmp_vector = {"aaaaaaaaa", "b", long_string};
|
||||
|
||||
{
|
||||
RegisterHDF5Filter();
|
||||
HDF5File file("scratch4.h5", true, false);
|
||||
REQUIRE_NOTHROW(file.SaveVector("vec", tmp_vector));
|
||||
}
|
||||
|
||||
{
|
||||
HDF5ReadOnlyFile file("scratch4.h5");
|
||||
HDF5DataSet vector_dataset(file, "vec");
|
||||
HDF5DataType data_type_vec(vector_dataset);
|
||||
HDF5DataSpace data_space_vec(vector_dataset);
|
||||
CHECK(data_type_vec.GetElemSize() == long_string.size() + 1);
|
||||
CHECK(data_space_vec.GetNumOfDimensions() == 1);
|
||||
CHECK(data_space_vec.GetDimensions()[0] == tmp_vector.size());
|
||||
}
|
||||
|
||||
remove("scratch4.h5");
|
||||
REQUIRE (H5Fget_obj_count(H5F_OBJ_ALL, H5F_OBJ_ALL) == 0);
|
||||
}
|
||||
|
||||
TEST_CASE("HDF5File_Delete", "[HDF5][Unit]") {
|
||||
uint16_t tmp_scalar = 16788;
|
||||
{
|
||||
@@ -179,6 +203,11 @@ TEST_CASE("HDF5Writer", "[HDF5][Full]") {
|
||||
|
||||
for (int i = 0; i < x.GetImageNum(); i++) {
|
||||
DataMessage message{};
|
||||
message.image.pixel_depth_bytes = 2;
|
||||
message.image.pixel_is_signed = false;
|
||||
message.image.algorithm = CompressionAlgorithm::NO_COMPRESSION;
|
||||
message.image.xpixel = x.GetXPixelsNum();
|
||||
message.image.ypixel = x.GetYPixelsNum();
|
||||
message.image.data = (uint8_t *) image.data();
|
||||
message.image.size = x.GetPixelsNum() * x.GetPixelDepth();
|
||||
message.spots = spots;
|
||||
@@ -210,6 +239,12 @@ TEST_CASE("HDF5Writer_Spots", "[HDF5][Full]") {
|
||||
|
||||
for (int i = 0; i < x.GetImageNum(); 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.GetPixelDepth();
|
||||
message.spots = spots;
|
||||
@@ -244,6 +279,11 @@ TEST_CASE("HDF5Writer_Rad_Int_Profile", "[HDF5][Full]") {
|
||||
|
||||
for (int i = 0; i < x.GetImageNum(); 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.GetPixelDepth();
|
||||
message.az_int_profile = std::vector<float>(mapping.GetBinNumber(), i);
|
||||
@@ -277,6 +317,11 @@ TEST_CASE("HDF5Writer_VDS", "[HDF5][Full]") {
|
||||
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.GetPixelDepth();
|
||||
message.spots = spots;
|
||||
@@ -333,6 +378,11 @@ TEST_CASE("HDF5Writer_VDS_missing", "[HDF5][Full]") {
|
||||
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.GetPixelDepth();
|
||||
message.spots = spots;
|
||||
@@ -393,9 +443,9 @@ TEST_CASE("HDF5Writer_VDS_zero_images", "[HDF5][Full]") {
|
||||
}
|
||||
|
||||
TEST_CASE("HDF5NXmx_DataFileName", "[HDF5]") {
|
||||
REQUIRE(HDF5Metadata::DataFileName("z/x", 34) == "z/x_data_034.h5");
|
||||
REQUIRE(HDF5Metadata::DataFileName("z/x", 0) == "z/x_data_000.h5");
|
||||
REQUIRE_THROWS(HDF5Metadata::DataFileName("z/x", 1000));
|
||||
REQUIRE(HDF5Metadata::DataFileName("z/x", 34) == "z/x_data_000034.h5");
|
||||
REQUIRE(HDF5Metadata::DataFileName("z/x", 0) == "z/x_data_000000.h5");
|
||||
REQUIRE_THROWS(HDF5Metadata::DataFileName("z/x", 1000000));
|
||||
REQUIRE_THROWS(HDF5Metadata::DataFileName("z/x", -1));
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user