version 1.0.0-rc.24

This commit is contained in:
2024-11-17 14:55:09 +01:00
parent aeeae33ad9
commit adc13ff33e
361 changed files with 12513 additions and 3314 deletions
+233 -19
View File
@@ -26,9 +26,11 @@ TEST_CASE("JFJochReceiverTest_Raw", "[JFJochReceiver]") {
Logger logger("JFJochReceiverTest_Raw");
PixelMask mask(x);
JFJochReceiverOutput output;
bool ret;
REQUIRE_NOTHROW(ret = JFJochReceiverTest(output, logger, aq_devices, x, nthreads));
REQUIRE_NOTHROW(ret = JFJochReceiverTest(output, logger, aq_devices, x, mask, nthreads));
REQUIRE(ret);
REQUIRE(output.efficiency == 1.0);
REQUIRE(output.status.images_sent == x.GetImageNum());
@@ -56,9 +58,11 @@ TEST_CASE("JFJochReceiverTest_Conversion", "[JFJochReceiver]") {
REQUIRE(x.IsGeometryTransformed());
PixelMask mask(x);
JFJochReceiverOutput output;
bool ret;
REQUIRE_NOTHROW(ret = JFJochReceiverTest(output, logger, aq_devices, x, nthreads));
REQUIRE_NOTHROW(ret = JFJochReceiverTest(output, logger, aq_devices, x, mask, nthreads));
REQUIRE(ret);
REQUIRE(output.efficiency == 1.0);
REQUIRE(output.status.images_sent == x.GetImageNum());
@@ -83,9 +87,11 @@ TEST_CASE("JFJochReceiverTest_Conversion_NoGeomTransform", "[JFJochReceiver]") {
aq_devices.Add(std::move(test));
}
PixelMask mask(x);
JFJochReceiverOutput output;
bool ret;
REQUIRE_NOTHROW(ret = JFJochReceiverTest(output, logger, aq_devices, x, nthreads));
REQUIRE_NOTHROW(ret = JFJochReceiverTest(output, logger, aq_devices, x, mask, nthreads));
REQUIRE(ret);
REQUIRE(output.efficiency == 1.0);
REQUIRE(output.status.images_sent == x.GetImageNum());
@@ -111,9 +117,11 @@ TEST_CASE("JFJochReceiverTest_Conversion_Poisson", "[JFJochReceiver]") {
aq_devices.Add(std::move(test));
}
PixelMask mask(x);
JFJochReceiverOutput output;
bool ret;
REQUIRE_NOTHROW(ret = JFJochReceiverTest(output, logger, aq_devices, x, nthreads));
REQUIRE_NOTHROW(ret = JFJochReceiverTest(output, logger, aq_devices, x, mask, nthreads));
REQUIRE(ret);
REQUIRE(output.efficiency == 1.0);
REQUIRE(output.status.images_sent == x.GetImageNum());
@@ -139,9 +147,70 @@ TEST_CASE("JFJochReceiverTest_Conversion_Threshold", "[JFJochReceiver]") {
aq_devices.Add(std::move(test));
}
PixelMask mask(x);
JFJochReceiverOutput output;
bool ret;
REQUIRE_NOTHROW(ret = JFJochReceiverTest(output, logger, aq_devices, x, nthreads));
REQUIRE_NOTHROW(ret = JFJochReceiverTest(output, logger, aq_devices, x, mask, nthreads));
REQUIRE(ret);
REQUIRE(output.efficiency == 1.0);
REQUIRE(output.status.images_sent == x.GetImageNum());
REQUIRE(!output.status.cancelled);
}
TEST_CASE("JFJochReceiverTest_Conversion_ApplyMask", "[JFJochReceiver]") {
Logger logger("JFJochReceiverTest_Conversion_ApplyMask");
DiffractionExperiment x(DetectorGeometry(2));
const uint16_t nthreads = 4;
x.Mode(DetectorMode::Conversion);
x.PedestalG0Frames(0).NumTriggers(1).UseInternalPacketGenerator(true)
.ImagesPerTrigger(32).ImagesPerFile(10).PhotonEnergy_keV(12.4).Compression(CompressionAlgorithm::BSHUF_ZSTD);
x.ApplyPixelMask(true).MaskChipEdges(true).MaskModuleEdges(true);
AcquisitionDeviceGroup aq_devices;
for (int i = 0; i < x.GetDataStreamsNum(); i++) {
std::unique_ptr<HLSSimulatedDevice> test = std::make_unique<HLSSimulatedDevice>(i, 64);
aq_devices.Add(std::move(test));
}
PixelMask mask(x);
JFJochReceiverOutput output;
bool ret;
REQUIRE_NOTHROW(ret = JFJochReceiverTest(output, logger, aq_devices, x, mask, nthreads));
REQUIRE(ret);
REQUIRE(output.efficiency == 1.0);
REQUIRE(output.status.images_sent == x.GetImageNum());
REQUIRE(!output.status.cancelled);
}
TEST_CASE("JFJochReceiverTest_Conversion_Threshold_Summation", "[JFJochReceiver]") {
Logger logger("JFJochReceiverTest_Conversion_Threshold");
DiffractionExperiment x(DetectorGeometry(2));
const uint16_t nthreads = 4;
x.Mode(DetectorMode::Conversion);
x.PedestalG0Frames(0).NumTriggers(1).UseInternalPacketGenerator(true)
.ImagesPerTrigger(1).Summation(4).ImagesPerFile(10).PhotonEnergy_keV(12.4).Compression(
CompressionAlgorithm::BSHUF_ZSTD);
x.PixelValueLowThreshold(10);
AcquisitionDeviceGroup aq_devices;
for (int i = 0; i < x.GetDataStreamsNum(); i++) {
std::unique_ptr<HLSSimulatedDevice> test = std::make_unique<HLSSimulatedDevice>(i, 64);
aq_devices.Add(std::move(test));
}
PixelMask mask(x);
JFJochReceiverOutput output;
bool ret;
REQUIRE_NOTHROW(ret = JFJochReceiverTest(output, logger, aq_devices, x, mask, nthreads));
REQUIRE(ret);
REQUIRE(output.efficiency == 1.0);
REQUIRE(output.status.images_sent == x.GetImageNum());
@@ -166,9 +235,11 @@ TEST_CASE("JFJochReceiverTest_Conversion_FixedGainG1", "[JFJochReceiver]") {
aq_devices.Add(std::move(test));
}
PixelMask mask(x);
JFJochReceiverOutput output;
bool ret;
REQUIRE_NOTHROW(ret = JFJochReceiverTest(output, logger, aq_devices, x, nthreads));
REQUIRE_NOTHROW(ret = JFJochReceiverTest(output, logger, aq_devices, x, mask, nthreads));
REQUIRE(ret);
REQUIRE(output.efficiency == 1.0);
REQUIRE(output.status.images_sent == x.GetImageNum());
@@ -195,9 +266,11 @@ TEST_CASE("JFJochReceiverTest_Conversion_FixedGainG1_onlyG1", "[JFJochReceiver]"
aq_devices.Add(std::move(test));
}
PixelMask mask(x);
JFJochReceiverOutput output;
bool ret;
REQUIRE_NOTHROW(ret = JFJochReceiverTest(output, logger, aq_devices, x, input, nthreads));
REQUIRE_NOTHROW(ret = JFJochReceiverTest(output, logger, aq_devices, x, mask, input, nthreads));
REQUIRE(ret);
REQUIRE(output.efficiency == 1.0);
REQUIRE(output.status.images_sent == x.GetImageNum());
@@ -223,9 +296,43 @@ TEST_CASE("JFJochReceiverTest_Conversion_U16", "[JFJochReceiver]") {
aq_devices.Add(std::move(test));
}
PixelMask mask(x);
JFJochReceiverOutput output;
bool ret;
REQUIRE_NOTHROW(ret = JFJochReceiverTest(output, logger, aq_devices, x, nthreads));
REQUIRE_NOTHROW(ret = JFJochReceiverTest(output, logger, aq_devices, x, mask, nthreads));
REQUIRE(ret);
REQUIRE(output.efficiency == 1.0);
REQUIRE(output.status.images_sent == x.GetImageNum());
REQUIRE(!output.status.cancelled);
}
TEST_CASE("JFJochReceiverTest_Conversion_U8", "[JFJochReceiver]") {
Logger logger("JFJochReceiverTest_Conversion_U8");
DiffractionExperiment x(DetectorGeometry(2));
const uint16_t nthreads = 4;
x.Mode(DetectorMode::Conversion);
x.PedestalG0Frames(0).NumTriggers(1).UseInternalPacketGenerator(true)
.ImagesPerTrigger(32).ImagesPerFile(10).PhotonEnergy_keV(12.4).Compression(CompressionAlgorithm::BSHUF_ZSTD)
.BitDepthImage(8).PixelSigned(false);
REQUIRE(!x.IsPixelSigned());
REQUIRE(x.GetByteDepthImage() == 1);
AcquisitionDeviceGroup aq_devices;
for (int i = 0; i < x.GetDataStreamsNum(); i++) {
std::unique_ptr<HLSSimulatedDevice> test = std::make_unique<HLSSimulatedDevice>(i,64);
aq_devices.Add(std::move(test));
}
PixelMask mask(x);
JFJochReceiverOutput output;
bool ret;
REQUIRE_NOTHROW(ret = JFJochReceiverTest(output, logger, aq_devices, x, mask, nthreads));
REQUIRE(ret);
REQUIRE(output.efficiency == 1.0);
REQUIRE(output.status.images_sent == x.GetImageNum());
@@ -250,9 +357,11 @@ TEST_CASE("JFJochReceiverTest_Conversion_I32", "[JFJochReceiver]") {
aq_devices.Add(std::move(test));
}
PixelMask mask(x);
JFJochReceiverOutput output;
bool ret;
REQUIRE_NOTHROW(ret = JFJochReceiverTest(output, logger, aq_devices, x, nthreads));
REQUIRE_NOTHROW(ret = JFJochReceiverTest(output, logger, aq_devices, x, mask, nthreads));
REQUIRE(ret);
REQUIRE(output.efficiency == 1.0);
REQUIRE(output.status.images_sent == x.GetImageNum());
@@ -276,9 +385,11 @@ TEST_CASE("JFJochReceiverTest_Conversion_Summation2", "[JFJochReceiver]") {
aq_devices.Add(std::move(test));
}
PixelMask mask(x);
JFJochReceiverOutput output;
bool ret;
REQUIRE_NOTHROW(ret = JFJochReceiverTest(output, logger, aq_devices, x, nthreads));
REQUIRE_NOTHROW(ret = JFJochReceiverTest(output, logger, aq_devices, x, mask, nthreads));
REQUIRE(ret);
REQUIRE(output.efficiency == 1.0);
REQUIRE(output.status.images_sent == x.GetImageNum());
@@ -286,6 +397,35 @@ TEST_CASE("JFJochReceiverTest_Conversion_Summation2", "[JFJochReceiver]") {
REQUIRE(!output.status.cancelled);
}
TEST_CASE("JFJochReceiverTest_Conversion_Summation2_CPU", "[JFJochReceiver]") {
Logger logger("JFJochReceiverTest_Conversion");
DiffractionExperiment x(DetectorGeometry(2));
const uint16_t nthreads = 4;
x.Mode(DetectorMode::Conversion);
x.PedestalG0Frames(0).NumTriggers(1).UseInternalPacketGenerator(true)
.ImagesPerTrigger(32).ImagesPerFile(10).PhotonEnergy_keV(12.4).Compression(CompressionAlgorithm::BSHUF_ZSTD)
.Summation(2).CPUSummation(true);
AcquisitionDeviceGroup aq_devices;
for (int i = 0; i < x.GetDataStreamsNum(); i++) {
std::unique_ptr<HLSSimulatedDevice> test = std::make_unique<HLSSimulatedDevice>(i,64);
aq_devices.Add(std::move(test));
}
PixelMask mask(x);
JFJochReceiverOutput output;
bool ret;
REQUIRE_NOTHROW(ret = JFJochReceiverTest(output, logger, aq_devices, x, mask, nthreads));
CHECK(ret);
CHECK(output.efficiency == 1.0);
CHECK(output.status.images_sent == x.GetImageNum());
CHECK(!output.status.cancelled);
}
TEST_CASE("JFJochReceiverTest_Conversion_StorageCell", "[JFJochReceiver]") {
Logger logger("JFJochReceiverTest_Conversion_StorageCell");
@@ -305,9 +445,11 @@ TEST_CASE("JFJochReceiverTest_Conversion_StorageCell", "[JFJochReceiver]") {
aq_devices.Add(std::move(test));
}
PixelMask mask(x);
JFJochReceiverOutput output;
bool ret;
REQUIRE_NOTHROW(ret = JFJochReceiverTest(output, logger, aq_devices, x, nthreads));
REQUIRE_NOTHROW(ret = JFJochReceiverTest(output, logger, aq_devices, x, mask, nthreads));
REQUIRE(ret);
REQUIRE(output.efficiency == 1.0);
REQUIRE(output.status.images_sent == x.GetImageNum());
@@ -354,9 +496,11 @@ TEST_CASE("JFJochReceiverTest_PedestalG1", "[JFJochReceiver]") {
Logger logger("JFJochReceiverTest_PedestalG1");
PixelMask mask(x);
JFJochReceiverOutput output;
bool ret;
REQUIRE_NOTHROW(ret = JFJochReceiverTest(output, logger, aq_devices, x, nthreads));
REQUIRE_NOTHROW(ret = JFJochReceiverTest(output, logger, aq_devices, x, mask, nthreads));
REQUIRE(ret);
REQUIRE(output.status.images_sent == x.GetImageNum());
REQUIRE(output.efficiency == 1.0);
@@ -420,9 +564,11 @@ TEST_CASE("JFJochReceiverTest_PedestalG2_storage_cell", "[JFJochReceiver]") {
Logger logger("JFJochReceiverTest_PedestalG2_storage_cell");
PixelMask mask(x);
JFJochReceiverOutput output;
bool ret;
REQUIRE_NOTHROW(ret = JFJochReceiverTest(output, logger, aq_devices, x, nthreads));
REQUIRE_NOTHROW(ret = JFJochReceiverTest(output, logger, aq_devices, x, mask, nthreads));
REQUIRE(ret);
REQUIRE(output.status.images_sent == x.GetImageNum());
REQUIRE(output.efficiency == 1.0);
@@ -471,10 +617,12 @@ TEST_CASE("JFJochReceiverTest_PedestalG0", "[JFJochReceiver]") {
for (int i = 0; i < nframes; i++)
pc.AnalyzeImage(pedestal_in.data() + i * RAW_MODULE_SIZE);
PixelMask mask(x);
Logger logger("JFJochReceiverTest_PedestalG0");
JFJochReceiverOutput output;
bool ret;
REQUIRE_NOTHROW(ret = JFJochReceiverTest(output, logger, aq_devices, x, nthreads));
REQUIRE_NOTHROW(ret = JFJochReceiverTest(output, logger, aq_devices, x, mask, nthreads));
REQUIRE(ret);
REQUIRE(output.status.images_sent == x.GetImageNum());
REQUIRE(output.efficiency == 1.0);
@@ -518,10 +666,12 @@ TEST_CASE("JFJochReceiverTest_PedestalG0_StorageCell", "[JFJochReceiver]") {
test->CreateFinalPacket(x);
aq_devices.Add(std::move(test));
PixelMask mask(x);
Logger logger("JFJochReceiverTest_PedestalG0_StorageCell");
JFJochReceiverOutput output;
bool ret;
REQUIRE_NOTHROW(ret = JFJochReceiverTest(output, logger, aq_devices, x, nthreads));
REQUIRE_NOTHROW(ret = JFJochReceiverTest(output, logger, aq_devices, x, mask, nthreads));
REQUIRE(ret);
REQUIRE(output.status.images_sent == x.GetImageNum());
REQUIRE(output.efficiency == 1.0);
@@ -574,10 +724,12 @@ TEST_CASE("JFJochReceiverTest_PedestalFixedG1_StorageCell", "[JFJochReceiver]")
test->CreateFinalPacket(x);
aq_devices.Add(std::move(test));
PixelMask mask(x);
Logger logger("JFJochReceiverTest_PedestalFixedG1_StorageCell");
JFJochReceiverOutput output;
bool ret;
REQUIRE_NOTHROW(ret = JFJochReceiverTest(output, logger, aq_devices, x, nthreads));
REQUIRE_NOTHROW(ret = JFJochReceiverTest(output, logger, aq_devices, x, mask, nthreads));
REQUIRE(ret);
REQUIRE(output.status.images_sent == x.GetImageNum());
REQUIRE(output.efficiency == 1.0);
@@ -617,10 +769,12 @@ TEST_CASE("JFJochReceiverTest_PedestalG1_NoFrames", "[JFJochReceiver]") {
aq_devices.Add(std::move(test));
}
PixelMask mask(x);
Logger logger("JFJochReceiverTest_PedestalG1_NoFrames");
JFJochReceiverOutput output;
bool ret;
REQUIRE_NOTHROW(ret = JFJochReceiverTest(output, logger, aq_devices, x, nthreads));
REQUIRE_NOTHROW(ret = JFJochReceiverTest(output, logger, aq_devices, x, mask, nthreads));
REQUIRE(ret);
REQUIRE(output.status.images_sent == 0);
REQUIRE(output.efficiency < 1.0);
@@ -749,9 +903,67 @@ TEST_CASE("JFJochReceiverTest_EIGER", "[JFJochReceiver]") {
aq_devices.Add(std::move(test));
}
PixelMask mask(x);
JFJochReceiverOutput output;
bool ret;
REQUIRE_NOTHROW(ret = JFJochReceiverTest(output, logger, aq_devices, x, nthreads));
REQUIRE_NOTHROW(ret = JFJochReceiverTest(output, logger, aq_devices, x, mask, nthreads));
REQUIRE(ret);
REQUIRE(output.efficiency == 1.0);
REQUIRE(output.status.images_sent == x.GetImageNum());
REQUIRE(!output.status.cancelled);
}
TEST_CASE("JFJochReceiverTest_EIGER_8bit", "[JFJochReceiver]") {
Logger logger("JFJochReceiverTest_EIGER_8bit");
DiffractionExperiment x(DetectorSetup(DetectorGeometry(2), DetectorType::EIGER));
const uint16_t nthreads = 4;
x.PedestalG0Frames(0).NumTriggers(1).UseInternalPacketGenerator(true)
.ImagesPerTrigger(32).ImagesPerFile(10).PhotonEnergy_keV(12.4).Compression(CompressionAlgorithm::BSHUF_ZSTD);
x.EigerBitDepth(8);
AcquisitionDeviceGroup aq_devices;
for (int i = 0; i < x.GetDataStreamsNum(); i++) {
std::unique_ptr<HLSSimulatedDevice> test = std::make_unique<HLSSimulatedDevice>(i,64);
aq_devices.Add(std::move(test));
}
PixelMask mask(x);
JFJochReceiverOutput output;
bool ret;
REQUIRE_NOTHROW(ret = JFJochReceiverTest(output, logger, aq_devices, x, mask, nthreads));
REQUIRE(ret);
REQUIRE(output.efficiency == 1.0);
REQUIRE(output.status.images_sent == x.GetImageNum());
REQUIRE(!output.status.cancelled);
}
TEST_CASE("JFJochReceiverTest_EIGER_32bit", "[JFJochReceiver]") {
Logger logger("JFJochReceiverTest_EIGER_32bit");
DiffractionExperiment x(DetectorSetup(DetectorGeometry(2), DetectorType::EIGER));
const uint16_t nthreads = 4;
x.PedestalG0Frames(0).NumTriggers(1).UseInternalPacketGenerator(true)
.ImagesPerTrigger(32).ImagesPerFile(10).PhotonEnergy_keV(12.4).Compression(CompressionAlgorithm::BSHUF_ZSTD);
x.EigerBitDepth(32);
AcquisitionDeviceGroup aq_devices;
for (int i = 0; i < x.GetDataStreamsNum(); i++) {
std::unique_ptr<HLSSimulatedDevice> test = std::make_unique<HLSSimulatedDevice>(i,64);
aq_devices.Add(std::move(test));
}
PixelMask mask(x);
JFJochReceiverOutput output;
bool ret;
REQUIRE_NOTHROW(ret = JFJochReceiverTest(output, logger, aq_devices, x, mask, nthreads));
REQUIRE(ret);
REQUIRE(output.efficiency == 1.0);
REQUIRE(output.status.images_sent == x.GetImageNum());
@@ -775,9 +987,11 @@ TEST_CASE("JFJochReceiverTest_EIGER_conversion", "[JFJochReceiver]") {
aq_devices.Add(std::move(test));
}
PixelMask mask(x);
JFJochReceiverOutput output;
bool ret;
REQUIRE_NOTHROW(ret = JFJochReceiverTest(output, logger, aq_devices, x, nthreads));
REQUIRE_NOTHROW(ret = JFJochReceiverTest(output, logger, aq_devices, x, mask, nthreads));
REQUIRE(ret);
REQUIRE(output.efficiency == 1.0);
REQUIRE(output.status.images_sent == x.GetImageNum());