AcquisitionDevice: Setup rad. int. mapping automatically
This commit is contained in:
@@ -3,7 +3,7 @@
|
||||
#include <catch2/catch.hpp>
|
||||
|
||||
#include "../image_analysis/RadialIntegrationProfile.h"
|
||||
#include "../image_analysis/RadialIntegrationMapping.h"
|
||||
#include "../image_analysis/RadialIntegrationMappingFPGA.h"
|
||||
#include "../image_analysis/RadialIntegration.h"
|
||||
|
||||
TEST_CASE("RadialIntegrationMapping_Constructor","[RadialIntegration]") {
|
||||
@@ -15,6 +15,15 @@ TEST_CASE("RadialIntegrationMapping_Constructor","[RadialIntegration]") {
|
||||
REQUIRE_NOTHROW(radial = std::make_unique<RadialIntegrationMapping>(x));
|
||||
}
|
||||
|
||||
TEST_CASE("RadialIntegrationMappingFPGA_Constructor","[RadialIntegration]") {
|
||||
DiffractionExperiment x;
|
||||
|
||||
std::unique_ptr<RadialIntegrationMappingFPGA> radial;
|
||||
|
||||
x.QSpacingForRadialInt_recipA(0.1).LowQForRadialInt_recipA(0.1).HighQForRadialInt_recipA(5);
|
||||
REQUIRE_NOTHROW(radial = std::make_unique<RadialIntegrationMappingFPGA>(x, 0));
|
||||
}
|
||||
|
||||
TEST_CASE("RadialIntegrationMapping_Constructor_Mask","[RadialIntegration]") {
|
||||
DiffractionExperiment x(DetectorGeometry(8, 2, 8, 36));
|
||||
|
||||
@@ -41,6 +50,14 @@ TEST_CASE("RadialIntegrationMapping_GetBinNumber","[RadialIntegration]") {
|
||||
REQUIRE(mapping.GetBinNumber() == 39);
|
||||
}
|
||||
|
||||
TEST_CASE("RadialIntegrationMappingFPGA_GetBinNumber","[RadialIntegration]") {
|
||||
DiffractionExperiment x(DetectorGeometry(8, 2, 8, 36));
|
||||
x.DetectorDistance_mm(50).BeamX_pxl(1000).BeamY_pxl(1000);
|
||||
x.QSpacingForRadialInt_recipA(0.1).LowQForRadialInt_recipA(0.1).HighQForRadialInt_recipA(4);
|
||||
RadialIntegrationMappingFPGA mapping(x, 0);
|
||||
REQUIRE(mapping.GetBinNumber() == 39);
|
||||
}
|
||||
|
||||
TEST_CASE("RadialIntegrationMapping_GetBinNumber_DetectorLimit","[RadialIntegration]") {
|
||||
DiffractionExperiment x(DetectorGeometry(8, 2, 8, 36));
|
||||
x.DetectorDistance_mm(50).BeamX_pxl(1000).BeamY_pxl(1000);
|
||||
@@ -50,6 +67,15 @@ TEST_CASE("RadialIntegrationMapping_GetBinNumber_DetectorLimit","[RadialIntegrat
|
||||
REQUIRE(mapping.GetBinNumber() < 80);
|
||||
}
|
||||
|
||||
TEST_CASE("RadialIntegrationMappingFPGA_GetBinNumber_DetectorLimit","[RadialIntegration]") {
|
||||
DiffractionExperiment x(DetectorGeometry(8, 2, 8, 36));
|
||||
x.DetectorDistance_mm(50).BeamX_pxl(1000).BeamY_pxl(1000);
|
||||
|
||||
x.QSpacingForRadialInt_recipA(0.1).LowQForRadialInt_recipA(0.1).HighQForRadialInt_recipA(9.9);
|
||||
RadialIntegrationMappingFPGA mapping(x, 0);
|
||||
REQUIRE(mapping.GetBinNumber() < 80);
|
||||
}
|
||||
|
||||
TEST_CASE("RadialIntegrationMapping_GetBinToQ","[RadialIntegration]") {
|
||||
DiffractionExperiment x(DetectorGeometry(8, 2, 8, 36));
|
||||
x.DetectorDistance_mm(50).BeamX_pxl(1000).BeamY_pxl(1000);
|
||||
@@ -64,6 +90,20 @@ TEST_CASE("RadialIntegrationMapping_GetBinToQ","[RadialIntegration]") {
|
||||
REQUIRE(bin_to_q[38] == Approx(3.95));
|
||||
}
|
||||
|
||||
TEST_CASE("RadialIntegrationMappingFPGA_GetBinToQ","[RadialIntegration]") {
|
||||
DiffractionExperiment x(DetectorGeometry(8, 2, 8, 36));
|
||||
x.DetectorDistance_mm(50).BeamX_pxl(1000).BeamY_pxl(1000);
|
||||
x.QSpacingForRadialInt_recipA(0.1).LowQForRadialInt_recipA(0.1).HighQForRadialInt_recipA(4);
|
||||
|
||||
RadialIntegrationMappingFPGA mapping(x, 0);
|
||||
auto bin_to_q = mapping.GetBinToQ();
|
||||
|
||||
REQUIRE(bin_to_q[0] == Approx(0.15));
|
||||
REQUIRE(bin_to_q[1] == Approx(0.25));
|
||||
REQUIRE(bin_to_q[15] == Approx(1.65));
|
||||
REQUIRE(bin_to_q[38] == Approx(3.95));
|
||||
}
|
||||
|
||||
TEST_CASE("RadialIntegrationMapping_QToBin","[RadialIntegration]") {
|
||||
DiffractionExperiment x(DetectorGeometry(8, 2, 8, 36));
|
||||
x.DetectorDistance_mm(50).BeamX_pxl(1000).BeamY_pxl(1000);
|
||||
@@ -77,6 +117,19 @@ TEST_CASE("RadialIntegrationMapping_QToBin","[RadialIntegration]") {
|
||||
REQUIRE(mapping.QToBin(50.0) == Approx(38));
|
||||
}
|
||||
|
||||
TEST_CASE("RadialIntegrationMappingFPGA_QToBin","[RadialIntegration]") {
|
||||
DiffractionExperiment x(DetectorGeometry(8, 2, 8, 36));
|
||||
x.DetectorDistance_mm(50).BeamX_pxl(1000).BeamY_pxl(1000);
|
||||
x.QSpacingForRadialInt_recipA(0.1).LowQForRadialInt_recipA(0.1).HighQForRadialInt_recipA(4);
|
||||
|
||||
RadialIntegrationMappingFPGA mapping(x, 0);
|
||||
|
||||
REQUIRE(mapping.QToBin(0.0) == 0);
|
||||
REQUIRE(std::floor(mapping.QToBin(0.200001)) == 1);
|
||||
REQUIRE(mapping.QToBin(0.6) == Approx(5));
|
||||
REQUIRE(mapping.QToBin(50.0) == Approx(38));
|
||||
}
|
||||
|
||||
TEST_CASE("RadialIntegrationProfile","[RadialIntegration]") {
|
||||
DiffractionExperiment x(DetectorGeometry(8, 2, 8, 36));
|
||||
x.DetectorDistance_mm(50).BeamX_pxl(1000).BeamY_pxl(1000);
|
||||
|
||||
Reference in New Issue
Block a user