v1.0.0-rc.50
This commit is contained in:
@@ -623,4 +623,124 @@ TEST_CASE("JFJochReader_ROI", "[HDF5][Full]") {
|
||||
remove("test25_data_000004.h5");
|
||||
// No leftover HDF5 objects
|
||||
REQUIRE(H5Fget_obj_count(H5F_OBJ_ALL, H5F_OBJ_ALL) == 0);
|
||||
}
|
||||
|
||||
TEST_CASE("JFJochReader_BraggIntegration", "[HDF5][Full]") {
|
||||
DiffractionExperiment x(DetJF(1));
|
||||
|
||||
x.FilePrefix("test26").ImagesPerTrigger(4).OverwriteExistingFiles(true);
|
||||
x.BitDepthImage(16).ImagesPerFile(1).SetFileWriterFormat(FileWriterFormat::NXmxVDS).PixelSigned(false);
|
||||
x.Compression(CompressionAlgorithm::NO_COMPRESSION);
|
||||
x.IndexingAlgorithm(IndexingAlgorithmEnum::FFT);
|
||||
|
||||
std::vector<uint16_t> image(x.GetPixelsNum());
|
||||
|
||||
RegisterHDF5Filter();
|
||||
{
|
||||
StartMessage start_message;
|
||||
x.FillMessage(start_message);
|
||||
FileWriter file_set(start_message);
|
||||
|
||||
for (int i = 0; i < x.GetImageNum(); i++) {
|
||||
std::vector<SpotToSave> spots;
|
||||
|
||||
DataMessage message{};
|
||||
message.image = CompressedImage(image, x.GetXPixelsNum(), x.GetYPixelsNum());
|
||||
message.spots = spots;
|
||||
message.number = i;
|
||||
message.indexing_result = true;
|
||||
message.indexing_lattice = CrystalLattice(50,60,70, 90,90,90);
|
||||
|
||||
REQUIRE_NOTHROW(file_set.WriteHDF5(message));
|
||||
}
|
||||
EndMessage end_message;
|
||||
end_message.max_image_number = x.GetImageNum();
|
||||
file_set.WriteHDF5(end_message);
|
||||
file_set.Finalize();
|
||||
}
|
||||
{
|
||||
JFJochHDF5Reader reader;
|
||||
REQUIRE_NOTHROW(reader.ReadFile("test26_master.h5"));
|
||||
auto dataset = reader.GetStartMessage();
|
||||
CHECK(dataset->experiment.GetImageNum() == 4);
|
||||
CHECK_NOTHROW(reader.LoadImage(0));
|
||||
auto img = reader.CopyImage();
|
||||
CHECK(img->ImageData().indexing_lattice.has_value());
|
||||
CHECK(!img->ImageData().reflections.empty());
|
||||
CHECK(img->ImageData().b_factor.has_value());
|
||||
}
|
||||
remove("test26_master.h5");
|
||||
remove("test26_data_000001.h5");
|
||||
remove("test26_data_000002.h5");
|
||||
remove("test26_data_000003.h5");
|
||||
remove("test26_data_000004.h5");
|
||||
// No leftover HDF5 objects
|
||||
REQUIRE(H5Fget_obj_count(H5F_OBJ_ALL, H5F_OBJ_ALL) == 0);
|
||||
}
|
||||
|
||||
TEST_CASE("JFJochReader_Azint", "[HDF5][Full]") {
|
||||
DiffractionExperiment x(DetJF(1));
|
||||
|
||||
x.FilePrefix("test27").ImagesPerTrigger(4).OverwriteExistingFiles(true);
|
||||
x.BitDepthImage(16).ImagesPerFile(1).SetFileWriterFormat(FileWriterFormat::NXmxVDS).PixelSigned(false);
|
||||
x.Compression(CompressionAlgorithm::NO_COMPRESSION);
|
||||
|
||||
AzimuthalIntegrationSettings azint_settings;
|
||||
azint_settings.AzimuthalBinCount(4);
|
||||
x.ImportAzimuthalIntegrationSettings(azint_settings);
|
||||
|
||||
std::vector<uint16_t> image(x.GetPixelsNum());
|
||||
|
||||
AzimuthalIntegration azint(x, PixelMask(x));
|
||||
RegisterHDF5Filter();
|
||||
{
|
||||
StartMessage start_message;
|
||||
x.FillMessage(start_message);
|
||||
start_message.az_int_bin_to_q = azint.GetBinToQ();
|
||||
start_message.az_int_bin_to_phi = azint.GetBinToPhi();
|
||||
start_message.az_int_q_bin_count = azint.GetQBinCount();
|
||||
start_message.az_int_phi_bin_count = azint.GetAzimuthalBinCount();
|
||||
|
||||
FileWriter file_set(start_message);
|
||||
|
||||
for (int i = 0; i < x.GetImageNum(); i++) {
|
||||
std::vector<SpotToSave> spots;
|
||||
|
||||
DataMessage message{};
|
||||
message.image = CompressedImage(image, x.GetXPixelsNum(), x.GetYPixelsNum());
|
||||
message.spots = spots;
|
||||
message.number = i;
|
||||
message.az_int_profile = std::vector<float>(azint_settings.GetBinCount(), 57);
|
||||
|
||||
REQUIRE_NOTHROW(file_set.WriteHDF5(message));
|
||||
}
|
||||
EndMessage end_message;
|
||||
end_message.max_image_number = x.GetImageNum();
|
||||
file_set.WriteHDF5(end_message);
|
||||
file_set.Finalize();
|
||||
}
|
||||
{
|
||||
JFJochHDF5Reader reader;
|
||||
REQUIRE_NOTHROW(reader.ReadFile("test27_master.h5"));
|
||||
auto dataset = reader.GetStartMessage();
|
||||
CHECK(dataset->experiment.GetImageNum() == 4);
|
||||
CHECK_NOTHROW(reader.LoadImage(0));
|
||||
auto img = reader.CopyImage();
|
||||
|
||||
CHECK(img->Dataset().az_int_bin_to_q.size() == azint_settings.GetBinCount());
|
||||
CHECK(img->Dataset().azimuthal_bins == azint_settings.GetAzimuthalBinCount());
|
||||
CHECK(img->Dataset().q_bins == azint_settings.GetQBinCount());
|
||||
REQUIRE(img->ImageData().az_int_profile.size() == azint_settings.GetBinCount());
|
||||
CHECK(img->ImageData().az_int_profile[23] == 57);
|
||||
CHECK(img->GetAzInt1D_BinToQ().size() == azint_settings.GetQBinCount());
|
||||
REQUIRE(img->GetAzint1D().size() == azint_settings.GetQBinCount());
|
||||
CHECK(img->GetAzint1D()[23] == 4 * 57);
|
||||
}
|
||||
remove("test27_master.h5");
|
||||
remove("test27_data_000001.h5");
|
||||
remove("test27_data_000002.h5");
|
||||
remove("test27_data_000003.h5");
|
||||
remove("test27_data_000004.h5");
|
||||
// No leftover HDF5 objects
|
||||
REQUIRE(H5Fget_obj_count(H5F_OBJ_ALL, H5F_OBJ_ALL) == 0);
|
||||
}
|
||||
Reference in New Issue
Block a user