v1.0.0-rc.36
This commit is contained in:
@@ -6,8 +6,7 @@
|
||||
|
||||
#include "../common/DiffractionExperiment.h"
|
||||
#include "../writer/HDF5Objects.h"
|
||||
#include "../writer/HDF5Writer.h"
|
||||
#include "../writer/HDF5NXmx.h"
|
||||
#include "../writer/FileWriter.h"
|
||||
#include "../compression/JFJochCompressor.h"
|
||||
#include "../common/AzimuthalIntegrationProfile.h"
|
||||
#include <nlohmann/json.hpp>
|
||||
@@ -164,7 +163,7 @@ TEST_CASE("HDF5ExternalLink", "[HDF5][Unit]") {
|
||||
TEST_CASE("HDF5MasterFile", "[HDF5][Full]") {
|
||||
{
|
||||
RegisterHDF5Filter();
|
||||
DiffractionExperiment x(DetectorGeometry(8, 2, 8, 36));
|
||||
DiffractionExperiment x(DetJF4M());
|
||||
|
||||
x.FilePrefix("test01").ImagesPerTrigger(950);
|
||||
|
||||
@@ -191,7 +190,7 @@ TEST_CASE("HDF5MasterFile", "[HDF5][Full]") {
|
||||
TEST_CASE("HDF5MasterFile_UserData", "[HDF5][Full]") {
|
||||
{
|
||||
RegisterHDF5Filter();
|
||||
DiffractionExperiment x(DetectorGeometry(8, 2, 8, 36));
|
||||
DiffractionExperiment x(DetJF4M());
|
||||
|
||||
x.FilePrefix("test07").ImagesPerTrigger(950);
|
||||
|
||||
@@ -223,14 +222,14 @@ TEST_CASE("HDF5MasterFile_UserData", "[HDF5][Full]") {
|
||||
TEST_CASE("HDF5MasterFile_RadInt", "[HDF5][Full]") {
|
||||
{
|
||||
RegisterHDF5Filter();
|
||||
DiffractionExperiment x(DetectorGeometry(8, 2, 8, 36));
|
||||
DiffractionExperiment x(DetJF4M());
|
||||
|
||||
x.DetectorDistance_mm(50).BeamX_pxl(1000).BeamY_pxl(1000);
|
||||
x.QSpacingForAzimInt_recipA(0.1).QRangeForAzimInt_recipA(0.1, 4.0);
|
||||
|
||||
x.FilePrefix("test01_rad_int").ImagesPerTrigger(950);
|
||||
|
||||
std::vector<uint32_t> pixel_mask(x.GetPixelsNum(), 0);
|
||||
PixelMask pixel_mask(x);
|
||||
AzimuthalIntegration mapping(x, pixel_mask);
|
||||
AzimuthalIntegrationProfile profile(mapping);
|
||||
|
||||
@@ -254,14 +253,14 @@ TEST_CASE("HDF5MasterFile_RadInt", "[HDF5][Full]") {
|
||||
TEST_CASE("HDF5Writer", "[HDF5][Full]") {
|
||||
{
|
||||
RegisterHDF5Filter();
|
||||
DiffractionExperiment x(DetectorGeometry(8, 2, 8, 36));
|
||||
DiffractionExperiment x(DetJF4M());
|
||||
std::vector<SpotToSave> spots;
|
||||
|
||||
x.FilePrefix("test02_1p10").ImagesPerTrigger(5).ImagesPerFile(2).Compression(CompressionAlgorithm::NO_COMPRESSION);
|
||||
StartMessage start_message;
|
||||
x.FillMessage(start_message);
|
||||
|
||||
HDF5Writer file_set(start_message);
|
||||
FileWriter file_set(start_message);
|
||||
std::vector<uint16_t> image(x.GetPixelsNum());
|
||||
|
||||
for (int i = 0; i < x.GetImageNum(); i++) {
|
||||
@@ -300,7 +299,7 @@ TEST_CASE("HDF5Writer", "[HDF5][Full]") {
|
||||
TEST_CASE("HDF5Writer_Socket", "[HDF5][Full]") {
|
||||
{
|
||||
RegisterHDF5Filter();
|
||||
DiffractionExperiment x(DetectorGeometry(8, 2, 8, 36));
|
||||
DiffractionExperiment x(DetJF4M());
|
||||
x.FrameTime(std::chrono::microseconds(1000), std::chrono::microseconds(100));
|
||||
|
||||
DatasetSettings d;
|
||||
@@ -315,7 +314,7 @@ TEST_CASE("HDF5Writer_Socket", "[HDF5][Full]") {
|
||||
StartMessage start_message;
|
||||
x.FillMessage(start_message);
|
||||
|
||||
HDF5Writer file_set(start_message);
|
||||
FileWriter file_set(start_message);
|
||||
file_set.SetupFinalizedFileSocket("ipc://#1");
|
||||
std::vector<uint16_t> image(x.GetPixelsNum());
|
||||
|
||||
@@ -385,7 +384,7 @@ TEST_CASE("HDF5Writer_Socket", "[HDF5][Full]") {
|
||||
TEST_CASE("HDF5Writer_Spots", "[HDF5][Full]") {
|
||||
{
|
||||
RegisterHDF5Filter();
|
||||
DiffractionExperiment x(DetectorGeometry(8, 2, 8, 36));
|
||||
DiffractionExperiment x(DetJF4M());
|
||||
std::vector<SpotToSave> spots;
|
||||
|
||||
spots.push_back({10,10,7});
|
||||
@@ -396,7 +395,7 @@ TEST_CASE("HDF5Writer_Spots", "[HDF5][Full]") {
|
||||
StartMessage start_message;
|
||||
x.FillMessage(start_message);
|
||||
|
||||
HDF5Writer file_set(start_message);
|
||||
FileWriter file_set(start_message);
|
||||
std::vector<uint16_t> image(x.GetPixelsNum());
|
||||
|
||||
for (int i = 0; i < x.GetImageNum(); i++) {
|
||||
@@ -425,11 +424,11 @@ TEST_CASE("HDF5Writer_Spots", "[HDF5][Full]") {
|
||||
TEST_CASE("HDF5Writer_Rad_Int_Profile", "[HDF5][Full]") {
|
||||
{
|
||||
RegisterHDF5Filter();
|
||||
DiffractionExperiment x(DetectorGeometry(8, 2, 8, 36));
|
||||
DiffractionExperiment x(DetJF4M());
|
||||
x.DetectorDistance_mm(50).BeamX_pxl(1000).BeamY_pxl(1000);
|
||||
x.QSpacingForAzimInt_recipA(0.1).QRangeForAzimInt_recipA(0.1, 4.0);
|
||||
|
||||
std::vector<uint32_t> pixel_mask(x.GetPixelsNum(), 0);
|
||||
PixelMask pixel_mask(x);
|
||||
AzimuthalIntegration mapping(x, pixel_mask);
|
||||
|
||||
std::vector<float> rad_int_profile(mapping.GetBinNumber(), 4.0);
|
||||
@@ -440,7 +439,7 @@ TEST_CASE("HDF5Writer_Rad_Int_Profile", "[HDF5][Full]") {
|
||||
x.FillMessage(start_message);
|
||||
start_message.az_int_bin_to_q = mapping.GetBinToQ();
|
||||
|
||||
HDF5Writer file_set(start_message);
|
||||
FileWriter file_set(start_message);
|
||||
std::vector<uint16_t> image(x.GetPixelsNum());
|
||||
|
||||
for (int i = 0; i < x.GetImageNum(); i++) {
|
||||
@@ -508,7 +507,7 @@ TEST_CASE("HDF5DataType", "[HDF5]") {
|
||||
}
|
||||
|
||||
TEST_CASE("HDF5Writer_Link", "[HDF5][Full]") {
|
||||
DiffractionExperiment x(DetectorGeometry(1));
|
||||
DiffractionExperiment x(DetJF(1));
|
||||
|
||||
x.ImagesPerTrigger(7).ImagesPerFile(2).Compression(CompressionAlgorithm::NO_COMPRESSION).FilePrefix("link");
|
||||
x.OverwriteExistingFiles(true);
|
||||
@@ -521,7 +520,7 @@ TEST_CASE("HDF5Writer_Link", "[HDF5][Full]") {
|
||||
EndMessage end_message;
|
||||
end_message.max_image_number = x.GetImageNum() - 2;
|
||||
|
||||
HDF5Writer writer(start_message);
|
||||
FileWriter writer(start_message);
|
||||
std::vector<uint16_t> image(x.GetPixelsNum());
|
||||
std::vector<SpotToSave> spots;
|
||||
for (int i = 0; i < x.GetImageNum() - 2; i++) {
|
||||
@@ -540,7 +539,7 @@ TEST_CASE("HDF5Writer_Link", "[HDF5][Full]") {
|
||||
|
||||
REQUIRE_NOTHROW(writer.Write(message));
|
||||
}
|
||||
writer.Write(end_message);
|
||||
writer.WriteHDF5(end_message);
|
||||
writer.Finalize();
|
||||
}
|
||||
{
|
||||
@@ -584,21 +583,21 @@ TEST_CASE("HDF5Writer_Link", "[HDF5][Full]") {
|
||||
}
|
||||
|
||||
TEST_CASE("HDF5Writer_Link_VDS", "[HDF5][Full]") {
|
||||
DiffractionExperiment x(DetectorGeometry(1));
|
||||
DiffractionExperiment x(DetJF(1));
|
||||
|
||||
x.ImagesPerTrigger(7).ImagesPerFile(2).Compression(CompressionAlgorithm::NO_COMPRESSION).FilePrefix("link_vds");
|
||||
x.HDF5MasterFormatVersion(FileWriterFileFormat::NXmxVDS).OverwriteExistingFiles(true);
|
||||
x.SetFileWriterFormat(FileWriterFormat::NXmxVDS).OverwriteExistingFiles(true);
|
||||
{
|
||||
RegisterHDF5Filter();
|
||||
|
||||
StartMessage start_message;
|
||||
x.FillMessage(start_message);
|
||||
|
||||
REQUIRE(start_message.hdf5_format_version == FileWriterFileFormat::NXmxVDS);
|
||||
REQUIRE(start_message.file_format == FileWriterFormat::NXmxVDS);
|
||||
EndMessage end_message;
|
||||
end_message.max_image_number = x.GetImageNum() - 2;
|
||||
|
||||
HDF5Writer writer(start_message);
|
||||
FileWriter writer(start_message);
|
||||
std::vector<uint16_t> image(x.GetPixelsNum());
|
||||
std::vector<SpotToSave> spots;
|
||||
for (int i = 0; i < x.GetImageNum() - 2; i++) {
|
||||
@@ -618,7 +617,7 @@ TEST_CASE("HDF5Writer_Link_VDS", "[HDF5][Full]") {
|
||||
REQUIRE_NOTHROW(writer.Write(message));
|
||||
}
|
||||
|
||||
writer.Write(end_message);
|
||||
writer.WriteHDF5(end_message);
|
||||
writer.Finalize();
|
||||
}
|
||||
{
|
||||
@@ -643,21 +642,21 @@ TEST_CASE("HDF5Writer_Link_VDS", "[HDF5][Full]") {
|
||||
|
||||
|
||||
TEST_CASE("HDF5Writer_NoMasterFile", "[HDF5][Full]") {
|
||||
DiffractionExperiment x(DetectorGeometry(1));
|
||||
DiffractionExperiment x(DetJF(1));
|
||||
|
||||
x.ImagesPerTrigger(7).ImagesPerFile(2).Compression(CompressionAlgorithm::NO_COMPRESSION).FilePrefix("data_only");
|
||||
x.HDF5MasterFormatVersion(FileWriterFileFormat::DataOnly).OverwriteExistingFiles(true);
|
||||
x.SetFileWriterFormat(FileWriterFormat::DataOnly).OverwriteExistingFiles(true);
|
||||
{
|
||||
RegisterHDF5Filter();
|
||||
|
||||
StartMessage start_message;
|
||||
x.FillMessage(start_message);
|
||||
|
||||
REQUIRE(start_message.hdf5_format_version == FileWriterFileFormat::DataOnly);
|
||||
REQUIRE(start_message.file_format == FileWriterFormat::DataOnly);
|
||||
EndMessage end_message;
|
||||
end_message.max_image_number = x.GetImageNum() - 2;
|
||||
|
||||
HDF5Writer writer(start_message);
|
||||
FileWriter writer(start_message);
|
||||
std::vector<uint16_t> image(x.GetPixelsNum());
|
||||
std::vector<SpotToSave> spots;
|
||||
for (int i = 0; i < x.GetImageNum() - 2; i++) {
|
||||
@@ -677,7 +676,7 @@ TEST_CASE("HDF5Writer_NoMasterFile", "[HDF5][Full]") {
|
||||
REQUIRE_NOTHROW(writer.Write(message));
|
||||
}
|
||||
|
||||
writer.Write(end_message);
|
||||
writer.WriteHDF5(end_message);
|
||||
writer.Finalize();
|
||||
}
|
||||
REQUIRE(!std::filesystem::exists("data_only_master.h5"));
|
||||
@@ -689,7 +688,7 @@ TEST_CASE("HDF5Writer_NoMasterFile", "[HDF5][Full]") {
|
||||
|
||||
|
||||
TEST_CASE("HDF5Writer_Link_zero_images", "[HDF5][Full]") {
|
||||
DiffractionExperiment x(DetectorGeometry(1));
|
||||
DiffractionExperiment x(DetJF(1));
|
||||
x.ImagesPerTrigger(5).ImagesPerFile(2).Compression(CompressionAlgorithm::NO_COMPRESSION).FilePrefix("link_zero");
|
||||
|
||||
{
|
||||
@@ -714,3 +713,116 @@ TEST_CASE("HDF5Writer_Link_zero_images", "[HDF5][Full]") {
|
||||
// No leftover HDF5 objects
|
||||
REQUIRE (H5Fget_obj_count(H5F_OBJ_ALL, H5F_OBJ_ALL) == 0);
|
||||
}
|
||||
|
||||
TEST_CASE("FileWriter_CBF_16bit", "[HDF5][Full]") {
|
||||
{
|
||||
DetectorSetup det = DetJF4M("DET1");
|
||||
det.SerialNumber("1");
|
||||
DiffractionExperiment x(det);
|
||||
std::vector<SpotToSave> spots;
|
||||
|
||||
x.FilePrefix("lyso_cbf_16").ImagesPerTrigger(5).ImagesPerFile(2).Compression(CompressionAlgorithm::NO_COMPRESSION);
|
||||
x.PixelSigned(true).BitDepthImage(16);
|
||||
x.SetFileWriterFormat(FileWriterFormat::CBF);
|
||||
StartMessage start_message;
|
||||
x.FillMessage(start_message);
|
||||
|
||||
FileWriter file_set(start_message);
|
||||
std::vector<uint16_t> image(x.GetPixelsNum(), 45);
|
||||
|
||||
for (int i = 0; i < x.GetImageNum(); i++) {
|
||||
DataMessage message{};
|
||||
message.image.pixel_depth_bytes = x.GetByteDepthImage();
|
||||
message.image.pixel_is_signed = x.IsPixelSigned();
|
||||
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.GetByteDepthImage();
|
||||
message.spots = spots;
|
||||
message.number = i;
|
||||
|
||||
REQUIRE_NOTHROW(file_set.Write(message));
|
||||
}
|
||||
|
||||
auto v = file_set.Finalize();
|
||||
|
||||
REQUIRE(!file_set.GetZMQAddr());
|
||||
}
|
||||
}
|
||||
|
||||
TEST_CASE("FileWriter_CBF", "[HDF5][Full]") {
|
||||
{
|
||||
DetectorSetup det = DetJF4M("DET1");
|
||||
det.SerialNumber("1");
|
||||
DiffractionExperiment x(det);
|
||||
std::vector<SpotToSave> spots;
|
||||
|
||||
x.FilePrefix("lyso_cbf").ImagesPerTrigger(5).ImagesPerFile(2).Compression(CompressionAlgorithm::NO_COMPRESSION);
|
||||
x.PixelSigned(false).BitDepthImage(32);
|
||||
x.SetFileWriterFormat(FileWriterFormat::CBF);
|
||||
StartMessage start_message;
|
||||
x.FillMessage(start_message);
|
||||
|
||||
FileWriter file_set(start_message);
|
||||
std::vector<uint32_t> image(x.GetPixelsNum());
|
||||
|
||||
for (int i = 0; i < image.size(); i++)
|
||||
image[i] = i;
|
||||
|
||||
for (int i = 0; i < x.GetImageNum(); i++) {
|
||||
DataMessage message{};
|
||||
message.image.pixel_depth_bytes = x.GetByteDepthImage();
|
||||
message.image.pixel_is_signed = x.IsPixelSigned();
|
||||
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.GetByteDepthImage();
|
||||
message.spots = spots;
|
||||
message.number = i;
|
||||
|
||||
REQUIRE_NOTHROW(file_set.Write(message));
|
||||
}
|
||||
|
||||
auto v = file_set.Finalize();
|
||||
|
||||
REQUIRE(!file_set.GetZMQAddr());
|
||||
}
|
||||
}
|
||||
|
||||
TEST_CASE("FileWriter_TIFF", "[HDF5][Full]") {
|
||||
{
|
||||
DetectorSetup det = DetJF4M("DET1");
|
||||
det.SerialNumber("1");
|
||||
DiffractionExperiment x(det);
|
||||
std::vector<SpotToSave> spots;
|
||||
|
||||
x.FilePrefix("lyso_tiff").ImagesPerTrigger(5).ImagesPerFile(2).Compression(CompressionAlgorithm::NO_COMPRESSION);
|
||||
x.SetFileWriterFormat(FileWriterFormat::TIFF);
|
||||
StartMessage start_message;
|
||||
x.FillMessage(start_message);
|
||||
|
||||
FileWriter file_set(start_message);
|
||||
std::vector<uint16_t> image(x.GetPixelsNum(), 45);
|
||||
|
||||
for (int i = 0; i < x.GetImageNum(); i++) {
|
||||
DataMessage message{};
|
||||
message.image.pixel_depth_bytes = x.GetByteDepthImage();
|
||||
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.GetByteDepthImage();
|
||||
message.spots = spots;
|
||||
message.number = i;
|
||||
|
||||
REQUIRE_NOTHROW(file_set.Write(message));
|
||||
}
|
||||
|
||||
auto v = file_set.Finalize();
|
||||
|
||||
REQUIRE(!file_set.GetZMQAddr());
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user