jfjoch_tests: Fix tests for writing calibration
Build Packages / build:rpm (rocky8_nocuda) (push) Successful in 11m48s
Build Packages / build:rpm (rocky9_nocuda) (push) Successful in 15m17s
Build Packages / build:rpm (ubuntu2404_nocuda) (push) Successful in 15m24s
Build Packages / Generate python client (push) Successful in 37s
Build Packages / build:rpm (ubuntu2204) (push) Failing after 5m6s
Build Packages / build:rpm (rocky8_sls9) (push) Successful in 17m12s
Build Packages / Create release (push) Has been skipped
Build Packages / build:rpm (ubuntu2204_nocuda) (push) Successful in 17m23s
Build Packages / Build documentation (push) Successful in 1m22s
Build Packages / build:rpm (rocky8) (push) Successful in 19m0s
Build Packages / build:rpm (rocky9) (push) Successful in 19m40s
Build Packages / build:rpm (rocky9_sls9) (push) Successful in 19m49s
Build Packages / build:rpm (rocky8_nocuda) (pull_request) Successful in 11m23s
Build Packages / build:rpm (ubuntu2404) (push) Successful in 17m37s
Build Packages / build:rpm (ubuntu2404_nocuda) (pull_request) Successful in 13m51s
Build Packages / build:rpm (ubuntu2204_nocuda) (pull_request) Successful in 16m23s
Build Packages / build:rpm (rocky9_nocuda) (pull_request) Successful in 16m46s
Build Packages / Generate python client (pull_request) Successful in 38s
Build Packages / build:rpm (rocky8_sls9) (pull_request) Successful in 15m40s
Build Packages / Build documentation (pull_request) Successful in 1m41s
Build Packages / Create release (pull_request) Has been skipped
Build Packages / build:rpm (rocky9_sls9) (pull_request) Successful in 16m36s
Build Packages / build:rpm (rocky8) (pull_request) Successful in 9m48s
Build Packages / build:rpm (ubuntu2204) (pull_request) Successful in 11m21s
Build Packages / build:rpm (ubuntu2404) (pull_request) Successful in 10m35s
Build Packages / build:rpm (rocky9) (pull_request) Successful in 12m34s
Build Packages / Unit tests (push) Successful in 1h8m22s
Build Packages / Unit tests (pull_request) Successful in 59m39s

This commit is contained in:
2026-03-07 09:29:32 +01:00
parent 0048d64907
commit 573d5d2bed
2 changed files with 31 additions and 12 deletions
+28 -9
View File
@@ -6,6 +6,7 @@
#include "../common/DiffractionExperiment.h"
#include "../writer/FileWriter.h"
#include "../reader/JFJochHDF5Reader.h"
#include "../compression/JFJochCompressor.h"
TEST_CASE("HDF5DataType_Sign","[HDF5]") {
HDF5DataType type_u8((uint8_t)0), type_fl(0.0f), type_i32((int32_t) 0), type_u32((uint32_t) 0);
@@ -85,6 +86,9 @@ TEST_CASE("JFJochReader_MasterFile_Calibration", "[HDF5][Full]") {
std::vector<uint16_t> calib_1(200*300, 10);
std::vector<int32_t> calib_2(100*400, 55);
std::vector<float> calib_f(100*400, 1234.56f);
JFJochBitShuffleCompressor compressor(CompressionAlgorithm::BSHUF_LZ4);
auto calib_1_compressed = compressor.Compress(calib_1);
{
StartMessage start_message;
x.FillMessage(start_message);
@@ -92,14 +96,21 @@ TEST_CASE("JFJochReader_MasterFile_Calibration", "[HDF5][Full]") {
CompressedImage calibration_01(calib_1, 200, 300);
CompressedImage calibration_02(calib_2, 100, 400);
CompressedImage calibration_f(calib_f, 100, 400);
CompressedImage calibration_01_lz4(
calib_1_compressed.data(), calib_1_compressed.size(),
200, 300, CompressedImageMode::Uint16, CompressionAlgorithm::BSHUF_LZ4
);
calibration_01.Channel("c1");
calibration_02.Channel("c2");
calibration_f.Channel("cf");
calibration_01_lz4.Channel("c1_lz4");
EndMessage end_message;
end_message.max_image_number = 0;
std::unique_ptr<NXmx> master = std::make_unique<NXmx>(start_message);
master->WriteCalibration(calibration_01);
master->WriteCalibration(calibration_01_lz4);
master->WriteCalibration(calibration_02);
master->WriteCalibration(calibration_f);
master->Finalize(end_message);
@@ -109,10 +120,11 @@ TEST_CASE("JFJochReader_MasterFile_Calibration", "[HDF5][Full]") {
JFJochHDF5Reader reader;
REQUIRE_NOTHROW(reader.ReadFile("test_reader_calibration_master.h5"));
auto dataset = reader.GetDataset();
REQUIRE(dataset->calibration_data.size() == 3);
REQUIRE(dataset->calibration_data.size() == 4);
CHECK(dataset->calibration_data[0] == "c1");
CHECK(dataset->calibration_data[1] == "c2");
CHECK(dataset->calibration_data[2] == "cf");
CHECK(dataset->calibration_data[1] == "c1_lz4");
CHECK(dataset->calibration_data[2] == "c2");
CHECK(dataset->calibration_data[3] == "cf");
std::vector<uint8_t> buffer;
std::vector<uint8_t> buff_2;
@@ -120,22 +132,29 @@ TEST_CASE("JFJochReader_MasterFile_Calibration", "[HDF5][Full]") {
CompressedImage test;
REQUIRE_NOTHROW(test = reader.ReadCalibration(buffer, "c1"));
CHECK(test.GetByteDepth() == 2);
CHECK(test.GetHeight() == 200);
CHECK(test.GetWidth() == 300);
CHECK(test.GetHeight() == 300);
CHECK(test.GetWidth() == 200);
CHECK(test.GetMode() == CompressedImageMode::Uint16);
CHECK(reinterpret_cast<const uint16_t *>(test.GetUncompressedPtr(buff_2))[76] == 10);
REQUIRE_NOTHROW(test = reader.ReadCalibration(buffer, "c1_lz4"));
CHECK(test.GetByteDepth() == 2);
CHECK(test.GetHeight() == 300);
CHECK(test.GetWidth() == 200);
CHECK(test.GetMode() == CompressedImageMode::Uint16);
CHECK(reinterpret_cast<const uint16_t *>(test.GetUncompressedPtr(buff_2))[76] == 10);
REQUIRE_NOTHROW(test = reader.ReadCalibration(buffer, "c2"));
CHECK(test.GetByteDepth() == 4);
CHECK(test.GetHeight() == 100);
CHECK(test.GetWidth() == 400);
CHECK(test.GetHeight() == 400);
CHECK(test.GetWidth() == 100);
CHECK(test.GetMode() == CompressedImageMode::Int32);
CHECK(reinterpret_cast<const int32_t *>(test.GetUncompressedPtr(buff_2))[76] == 55);
REQUIRE_NOTHROW(test = reader.ReadCalibration(buffer, "cf"));
CHECK(test.GetByteDepth() == 4);
CHECK(test.GetHeight() == 100);
CHECK(test.GetWidth() == 400);
CHECK(test.GetHeight() == 400);
CHECK(test.GetWidth() == 100);
CHECK(test.GetMode() == CompressedImageMode::Float32);
CHECK(reinterpret_cast<const float *>(test.GetUncompressedPtr(buff_2))[76] == Catch::Approx(1234.56f));
}
+3 -3
View File
@@ -1656,9 +1656,9 @@ TEST_CASE("JFJochIntegrationTest_TCP_calibration", "[JFJochReceiver]") {
pedestal_g1[j] = j % RAW_MODULE_COLS;
pedestal_g2[j] = i * (RAW_MODULE_LINES) + j / RAW_MODULE_COLS; // line number
}
calibration.Pedestal(1,0).LoadPedestal(pedestal_g1);
calibration.Pedestal(2,0).LoadPedestal(pedestal_g2);
calibration.Pedestal(0,0).LoadPedestal(pedestal_g0);
calibration.Pedestal(i,0).LoadPedestal(pedestal_g0);
calibration.Pedestal(i,1).LoadPedestal(pedestal_g1);
calibration.Pedestal(i,2).LoadPedestal(pedestal_g2);
}
// Setup acquisition device