From 13f5052a3da131250743f664e6bb6378db62fb97 Mon Sep 17 00:00:00 2001
From: "Joachim Wuttke (h)" <j.wuttke@fz-juelich.de>
Date: Wed, 1 May 2024 18:23:02 +0200
Subject: [PATCH] persistence tests: relax accuracy requirement in view of
 other architectures

---
 Tests/Suite/Common/TestSuite.h | 114 +++++++++++++++++----------------
 1 file changed, 58 insertions(+), 56 deletions(-)

diff --git a/Tests/Suite/Common/TestSuite.h b/Tests/Suite/Common/TestSuite.h
index 03c25684830..411fadc4e63 100644
--- a/Tests/Suite/Common/TestSuite.h
+++ b/Tests/Suite/Common/TestSuite.h
@@ -41,9 +41,11 @@
 #define eps_direct_vs_python(eps_direct, eps_python) eps_python
 #endif
 
+static const double eps1 = 9e-11; // typically 5e-13 on x86_64, looser for arm64
+
 TEST(TESTNAME, FormFactors)
 {
-    const double eps = eps_direct_vs_python(2e-13, 8e-9);
+    const double eps = eps_direct_vs_python(eps1, 8e-9); // 2e-13 on x86_64
     for (const std::string& ffname : FormFactorComponents().keys()) {
         const IFormFactor* ff = FormFactorComponents().getItem(ffname)->clone();
         ASSERT(ff);
@@ -57,7 +59,7 @@ TEST(TESTNAME, FormFactors)
 
 TEST(TESTNAME, FormFactorsWithAbsorption)
 {
-    const double eps = eps_direct_vs_python(8e-13, 8e-9);
+    const double eps = eps_direct_vs_python(eps1, 8e-9); // 2e-13 on x86_64
     for (const std::string& ffname : FormFactorComponents().keys()) {
         const IFormFactor* ff = FormFactorComponents().getItem(ffname)->clone();
         ASSERT(ff);
@@ -71,7 +73,7 @@ TEST(TESTNAME, FormFactorsWithAbsorption)
 
 TEST(TESTNAME, GISASAbsorptiveSLDLayers)
 {
-    const double eps = eps_direct_vs_python(5e-13, 8e-9);
+    const double eps = eps_direct_vs_python(eps1, 8e-9);
     std::unique_ptr<const MultiLayer> sample(ExemplarySamples::createLayersWithAbsorptionBySLD());
     auto sim = test::makeSimulation::MiniGISAS(*sample);
     EXPECT_TRUE(runTest("GISASAbsorptiveSLDLayers", *sim, eps));
@@ -79,7 +81,7 @@ TEST(TESTNAME, GISASAbsorptiveSLDLayers)
 
 TEST(TESTNAME, CylindersAndPrisms)
 {
-    const double eps = eps_direct_vs_python(5e-13, 8e-9);
+    const double eps = eps_direct_vs_python(eps1, 8e-9);
     std::unique_ptr<const MultiLayer> sample(ExemplarySamples::createCylindersAndPrisms());
     auto sim = test::makeSimulation::MiniGISAS(*sample);
     EXPECT_TRUE(runTest("CylindersAndPrisms", *sim, eps));
@@ -87,7 +89,7 @@ TEST(TESTNAME, CylindersAndPrisms)
 
 TEST(TESTNAME, RadialParacrystal)
 {
-    const double eps = eps_direct_vs_python(5e-13, 8e-9);
+    const double eps = eps_direct_vs_python(eps1, 8e-9);
     std::unique_ptr<const MultiLayer> sample(ExemplarySamples::createRadialParacrystal());
     auto sim = test::makeSimulation::MiniGISAS(*sample);
     EXPECT_TRUE(runTest("RadialParacrystal", *sim, eps));
@@ -95,7 +97,7 @@ TEST(TESTNAME, RadialParacrystal)
 
 TEST(TESTNAME, HardDisk)
 {
-    const double eps = eps_direct_vs_python(5e-13, 8e-9);
+    const double eps = eps_direct_vs_python(eps1, 8e-9);
     std::unique_ptr<const MultiLayer> sample(ExemplarySamples::createHardDisk());
     auto sim = test::makeSimulation::MiniGISAS(*sample);
     EXPECT_TRUE(runTest("HardDisk", *sim, eps));
@@ -103,7 +105,7 @@ TEST(TESTNAME, HardDisk)
 
 TEST(TESTNAME, Basic2DParacrystal)
 {
-    const double eps = eps_direct_vs_python(5e-13, 8e-9);
+    const double eps = eps_direct_vs_python(eps1, 8e-9);
     for (const std::string& pdfname : Profile2DComponents().keys()) {
         const IProfile2D* pdf2 = Profile2DComponents().getItem(pdfname)->clone();
         ASSERT(pdf2);
@@ -126,7 +128,7 @@ TEST(TESTNAME, HexParacrystal)
 
 TEST(TESTNAME, Lattice1D)
 {
-    const double eps = eps_direct_vs_python(5e-13, 8e-9);
+    const double eps = eps_direct_vs_python(eps1, 8e-9);
     std::unique_ptr<const MultiLayer> sample(ExemplarySamples::createLattice1D());
     auto sim = test::makeSimulation::MiniGISAS(*sample);
     EXPECT_TRUE(runTest("Lattice1D", *sim, eps));
@@ -143,7 +145,7 @@ TEST(TESTNAME, RectParacrystal)
 
 TEST(TESTNAME, CoreShellParticle)
 {
-    const double eps = eps_direct_vs_python(5e-13, 8e-9);
+    const double eps = eps_direct_vs_python(eps1, 8e-9);
     std::unique_ptr<const MultiLayer> sample(ExemplarySamples::createCoreShellParticle());
     auto sim = test::makeSimulation::MiniGISAS(*sample);
     EXPECT_TRUE(runTest("CoreShellParticle", *sim, eps));
@@ -151,7 +153,7 @@ TEST(TESTNAME, CoreShellParticle)
 
 TEST(TESTNAME, CoreShellBoxRotateZandY)
 {
-    const double eps = eps_direct_vs_python(5e-13, 8e-9);
+    const double eps = eps_direct_vs_python(eps1, 8e-9);
     std::unique_ptr<const MultiLayer> sample(ExemplarySamples::createCoreShellBoxRotateZandY());
     auto sim = test::makeSimulation::MiniGISAS(*sample);
     EXPECT_TRUE(runTest("CoreShellBoxRotateZandY", *sim, eps));
@@ -159,7 +161,7 @@ TEST(TESTNAME, CoreShellBoxRotateZandY)
 
 TEST(TESTNAME, MultiLayerWithRoughness)
 {
-    const double eps = eps_direct_vs_python(5e-13, 8e-9);
+    const double eps = eps_direct_vs_python(eps1, 8e-9);
     std::unique_ptr<const MultiLayer> sample(ExemplarySamples::createMultiLayerWithRoughness());
     auto sim = test::makeSimulation::MiniGISAS(*sample);
     EXPECT_TRUE(runTest("MultiLayerWithRoughness", *sim, eps));
@@ -167,7 +169,7 @@ TEST(TESTNAME, MultiLayerWithRoughness)
 
 TEST(TESTNAME, SquareLattice2D)
 {
-    const double eps = eps_direct_vs_python(5e-13, 8e-9);
+    const double eps = eps_direct_vs_python(eps1, 8e-9);
     std::unique_ptr<const MultiLayer> sample(ExemplarySamples::createSquareLattice2D());
     auto sim = test::makeSimulation::MiniGISAS(*sample);
     EXPECT_TRUE(runTest("SquareLattice2D", *sim, eps));
@@ -175,7 +177,7 @@ TEST(TESTNAME, SquareLattice2D)
 
 TEST(TESTNAME, CenteredSquareLattice2D)
 {
-    const double eps = eps_direct_vs_python(5e-13, 8e-9);
+    const double eps = eps_direct_vs_python(eps1, 8e-9);
     std::unique_ptr<const MultiLayer> sample(ExemplarySamples::createCenteredSquareLattice2D());
     auto sim = test::makeSimulation::MiniGISAS(*sample);
     EXPECT_TRUE(runTest("CenteredSquareLattice2D", *sim, eps));
@@ -183,7 +185,7 @@ TEST(TESTNAME, CenteredSquareLattice2D)
 
 TEST(TESTNAME, RotatedSquareLattice2D)
 {
-    const double eps = eps_direct_vs_python(5e-13, 8e-9);
+    const double eps = eps_direct_vs_python(eps1, 8e-9);
     std::unique_ptr<const MultiLayer> sample(ExemplarySamples::createRotatedSquareLattice2D());
     auto sim = test::makeSimulation::MiniGISAS(*sample);
     EXPECT_TRUE(runTest("RotatedSquareLattice2D", *sim, eps));
@@ -191,7 +193,7 @@ TEST(TESTNAME, RotatedSquareLattice2D)
 
 TEST(TESTNAME, FiniteSquareLattice2D)
 {
-    const double eps = eps_direct_vs_python(5e-13, 8e-9);
+    const double eps = eps_direct_vs_python(eps1, 8e-9);
     std::unique_ptr<const MultiLayer> sample(ExemplarySamples::createFiniteSquareLattice2D());
     auto sim = test::makeSimulation::MiniGISAS(*sample);
     EXPECT_TRUE(runTest("FiniteSquareLattice2D", *sim, eps));
@@ -199,7 +201,7 @@ TEST(TESTNAME, FiniteSquareLattice2D)
 
 TEST(TESTNAME, RotatedPyramids)
 {
-    const double eps = eps_direct_vs_python(5e-13, 8e-9);
+    const double eps = eps_direct_vs_python(eps1, 8e-9);
     std::unique_ptr<const MultiLayer> sample(ExemplarySamples::createRotatedPyramids());
     auto sim = test::makeSimulation::MiniGISAS(*sample);
     EXPECT_TRUE(runTest("RotatedPyramids", *sim, eps));
@@ -207,7 +209,7 @@ TEST(TESTNAME, RotatedPyramids)
 
 TEST(TESTNAME, ThickAbsorptiveSampleWithRoughness)
 {
-    const double eps = eps_direct_vs_python(5e-4, 5e-4); // issue #817 (previously 5e-13, 8e-9)
+    const double eps = eps_direct_vs_python(5e-4, 5e-4); // issue #817 (previously eps1, 8e-9)
     std::unique_ptr<const MultiLayer> sample(ExemplarySamples::createThickAbsorptiveSample());
     auto sim = test::makeSimulation::ExtraLongWavelengthGISAS(*sample);
     EXPECT_TRUE(runTest("ThickAbsorptiveSampleWithRoughness", *sim, eps));
@@ -215,7 +217,7 @@ TEST(TESTNAME, ThickAbsorptiveSampleWithRoughness)
 
 TEST(TESTNAME, Compound)
 {
-    const double eps = eps_direct_vs_python(5e-13, 8e-9);
+    const double eps = eps_direct_vs_python(eps1, 8e-9);
     std::unique_ptr<const MultiLayer> sample(ExemplarySamples::createCompound());
     auto sim = test::makeSimulation::MiniGISAS(*sample);
     EXPECT_TRUE(runTest("Compound", *sim, eps));
@@ -223,7 +225,7 @@ TEST(TESTNAME, Compound)
 
 TEST(TESTNAME, CompoundPlus)
 {
-    const double eps = eps_direct_vs_python(5e-13, 8e-9);
+    const double eps = eps_direct_vs_python(eps1, 8e-9);
     std::unique_ptr<const MultiLayer> sample(ExemplarySamples::createCompoundPlus());
     auto sim = test::makeSimulation::MiniGISAS(*sample);
     EXPECT_TRUE(runTest("CompoundPlus", *sim, eps));
@@ -231,7 +233,7 @@ TEST(TESTNAME, CompoundPlus)
 
 TEST(TESTNAME, BoxCompositionRotateX)
 {
-    const double eps = eps_direct_vs_python(5e-13, 8e-9);
+    const double eps = eps_direct_vs_python(eps1, 8e-9);
     std::unique_ptr<const MultiLayer> sample(ExemplarySamples::createBoxCompositionRotateX());
     auto sim = test::makeSimulation::MiniGISAS(*sample);
     EXPECT_TRUE(runTest("BoxCompositionRotateX", *sim, eps));
@@ -239,7 +241,7 @@ TEST(TESTNAME, BoxCompositionRotateX)
 
 TEST(TESTNAME, BoxCompositionRotateY)
 {
-    const double eps = eps_direct_vs_python(5e-13, 8e-9);
+    const double eps = eps_direct_vs_python(eps1, 8e-9);
     std::unique_ptr<const MultiLayer> sample(ExemplarySamples::createBoxCompositionRotateY());
     auto sim = test::makeSimulation::MiniGISAS(*sample);
     EXPECT_TRUE(runTest("BoxCompositionRotateY", *sim, eps));
@@ -247,7 +249,7 @@ TEST(TESTNAME, BoxCompositionRotateY)
 
 TEST(TESTNAME, BoxCompositionRotateZ)
 {
-    const double eps = eps_direct_vs_python(6e-13, 8e-9);
+    const double eps = eps_direct_vs_python(eps1, 8e-9); // 2e-13 on x86_64
     std::unique_ptr<const MultiLayer> sample(ExemplarySamples::createBoxCompositionRotateZ());
     auto sim = test::makeSimulation::MiniGISAS(*sample);
     EXPECT_TRUE(runTest("BoxCompositionRotateZ", *sim, eps));
@@ -255,7 +257,7 @@ TEST(TESTNAME, BoxCompositionRotateZ)
 
 TEST(TESTNAME, BoxCompositionRotateZandY)
 {
-    const double eps = eps_direct_vs_python(5e-13, 8e-9);
+    const double eps = eps_direct_vs_python(eps1, 8e-9);
     std::unique_ptr<const MultiLayer> sample(ExemplarySamples::createBoxCompositionRotateZandY());
     auto sim = test::makeSimulation::MiniGISAS(*sample);
     EXPECT_TRUE(runTest("BoxCompositionRotateZandY", *sim, eps));
@@ -263,7 +265,7 @@ TEST(TESTNAME, BoxCompositionRotateZandY)
 
 TEST(TESTNAME, BoxStackComposition)
 {
-    const double eps = eps_direct_vs_python(5e-13, 8e-9);
+    const double eps = eps_direct_vs_python(eps1, 8e-9);
     std::unique_ptr<const MultiLayer> sample(ExemplarySamples::createBoxStackComposition());
     auto sim = test::makeSimulation::MiniGISAS(*sample);
     EXPECT_TRUE(runTest("BoxStackComposition", *sim, eps));
@@ -271,7 +273,7 @@ TEST(TESTNAME, BoxStackComposition)
 
 TEST(TESTNAME, MultipleLayout)
 {
-    const double eps = eps_direct_vs_python(5e-13, 8e-9);
+    const double eps = eps_direct_vs_python(eps1, 8e-9);
     std::unique_ptr<const MultiLayer> sample(ExemplarySamples::createMultipleLayout());
     auto sim = test::makeSimulation::MiniGISAS(*sample);
     EXPECT_TRUE(runTest("MultipleLayout", *sim, eps));
@@ -279,7 +281,7 @@ TEST(TESTNAME, MultipleLayout)
 
 TEST(TESTNAME, ApproximationDA)
 {
-    const double eps = eps_direct_vs_python(5e-13, 8e-9);
+    const double eps = eps_direct_vs_python(eps1, 8e-9);
     std::unique_ptr<const MultiLayer> sample(ExemplarySamples::createSizeDistributionDAModel());
     auto sim = test::makeSimulation::MiniGISAS(*sample);
     EXPECT_TRUE(runTest("ApproximationDA", *sim, eps));
@@ -287,7 +289,7 @@ TEST(TESTNAME, ApproximationDA)
 
 TEST(TESTNAME, ApproximationLMA)
 {
-    const double eps = eps_direct_vs_python(5e-13, 8e-9);
+    const double eps = eps_direct_vs_python(eps1, 8e-9);
     std::unique_ptr<const MultiLayer> sample(ExemplarySamples::createSizeDistributionLMAModel());
     auto sim = test::makeSimulation::MiniGISAS(*sample);
     EXPECT_TRUE(runTest("ApproximationLMA", *sim, eps));
@@ -295,7 +297,7 @@ TEST(TESTNAME, ApproximationLMA)
 
 TEST(TESTNAME, ApproximationSSCA)
 {
-    const double eps = eps_direct_vs_python(5e-13, 8e-9);
+    const double eps = eps_direct_vs_python(eps1, 8e-9);
     std::unique_ptr<const MultiLayer> sample(ExemplarySamples::createSizeDistributionSSCAModel());
     auto sim = test::makeSimulation::MiniGISAS(*sample);
     EXPECT_TRUE(runTest("ApproximationSSCA", *sim, eps));
@@ -303,7 +305,7 @@ TEST(TESTNAME, ApproximationSSCA)
 
 TEST(TESTNAME, CosineRipple)
 {
-    const double eps = eps_direct_vs_python(5e-13, 8e-9);
+    const double eps = eps_direct_vs_python(eps1, 8e-9);
     std::unique_ptr<const MultiLayer> sample(ExemplarySamples::createCosineRipple());
     auto sim = test::makeSimulation::MiniGISAS(*sample);
     EXPECT_TRUE(runTest("CosineRipple", *sim, eps));
@@ -311,7 +313,7 @@ TEST(TESTNAME, CosineRipple)
 
 TEST(TESTNAME, TriangularRipple)
 {
-    const double eps = eps_direct_vs_python(5e-13, 8e-9);
+    const double eps = eps_direct_vs_python(eps1, 8e-9);
     std::unique_ptr<const MultiLayer> sample(ExemplarySamples::createTriangularRipple());
     auto sim = test::makeSimulation::MiniGISAS(*sample);
     EXPECT_TRUE(runTest("TriangularRipple", *sim, eps));
@@ -319,7 +321,7 @@ TEST(TESTNAME, TriangularRipple)
 
 TEST(TESTNAME, AsymRipple)
 {
-    const double eps = eps_direct_vs_python(5e-13, 8e-9);
+    const double eps = eps_direct_vs_python(eps1, 8e-9);
     std::unique_ptr<const MultiLayer> sample(ExemplarySamples::createAsymRipple());
     auto sim = test::makeSimulation::MiniGISAS(*sample);
     EXPECT_TRUE(runTest("AsymRipple", *sim, eps));
@@ -327,7 +329,7 @@ TEST(TESTNAME, AsymRipple)
 
 TEST(TESTNAME, Mesocrystal)
 {
-    const double eps = eps_direct_vs_python(5e-13, 8e-9);
+    const double eps = eps_direct_vs_python(eps1, 8e-9);
     std::unique_ptr<const MultiLayer> sample(ExemplarySamples::createMesocrystal());
     auto sim = test::makeSimulation::MiniGISAS(*sample);
     EXPECT_TRUE(runTest("Mesocrystal", *sim, eps));
@@ -335,7 +337,7 @@ TEST(TESTNAME, Mesocrystal)
 
 TEST(TESTNAME, MesocrystalPlus)
 {
-    const double eps = eps_direct_vs_python(5e-13, 8e-9);
+    const double eps = eps_direct_vs_python(eps1, 8e-9);
     std::unique_ptr<const MultiLayer> sample(ExemplarySamples::createMesocrystalPlus());
     auto sim = test::makeSimulation::MiniGISAS(*sample);
     EXPECT_TRUE(runTest("MesocrystalPlus", *sim, eps));
@@ -343,7 +345,7 @@ TEST(TESTNAME, MesocrystalPlus)
 
 TEST(TESTNAME, CustomMorphology)
 {
-    const double eps = eps_direct_vs_python(5e-13, 8e-9);
+    const double eps = eps_direct_vs_python(eps1, 8e-9);
     std::unique_ptr<const MultiLayer> sample(ExemplarySamples::createCustomMorphology());
     auto sim = test::makeSimulation::MiniGISAS(*sample);
     EXPECT_TRUE(runTest("CustomMorphology", *sim, eps));
@@ -351,7 +353,7 @@ TEST(TESTNAME, CustomMorphology)
 
 TEST(TESTNAME, TransformBox)
 {
-    const double eps = eps_direct_vs_python(5e-13, 8e-9);
+    const double eps = eps_direct_vs_python(eps1, 8e-9);
     std::unique_ptr<const MultiLayer> sample(ExemplarySamples::createTransformBox());
     auto sim = test::makeSimulation::MiniGISAS(*sample);
     EXPECT_TRUE(runTest("TransformBox", *sim, eps));
@@ -359,7 +361,7 @@ TEST(TESTNAME, TransformBox)
 
 TEST(TESTNAME, MagneticParticleZeroField)
 {
-    const double eps = eps_direct_vs_python(5e-13, 8e-9);
+    const double eps = eps_direct_vs_python(eps1, 8e-9);
     std::unique_ptr<const MultiLayer> sample(ExemplarySamples::createMagneticParticleZeroField());
     auto sim = test::makeSimulation::MiniGISAS(*sample);
     EXPECT_TRUE(runTest("MagneticParticleZeroField", *sim, eps));
@@ -367,7 +369,7 @@ TEST(TESTNAME, MagneticParticleZeroField)
 
 TEST(TESTNAME, SlicedComposition)
 {
-    const double eps = eps_direct_vs_python(5e-13, 8e-9);
+    const double eps = eps_direct_vs_python(eps1, 8e-9);
     std::unique_ptr<const MultiLayer> sample(ExemplarySamples::createSlicedComposition());
     auto sim = test::makeSimulation::MiniGISAS(*sample);
     EXPECT_TRUE(runTest("SlicedComposition", *sim, eps));
@@ -375,7 +377,7 @@ TEST(TESTNAME, SlicedComposition)
 
 TEST(TESTNAME, MagneticSubstrateZeroField)
 {
-    const double eps = eps_direct_vs_python(5e-13, 8e-9);
+    const double eps = eps_direct_vs_python(eps1, 8e-9);
     std::unique_ptr<const MultiLayer> sample(ExemplarySamples::createMagneticSubstrateZeroField());
     auto sim = test::makeSimulation::MiniZPolarizedGISAS(*sample, "PP");
     EXPECT_TRUE(runTest("MagneticSubstrateZeroField", *sim, eps));
@@ -383,7 +385,7 @@ TEST(TESTNAME, MagneticSubstrateZeroField)
 
 TEST(TESTNAME, MagneticRotation)
 {
-    const double eps = eps_direct_vs_python(5e-13, 8e-9);
+    const double eps = eps_direct_vs_python(eps1, 8e-9);
     std::unique_ptr<const MultiLayer> sample(ExemplarySamples::createMagneticRotation());
     auto sim = test::makeSimulation::MiniZPolarizedGISAS(*sample, "PM");
     EXPECT_TRUE(runTest("MagneticRotationZPM", *sim, eps));
@@ -391,7 +393,7 @@ TEST(TESTNAME, MagneticRotation)
 
 TEST(TESTNAME, MagneticRotationUnpol)
 {
-    const double eps = eps_direct_vs_python(5e-13, 8e-9);
+    const double eps = eps_direct_vs_python(eps1, 8e-9);
     std::unique_ptr<const MultiLayer> sample(ExemplarySamples::createMagneticRotation());
     auto sim = test::makeSimulation::MiniGISAS(*sample);
     EXPECT_TRUE(runTest("MagneticRotationUnpol", *sim, eps));
@@ -399,7 +401,7 @@ TEST(TESTNAME, MagneticRotationUnpol)
 
 TEST(TESTNAME, MagneticSpheres)
 {
-    const double eps = eps_direct_vs_python(4e-3, 8e-9); // TODO mac-arm restore 5e-13
+    const double eps = eps_direct_vs_python(4e-3, 8e-9); // TODO mac-arm restore eps1
     std::unique_ptr<const MultiLayer> sample(ExemplarySamples::createMagneticSpheres());
     auto sim = test::makeSimulation::MiniZPolarizedGISAS(*sample, "PM");
     EXPECT_TRUE(runTest("MagneticSpheres", *sim, eps));
@@ -407,7 +409,7 @@ TEST(TESTNAME, MagneticSpheres)
 
 TEST(TESTNAME, MagneticCylinders)
 {
-    const double eps = eps_direct_vs_python(5e-13, 8e-9);
+    const double eps = eps_direct_vs_python(eps1, 8e-9);
     for (const std::string polCase : {"PP", "MP", "PM", "MM"}) {
         std::unique_ptr<const MultiLayer> sample(ExemplarySamples::createMagneticCylinders());
         auto sim = test::makeSimulation::MiniZPolarizedGISAS(*sample, polCase);
@@ -417,7 +419,7 @@ TEST(TESTNAME, MagneticCylinders)
 
 TEST(TESTNAME, MagneticSpheresInMagLayer)
 {
-    const double eps = eps_direct_vs_python(4e-3, 8e-9); // TODO mac-arm restore 5e-13
+    const double eps = eps_direct_vs_python(4e-3, 8e-9); // TODO mac-arm restore eps1
     for (const std::string polCase : {"PP", "MP"}) {
         std::unique_ptr<const MultiLayer> sample(ExemplarySamples::createMagneticLayer());
         auto sim = test::makeSimulation::MiniZPolarizedGISAS(*sample, polCase);
@@ -427,7 +429,7 @@ TEST(TESTNAME, MagneticSpheresInMagLayer)
 
 TEST(TESTNAME, BeamDivergence)
 {
-    const double eps = eps_direct_vs_python(5e-13, 8e-9);
+    const double eps = eps_direct_vs_python(eps1, 8e-9);
     std::unique_ptr<const MultiLayer> sample(ExemplarySamples::createCylindersInBA());
     auto sim = test::makeSimulation::MiniGISASBeamDivergence(*sample);
     EXPECT_TRUE(runTest("BeamDivergence", *sim, eps));
@@ -443,7 +445,7 @@ TEST(TESTNAME, DetectorResolution)
 
 TEST(TESTNAME, SimulationWithMasks)
 {
-    const double eps = eps_direct_vs_python(5e-13, 8e-9);
+    const double eps = eps_direct_vs_python(eps1, 8e-9);
     std::unique_ptr<const MultiLayer> sample(ExemplarySamples::createCylindersAndPrisms());
     auto sim = test::makeSimulation::GISASWithMasks(*sample);
     EXPECT_TRUE(runTest("SimulationWithMasks", *sim, eps));
@@ -458,7 +460,7 @@ TEST(TESTNAME, LargeCylindersMonteCarlo)
 
 TEST(TESTNAME, RectDetWithRoi)
 {
-    const double eps = eps_direct_vs_python(5e-13, 8e-9);
+    const double eps = eps_direct_vs_python(eps1, 8e-9);
     std::unique_ptr<const MultiLayer> sample(ExemplarySamples::createCylindersAndPrisms());
     auto sim = test::makeSimulation::RectDetWithRoi(*sample);
     EXPECT_TRUE(runTest("RectDetWithRoi", *sim, eps));
@@ -466,7 +468,7 @@ TEST(TESTNAME, RectDetWithRoi)
 
 TEST(TESTNAME, BoxesWithSpecular)
 {
-    const double eps = eps_direct_vs_python(5e-13, 8e-9);
+    const double eps = eps_direct_vs_python(eps1, 8e-9);
     std::unique_ptr<const MultiLayer> sample(ExemplarySamples::createBoxesSquareLattice2D());
     auto sim = test::makeSimulation::MiniGISASSpecularPeak(*sample);
     EXPECT_TRUE(runTest("BoxesWithSpecular", *sim, eps));
@@ -474,7 +476,7 @@ TEST(TESTNAME, BoxesWithSpecular)
 
 TEST(TESTNAME, ConstantBackground)
 {
-    const double eps = eps_direct_vs_python(5e-13, 8e-9);
+    const double eps = eps_direct_vs_python(eps1, 8e-9);
     auto* sample = ExemplarySamples::createCylindersInBA();
     auto sim = test::makeSimulation::MiniGISAS(*sample);
     sim->setBackground(ConstantBackground(1e3));
@@ -483,7 +485,7 @@ TEST(TESTNAME, ConstantBackground)
 
 TEST(TESTNAME, HomogeneousTiNiSample)
 {
-    const double eps = eps_direct_vs_python(5e-13, 8e-9);
+    const double eps = eps_direct_vs_python(eps1, 8e-9);
     auto* sample = ExemplarySamples::createHomogeneousMultilayer();
     auto sim = test::makeSimulation::BasicSpecular(*sample, false);
     EXPECT_TRUE(runTest("HomogeneousTiNiSample", *sim, eps));
@@ -491,7 +493,7 @@ TEST(TESTNAME, HomogeneousTiNiSample)
 
 TEST(TESTNAME, HomogeneousTiNiSampleWithAbsorption)
 {
-    const double eps = eps_direct_vs_python(5e-13, 8e-9);
+    const double eps = eps_direct_vs_python(eps1, 8e-9);
     auto* sample = ExemplarySamples::createPlainMultiLayerBySLD();
     auto sim = test::makeSimulation::BasicSpecular(*sample, false);
     EXPECT_TRUE(runTest("HomogeneousTiNiSampleWithAbsorption", *sim, eps));
@@ -506,7 +508,7 @@ TEST(TESTNAME, RoughnessInSpecular)
 
 TEST(TESTNAME, GaussianBeamFootprint)
 {
-    const double eps = eps_direct_vs_python(5e-13, 8e-9);
+    const double eps = eps_direct_vs_python(eps1, 8e-9);
     auto* sample = ExemplarySamples::createHomogeneousMultilayer();
     auto sim = test::makeSimulation::SpecularWithGaussianBeam(*sample);
     EXPECT_TRUE(runTest("GaussianBeamFootprint", *sim, eps));
@@ -514,7 +516,7 @@ TEST(TESTNAME, GaussianBeamFootprint)
 
 TEST(TESTNAME, SquareBeamFootprint)
 {
-    const double eps = eps_direct_vs_python(5e-13, 8e-9);
+    const double eps = eps_direct_vs_python(eps1, 8e-9);
     auto* sample = ExemplarySamples::createHomogeneousMultilayer();
     auto sim = test::makeSimulation::SpecularWithSquareBeam(*sample);
     EXPECT_TRUE(runTest("SquareBeamFootprint", *sim, eps));
@@ -522,7 +524,7 @@ TEST(TESTNAME, SquareBeamFootprint)
 
 TEST(TESTNAME, SpecularDivergentBeam)
 {
-    const double eps = eps_direct_vs_python(5e-13, 8e-9);
+    const double eps = eps_direct_vs_python(eps1, 8e-9);
     auto* sample = ExemplarySamples::createHomogeneousMultilayer();
     auto sim = test::makeSimulation::SpecularDivergentBeam(*sample);
     EXPECT_TRUE(runTest("SpecularDivergentBeam", *sim, eps));
@@ -536,7 +538,7 @@ TEST(TESTNAME, SpecularDivergentBeam)
 
 TEST(TESTNAME, RelativeResolutionTOF)
 {
-    const double eps = eps_direct_vs_python(5e-13, 8e-9);
+    const double eps = eps_direct_vs_python(eps1, 8e-9);
     auto* sample = ExemplarySamples::createPlainMultiLayerBySLD();
     auto sim = test::makeSimulation::TOFRWithRelativeResolution(*sample);
     EXPECT_TRUE(runTest("RelativeResolutionTOF", *sim, eps));
@@ -544,7 +546,7 @@ TEST(TESTNAME, RelativeResolutionTOF)
 
 TEST(TESTNAME, SphericalDetWithRoi)
 {
-    const double eps = eps_direct_vs_python(5e-13, 8e-9);
+    const double eps = eps_direct_vs_python(eps1, 8e-9);
     std::unique_ptr<const MultiLayer> sample(ExemplarySamples::createCylindersAndPrisms());
     auto sim = test::makeSimulation::SphericalDetWithRoi(*sample);
     EXPECT_TRUE(runTest("SphericalDetWithRoi", *sim, eps));
@@ -575,7 +577,7 @@ TEST(TESTNAME, DepthprobeSimpleLayer)
 
 TEST(TESTNAME, OffspecResonator)
 {
-    const double eps = eps_direct_vs_python(5e-13, 8e-9);
+    const double eps = eps_direct_vs_python(eps1, 8e-9);
     auto* sample = ExemplarySamples::createResonator();
     auto sim = test::makeSimulation::MiniOffspec(*sample);
     EXPECT_TRUE(runTest("OffspecResonator", *sim, eps));
-- 
GitLab