From a09fb6a1960124670dcfa01ba845df20fe270bd9 Mon Sep 17 00:00:00 2001
From: "Joachim Wuttke (l)" <j.wuttke@fz-juelich.de>
Date: Sat, 6 Aug 2016 09:27:10 +0200
Subject: [PATCH] Persistence test now able to read multiple data and reference
 files; detects missing data and reference files.

---
 Core/CMakeLists.txt                           |   1 -
 Core/Tools/Utils.cpp                          |   6 ++
 Core/Tools/Utils.h                            |   4 +-
 .../PyCore/persistence/PyPersistenceTest.cpp  |  61 ++++++++++++++----
 Tests/Functional/TestMachinery/TestUtils.cpp  |  31 +++++++++
 Tests/Functional/TestMachinery/TestUtils.h    |  30 +++++++++
 ... => AccessingSimulationResults.ref.int.gz} | Bin 314435 -> 314439 bytes
 ...llFormFactorsAvailable.AnisoPyramid.int.gz | Bin 76327 -> 76327 bytes
 .../AllFormFactorsAvailable.Box.int.gz        | Bin 77605 -> 77605 bytes
 .../AllFormFactorsAvailable.Cone.int.gz       | Bin 76817 -> 76817 bytes
 .../AllFormFactorsAvailable.Cone6.int.gz      | Bin 76413 -> 76413 bytes
 ...lFormFactorsAvailable.Cuboctahedron.int.gz | Bin 77338 -> 77338 bytes
 .../AllFormFactorsAvailable.Cylinder.int.gz   | Bin 77567 -> 77567 bytes
 ...llFormFactorsAvailable.Dodecahedron.int.gz | Bin 77096 -> 77096 bytes
 ...actorsAvailable.EllipsoidalCylinder.int.gz | Bin 77807 -> 77807 bytes
 .../AllFormFactorsAvailable.FullSphere.int.gz | Bin 76382 -> 76382 bytes
 ...llFormFactorsAvailable.FullSpheroid.int.gz | Bin 76202 -> 76202 bytes
 ...lFormFactorsAvailable.HemiEllipsoid.int.gz | Bin 75459 -> 75459 bytes
 ...AllFormFactorsAvailable.Icosahedron.int.gz | Bin 76925 -> 76925 bytes
 .../AllFormFactorsAvailable.Prism3.int.gz     | Bin 77295 -> 77295 bytes
 .../AllFormFactorsAvailable.Prism6.int.gz     | Bin 77365 -> 77365 bytes
 .../AllFormFactorsAvailable.Pyramid.int.gz    | Bin 76171 -> 76171 bytes
 .../AllFormFactorsAvailable.Ripple1.int.gz    | Bin 77254 -> 77254 bytes
 .../AllFormFactorsAvailable.Ripple2.int.gz    | Bin 82372 -> 82372 bytes
 ...AllFormFactorsAvailable.Tetrahedron.int.gz | Bin 76108 -> 76108 bytes
 ...lFormFactorsAvailable.TruncatedCube.int.gz | Bin 77705 -> 77705 bytes
 ...ormFactorsAvailable.TruncatedSphere.int.gz | Bin 75411 -> 75411 bytes
 ...mFactorsAvailable.TruncatedSpheroid.int.gz | Bin 75595 -> 75595 bytes
 ...onDA.int.gz => ApproximationDA.ref.int.gz} | Bin 317741 -> 317745 bytes
 ...LMA.int.gz => ApproximationLMA.ref.int.gz} | Bin 317909 -> 317913 bytes
 ...CA.int.gz => ApproximationSSCA.ref.int.gz} | Bin 318060 -> 318064 bytes
 ...gence.int.gz => BeamDivergence.ref.int.gz} | Bin 80304 -> 80308 bytes
 ...cles.int.gz => BuriedParticles.ref.int.gz} | Bin 315182 -> 315186 bytes
 ...t.gz => CoreShellNanoparticles.ref.int.gz} | Bin 314662 -> 314666 bytes
 ....int.gz => CorrelatedRoughness.ref.int.gz} | Bin 307272 -> 307276 bytes
 ... => CosineRipplesAtRectLattice.ref.int.gz} | Bin 75828 -> 75832 bytes
 ...tor.int.gz => CustomFormFactor.ref.int.gz} | Bin 78124 -> 78128 bytes
 ...s.int.gz => CylindersAndPrisms.ref.int.gz} | Bin 76177 -> 76181 bytes
 ...rsInBA.int.gz => CylindersInBA.ref.int.gz} | Bin 316219 -> 316223 bytes
 ...DWBA.int.gz => CylindersInDWBA.ref.int.gz} | Bin 314424 -> 314428 bytes
 ... CylindersWithSizeDistribution.ref.int.gz} | Bin 319530 -> 319534 bytes
 ... => DetectorResolutionFunction.ref.int.gz} | Bin 80312 -> 80316 bytes
 ... => HexagonalLatticesWithBasis.ref.int.gz} | Bin 323342 -> 323346 bytes
 ...nt.gz => Interference1DLattice.ref.int.gz} | Bin 311035 -> 311039 bytes
 ...nterference1DRadialParaCrystal.ref.int.gz} | Bin 314534 -> 314538 bytes
 ...ference2DCenteredSquareLattice.ref.int.gz} | Bin 325276 -> 325280 bytes
 ...erference2DLatticeSumOfRotated.ref.int.gz} | Bin 82078 -> 82082 bytes
 ...z => Interference2DParaCrystal.ref.int.gz} | Bin 315492 -> 315496 bytes
 ...rference2DRotatedSquareLattice.ref.int.gz} | Bin 322278 -> 322282 bytes
 ...=> Interference2DSquareLattice.ref.int.gz} | Bin 317796 -> 317800 bytes
 .../LargeParticlesFormFactor.LargeAn.int.gz   | Bin 323936 -> 323936 bytes
 .../LargeParticlesFormFactor.LargeMC.int.gz   | Bin 323496 -> 323496 bytes
 .../LargeParticlesFormFactor.SmallAn.int.gz   | Bin 319775 -> 319775 bytes
 .../LargeParticlesFormFactor.SmallMC.int.gz   | Bin 325708 -> 325708 bytes
 ...nt.gz => OffSpecularSimulation.ref.int.gz} | Bin 333796 -> 333800 bytes
 .../RectangularDetector.difference.int.gz     | Bin 7961220 -> 7961220 bytes
 .../RectangularDetector.rectangular.int.gz    | Bin 8050388 -> 8050388 bytes
 .../RectangularDetector.spherical.int.gz      | Bin 8050724 -> 8050724 bytes
 ...g.int.gz => RectangularGrating.ref.int.gz} | Bin 323765 -> 323769 bytes
 ...mids.int.gz => RotatedPyramids.ref.int.gz} | Bin 309756 -> 309760 bytes
 ....int.gz => SpheresAtHexLattice.ref.int.gz} | Bin 320255 -> 320259 bytes
 ...ple.int.gz => TriangularRipple.ref.int.gz} | Bin 1254459 -> 1254463 bytes
 ...fCylindersWithSizeDistribution.ref.int.gz} | Bin 319707 -> 319711 bytes
 Wrap/python/plot_utils.py                     |   2 +-
 auto/Wrap/libBornAgainCore.py                 |  20 ------
 65 files changed, 120 insertions(+), 35 deletions(-)
 create mode 100644 Tests/Functional/TestMachinery/TestUtils.cpp
 create mode 100644 Tests/Functional/TestMachinery/TestUtils.h
 rename Tests/ReferenceData/Persistence/{AccessingSimulationResults.int.gz => AccessingSimulationResults.ref.int.gz} (99%)
 rename Tests/ReferenceData/Persistence/{ApproximationDA.int.gz => ApproximationDA.ref.int.gz} (99%)
 rename Tests/ReferenceData/Persistence/{ApproximationLMA.int.gz => ApproximationLMA.ref.int.gz} (99%)
 rename Tests/ReferenceData/Persistence/{ApproximationSSCA.int.gz => ApproximationSSCA.ref.int.gz} (99%)
 rename Tests/ReferenceData/Persistence/{BeamDivergence.int.gz => BeamDivergence.ref.int.gz} (97%)
 rename Tests/ReferenceData/Persistence/{BuriedParticles.int.gz => BuriedParticles.ref.int.gz} (99%)
 rename Tests/ReferenceData/Persistence/{CoreShellNanoparticles.int.gz => CoreShellNanoparticles.ref.int.gz} (99%)
 rename Tests/ReferenceData/Persistence/{CorrelatedRoughness.int.gz => CorrelatedRoughness.ref.int.gz} (99%)
 rename Tests/ReferenceData/Persistence/{CosineRipplesAtRectLattice.int.gz => CosineRipplesAtRectLattice.ref.int.gz} (98%)
 rename Tests/ReferenceData/Persistence/{CustomFormFactor.int.gz => CustomFormFactor.ref.int.gz} (98%)
 rename Tests/ReferenceData/Persistence/{CylindersAndPrisms.int.gz => CylindersAndPrisms.ref.int.gz} (98%)
 rename Tests/ReferenceData/Persistence/{CylindersInBA.int.gz => CylindersInBA.ref.int.gz} (99%)
 rename Tests/ReferenceData/Persistence/{CylindersInDWBA.int.gz => CylindersInDWBA.ref.int.gz} (99%)
 rename Tests/ReferenceData/Persistence/{CylindersWithSizeDistribution.int.gz => CylindersWithSizeDistribution.ref.int.gz} (99%)
 rename Tests/ReferenceData/Persistence/{DetectorResolutionFunction.int.gz => DetectorResolutionFunction.ref.int.gz} (98%)
 rename Tests/ReferenceData/Persistence/{HexagonalLatticesWithBasis.int.gz => HexagonalLatticesWithBasis.ref.int.gz} (99%)
 rename Tests/ReferenceData/Persistence/{Interference1DLattice.int.gz => Interference1DLattice.ref.int.gz} (99%)
 rename Tests/ReferenceData/Persistence/{Interference1DRadialParaCrystal.int.gz => Interference1DRadialParaCrystal.ref.int.gz} (99%)
 rename Tests/ReferenceData/Persistence/{Interference2DCenteredSquareLattice.int.gz => Interference2DCenteredSquareLattice.ref.int.gz} (99%)
 rename Tests/ReferenceData/Persistence/{Interference2DLatticeSumOfRotated.int.gz => Interference2DLatticeSumOfRotated.ref.int.gz} (98%)
 rename Tests/ReferenceData/Persistence/{Interference2DParaCrystal.int.gz => Interference2DParaCrystal.ref.int.gz} (99%)
 rename Tests/ReferenceData/Persistence/{Interference2DRotatedSquareLattice.int.gz => Interference2DRotatedSquareLattice.ref.int.gz} (99%)
 rename Tests/ReferenceData/Persistence/{Interference2DSquareLattice.int.gz => Interference2DSquareLattice.ref.int.gz} (99%)
 rename Tests/ReferenceData/Persistence/{OffSpecularSimulation.int.gz => OffSpecularSimulation.ref.int.gz} (99%)
 rename Tests/ReferenceData/Persistence/{RectangularGrating.int.gz => RectangularGrating.ref.int.gz} (99%)
 rename Tests/ReferenceData/Persistence/{RotatedPyramids.int.gz => RotatedPyramids.ref.int.gz} (99%)
 rename Tests/ReferenceData/Persistence/{SpheresAtHexLattice.int.gz => SpheresAtHexLattice.ref.int.gz} (99%)
 rename Tests/ReferenceData/Persistence/{TriangularRipple.int.gz => TriangularRipple.ref.int.gz} (99%)
 rename Tests/ReferenceData/Persistence/{TwoTypesOfCylindersWithSizeDistribution.int.gz => TwoTypesOfCylindersWithSizeDistribution.ref.int.gz} (99%)

diff --git a/Core/CMakeLists.txt b/Core/CMakeLists.txt
index b4e64ca6677..8bdd4d2af43 100644
--- a/Core/CMakeLists.txt
+++ b/Core/CMakeLists.txt
@@ -71,7 +71,6 @@ if(BORNAGAIN_PYTHON)
             ${WRAP_DIR}/swig/ignores.i
             ${WRAP_DIR}/swig/shared_pointers.i
             ${WRAP_DIR}/swig/warnings.i
-            ${WRAP_DIR}/swig/CorePython.py
             )
         foreach(FNAM ${swig_dependencies})
             if(NOT EXISTS ${FNAM})
diff --git a/Core/Tools/Utils.cpp b/Core/Tools/Utils.cpp
index fa7bed5190e..eb3f0842a32 100644
--- a/Core/Tools/Utils.cpp
+++ b/Core/Tools/Utils.cpp
@@ -17,6 +17,7 @@
 #include <boost/algorithm/string.hpp>
 #include <boost/date_time/posix_time/posix_time.hpp>
 #include <thread>
+#include <glob.h>
 
 #ifdef DEBUG_FPE
 #ifdef Q_OS_MAC
@@ -87,6 +88,11 @@ std::string Utils::String::flatFilename(const std::string& fname)
     return result;
 }
 
+//! Returns file names that agree with glob pattern.
+std::vector<std::string> glob(const std::string& pattern)
+{
+}
+
 int Utils::System::getThreadHardwareConcurrency()
 {
     return std::thread::hardware_concurrency();
diff --git a/Core/Tools/Utils.h b/Core/Tools/Utils.h
index 206b970c65c..ff29a59e52c 100644
--- a/Core/Tools/Utils.h
+++ b/Core/Tools/Utils.h
@@ -92,7 +92,6 @@ private:
     nstringmap_t m_nstringmap;
 };
 
-
 class BA_CORE_API_ System
 {
 public:
@@ -102,6 +101,7 @@ public:
 
 //! enables exception throw in the case of NaN, Inf
 BA_CORE_API_ void EnableFloatingPointExceptions();
-}
+
+} // namespace Utils
 
 #endif // UTILS_H
diff --git a/Tests/Functional/PyCore/persistence/PyPersistenceTest.cpp b/Tests/Functional/PyCore/persistence/PyPersistenceTest.cpp
index 82f0a1fc25e..083737c6f46 100644
--- a/Tests/Functional/PyCore/persistence/PyPersistenceTest.cpp
+++ b/Tests/Functional/PyCore/persistence/PyPersistenceTest.cpp
@@ -22,10 +22,12 @@
 #include "PythonFormatting.h"
 #include "SimulationFactory.h"
 #include "TestConfig.h"
+#include "TestUtils.h"
 #include "Utils.h"
 #include <cstdio>
 #include <cstdlib>
 #include <fstream>
+#include <map>
 
 PyPersistenceTest::PyPersistenceTest(
     const std::string& directory, const std::string& name)
@@ -37,17 +39,18 @@ PyPersistenceTest::PyPersistenceTest(
 
 void PyPersistenceTest::runTest()
 {
-    // Prepare output file
-    std::string output_name = BUILD_TMP_DIR + "/" + getName();
-    std::string output_path = output_name + ".int";
-    std::remove( output_path.c_str() );
-    std::cout << "Removed old data set " << output_path << "." << std::endl/*sic*/;
+    // Set output data filename stem, and remove old output files
+    std::string dat_stem = BUILD_TMP_DIR + "/" + getName();
+    for (const std::string& fname: TestUtils::glob(dat_stem+".*.int")) {
+        std::remove( fname.c_str() );
+        std::cout << "Removed old result " << fname.c_str() << "." << std::endl/*sic*/;
+    }
 
     // Run Python script
     std::string py_filename( m_directory + "/" + getName() + ".py" );
     std::string command =
         "PYTHONPATH=" + BUILD_LIB_DIR + " " +
-        BORNAGAIN_PYTHON_EXE + " " + py_filename + " " + output_name;
+        BORNAGAIN_PYTHON_EXE + " " + py_filename + " " + dat_stem;
     std::cout << "Now running command '" << command << "'." << std::endl/*sic*/;
     int ret = std::system(command.c_str());
     if (ret!=0) {
@@ -56,11 +59,47 @@ void PyPersistenceTest::runTest()
         return;
     }
 
-    // Read back simulation result
-    const OutputData<double>* data = IntensityDataIOFactory::readOutputData( output_path );
+    // Read back simulation results
+    std::map<const std::string, const OutputData<double>*> dat;
+    std::string dat_pattern = dat_stem + ".*.int";
+    for (const std::string& fname: TestUtils::glob(dat_pattern))
+        dat.insert(make_pair(Utils::String::split(fname,".")[1],
+                             IntensityDataIOFactory::readOutputData( fname )));
+    if (dat.size()==0) {
+        std::cerr << "There is no test output of form " << dat_pattern << "\n";
+        m_result = FAILED;
+        return;
+    }
+
+
+    // Read reference files
+    std::string ref_dir = REFERENCE_DIR + "/Persistence/";
+    std::string ref_stem = ref_dir + getName();
+    std::map<const std::string, const OutputData<double>*> ref;
+    for (const std::string& fname: TestUtils::glob(ref_stem+".*.int.gz"))
+        ref.insert(make_pair(Utils::String::split(fname,".")[1],
+                             IntensityDataIOFactory::readOutputData( fname )));
+
+    // Compare file lists
+    m_result = SUCCESS;
+    for( auto const& it: dat ) {
+        if( ref.find(it.first)==ref.end() ) {
+            std::cerr << "For test output " << (dat_stem+"."+it.first+".int")
+                      << " there is no reference file in " << ref_dir << "\n";
+            m_result = FAILED;
+        }
+    }
+    for( auto const& it: ref ) {
+        if( dat.find(it.first)==dat.end() ) {
+            std::cerr << "For reference file " << (ref_stem+"."+it.first+".int.gz")
+                      << " there is no test output in " << BUILD_TMP_DIR << "\n";
+            m_result = FAILED;
+        }
+    }
+    if (m_result==FAILED)
+        return;
 
-    // Read reference data
-    std::string ref_filename = REFERENCE_DIR + "/Persistence/" + getName() + ".int.gz";
+    /*
     const OutputData<double>* reference;
     try {
         reference = IntensityDataIOFactory::readOutputData( ref_filename );
@@ -73,7 +112,7 @@ void PyPersistenceTest::runTest()
     // Compare data
     m_difference = IntensityDataFunctions::getRelativeDifference(*data, *reference);
     m_result = m_difference > m_threshold ? FAILED_DIFF : SUCCESS;
-    return;
+    */
 }
 
 void PyPersistenceTest::printResults(std::ostream& ostr) const
diff --git a/Tests/Functional/TestMachinery/TestUtils.cpp b/Tests/Functional/TestMachinery/TestUtils.cpp
new file mode 100644
index 00000000000..4a50f21df4d
--- /dev/null
+++ b/Tests/Functional/TestMachinery/TestUtils.cpp
@@ -0,0 +1,31 @@
+// ************************************************************************** //
+//
+//  BornAgain: simulate and fit scattering at grazing incidence
+//
+//! @file      Tests/Functional/TestMachinery/TestUtils.cpp
+//! @brief     Implements various stuff in namespace TestUtils.
+//!
+//! @homepage  http://www.bornagainproject.org
+//! @license   GNU General Public License v3 or higher (see COPYING)
+//! @copyright Forschungszentrum Jülich GmbH 2016
+//! @authors   Scientific Computing Group at MLZ Garching
+//! @authors   M. Ganeva, G. Pospelov, W. Van Herck, J. Wuttke
+//
+// ************************************************************************** //
+
+#include "TestUtils.h"
+#include <string>
+#include <vector>
+#include <glob.h>
+
+//! Returns file names that agree with glob pattern.
+std::vector<std::string> TestUtils::glob(const std::string& pattern)
+{
+    glob_t glob_result;
+    glob(pattern.c_str(), GLOB_TILDE, NULL, &glob_result);
+    std::vector<std::string> ret;
+    for(unsigned int i=0; i<glob_result.gl_pathc; ++i)
+        ret.push_back(std::string(glob_result.gl_pathv[i]));
+    globfree(&glob_result);
+    return ret;
+}
diff --git a/Tests/Functional/TestMachinery/TestUtils.h b/Tests/Functional/TestMachinery/TestUtils.h
new file mode 100644
index 00000000000..db160cd96a7
--- /dev/null
+++ b/Tests/Functional/TestMachinery/TestUtils.h
@@ -0,0 +1,30 @@
+// ************************************************************************** //
+//
+//  BornAgain: simulate and fit scattering at grazing incidence
+//
+//! @file      Tests/Functional/TestMachinery/TestUtils.h
+//! @brief     Declares various stuff in namespace TestUtils.
+//!
+//! @homepage  http://www.bornagainproject.org
+//! @license   GNU General Public License v3 or higher (see COPYING)
+//! @copyright Forschungszentrum Jülich GmbH 2016
+//! @authors   Scientific Computing Group at MLZ Garching
+//! @authors   M. Ganeva, G. Pospelov, W. Van Herck, J. Wuttke
+//
+// ************************************************************************** //
+
+#ifndef TESTUTILS_H
+#define TESTUTILS_H
+
+#include "WinDllMacros.h"
+#include <string>
+#include <vector>
+
+namespace TestUtils {
+
+//! Returns file names that agree with glob pattern.
+std::vector<std::string> glob(const std::string& pattern);
+
+} // namespace TestUtils
+
+#endif // TESTUTILS_H
diff --git a/Tests/ReferenceData/Persistence/AccessingSimulationResults.int.gz b/Tests/ReferenceData/Persistence/AccessingSimulationResults.ref.int.gz
similarity index 99%
rename from Tests/ReferenceData/Persistence/AccessingSimulationResults.int.gz
rename to Tests/ReferenceData/Persistence/AccessingSimulationResults.ref.int.gz
index af4b91e95258d817ed7f1a659dc8e8fdcd7f0add..c49b0dae58f58ed4d6dbb71526530c32807a62b8 100644
GIT binary patch
delta 37
tcmX>+L-_a%VRrd$4vznQODD3+F&Cw#HLA3#Ft(~NwW=_0Rbi1o0|5PU3^)J)

delta 33
pcmX>;L-_CvVRrd$4vyE~mP}-qYt(GjWNg)BYSm=ks>vdE1_0D^3u6EP

diff --git a/Tests/ReferenceData/Persistence/AllFormFactorsAvailable.AnisoPyramid.int.gz b/Tests/ReferenceData/Persistence/AllFormFactorsAvailable.AnisoPyramid.int.gz
index 79584d56a24a7ca4692e0645a0372607fc407720..60beb46fc3ef5afecd934b0a0ad59e2499bb8e1b 100644
GIT binary patch
delta 21
dcmZ2}g=P5_7Iyh=4vrmtOB>m@vNI}Z0RUUE2RZ-%

delta 21
dcmZ2}g=P5_7Iyh=4vwYYmNc?&WoJ~-0svl<2aW&$

diff --git a/Tests/ReferenceData/Persistence/AllFormFactorsAvailable.Box.int.gz b/Tests/ReferenceData/Persistence/AllFormFactorsAvailable.Box.int.gz
index 257617e2ee38152846b45fcf8f58c61bc87d08d2..0fe30b6bc15593aa6de2fdded99c2aba82e010bc 100644
GIT binary patch
delta 21
dcmZ2_k7emS7Iyh=4vrmtOB>m@vNOu*0{~ps2TcF~

delta 21
dcmZ2_k7emS7Iyh=4vwYYmNc?&WoMMr2LNBV2cZA}

diff --git a/Tests/ReferenceData/Persistence/AllFormFactorsAvailable.Cone.int.gz b/Tests/ReferenceData/Persistence/AllFormFactorsAvailable.Cone.int.gz
index 8c0834d46b274da72d0e2a5a51a6c1b22ce703e8..955c1ac375fac084191fdd49303a9ba670fc5aa5 100644
GIT binary patch
delta 21
dcmbPugJt3k7Iyh=4vw9DOB>m@vNLk&003Ca2Lk{A

delta 21
dcmbPugJt3k7Iyh=4vwYYmNc?&WoP8l0RUU02UY+8

diff --git a/Tests/ReferenceData/Persistence/AllFormFactorsAvailable.Cone6.int.gz b/Tests/ReferenceData/Persistence/AllFormFactorsAvailable.Cone6.int.gz
index 0b07f2f131f1becc7eeb2f265a8e0e2fb258561b..13f156efae211a45639b412854c13261fb8e87e0 100644
GIT binary patch
delta 21
dcmex+h2`%R7Iyh=4vw9DOB>m@vNM)x0RU-%2t5D*

delta 21
dcmex+h2`%R7Iyh=4vwYYmNc?&WoInY0sw4T2#^2(

diff --git a/Tests/ReferenceData/Persistence/AllFormFactorsAvailable.Cuboctahedron.int.gz b/Tests/ReferenceData/Persistence/AllFormFactorsAvailable.Cuboctahedron.int.gz
index a6034e5e76ddd7f1f6c530ffeb9a2f3770d65a67..ea27f6b28c78966257fd05f2d82d8a714457da0a 100644
GIT binary patch
delta 21
dcmbPrhh^3s7Iyh=4vt-YOB>m@vNH<n0RURu2Ppsm

delta 21
dcmbPrhh^3s7Iyh=4vuBtmNc?&WoH!D0{~sL2Ydhk

diff --git a/Tests/ReferenceData/Persistence/AllFormFactorsAvailable.Cylinder.int.gz b/Tests/ReferenceData/Persistence/AllFormFactorsAvailable.Cylinder.int.gz
index dc692c9b4b678ab666036228d036a2e9f7ce6a31..5169551a361d1d31c069b88a192cb5668400e5af 100644
GIT binary patch
delta 21
dcmex=m*xLm7Iyh=4vt-YOB>m@vNQhB0|0C;2-*Mu

delta 21
dcmex=m*xLm7Iyh=4vuBtmNc?&WoP`M2LNvd2`vBs

diff --git a/Tests/ReferenceData/Persistence/AllFormFactorsAvailable.Dodecahedron.int.gz b/Tests/ReferenceData/Persistence/AllFormFactorsAvailable.Dodecahedron.int.gz
index 5e95893a16816226078b05b11fed0440f3794cdf..8710da8a6b3a3a84a8c412c90c460b9641d5b99e 100644
GIT binary patch
delta 21
dcmZ2+i)F<v7Iyh=4vt-YOB>m@vNI~`0svgk2TlM0

delta 21
dcmZ2+i)F<v7Iyh=4vuBtmNc?&WoJ~>1pr^C2cZA}

diff --git a/Tests/ReferenceData/Persistence/AllFormFactorsAvailable.EllipsoidalCylinder.int.gz b/Tests/ReferenceData/Persistence/AllFormFactorsAvailable.EllipsoidalCylinder.int.gz
index d9ff6e1d3ee97841bcf310bd087327c00d2c18e5..dc30031f77388773239fbc2a656c4f1b186c1632 100644
GIT binary patch
delta 21
dcmaEVpXL317Iyh=4vt-YOB>m@vNOKW2LNg52(JJD

delta 21
dcmaEVpXL317Iyh=4vuBtmNc?&WoLY$4*+bz2?78B

diff --git a/Tests/ReferenceData/Persistence/AllFormFactorsAvailable.FullSphere.int.gz b/Tests/ReferenceData/Persistence/AllFormFactorsAvailable.FullSphere.int.gz
index c533d787841d93063a8f839b1eee2a02d5fb9874..4e5002e4af560960152d09d6dd7c79e3a80df2dc 100644
GIT binary patch
delta 21
dcmcb2h2`EA7Iyh=4vt-YOB>m@vNMKj0RUu_2jKt!

delta 21
dcmcb2h2`EA7Iyh=4vuBtmNc?&WoHc60sv=h2s8iy

diff --git a/Tests/ReferenceData/Persistence/AllFormFactorsAvailable.FullSpheroid.int.gz b/Tests/ReferenceData/Persistence/AllFormFactorsAvailable.FullSpheroid.int.gz
index 3271cca853da2abb23eb5219f14eb74b79415098..9430589872e2d47478643ca4d99e3f774d06032a 100644
GIT binary patch
delta 21
dcmZ2=nPt^w7Iyh=4vyV@OB>m@vNJB$1OQzm2g3jW

delta 21
dcmZ2=nPt^w7Iyh=4vyvDmNc?&WoKNh2>@UG2o?YU

diff --git a/Tests/ReferenceData/Persistence/AllFormFactorsAvailable.HemiEllipsoid.int.gz b/Tests/ReferenceData/Persistence/AllFormFactorsAvailable.HemiEllipsoid.int.gz
index 06f53af5a243d1f481936a255fccfcc551d75a37..fcf141fe4625108952d6127d3b4ac717c3d0ef46 100644
GIT binary patch
delta 21
dcmX?nmgVqS7Iyh=4vyV@OB>m@vNP^c0{~z|2mb&7

delta 21
dcmX?nmgVqS7Iyh=4vyvDmNc?&WoO)@1^{Cm2vPt5

diff --git a/Tests/ReferenceData/Persistence/AllFormFactorsAvailable.Icosahedron.int.gz b/Tests/ReferenceData/Persistence/AllFormFactorsAvailable.Icosahedron.int.gz
index ca8725c0065dab0611dcbfc5400abf729c27a54c..c8a6bae944e6e8274846beb763e9b7da7b1b31c4 100644
GIT binary patch
delta 21
dcmex+gXQlH7Iyh=4vyV@OB>m@vNM+H003$$2uT0{

delta 21
dcmex+gXQlH7Iyh=4vyvDmNc?&WoInY0RU|S2%G=_

diff --git a/Tests/ReferenceData/Persistence/AllFormFactorsAvailable.Prism3.int.gz b/Tests/ReferenceData/Persistence/AllFormFactorsAvailable.Prism3.int.gz
index 70807a5e8483c4e01b569525c359855be0cf9d01..a505d52cbcf13842d62d486684a940e64eaef6e4 100644
GIT binary patch
delta 21
dcmaEVo8|p&7Iyh=4vsy2OB>m@vNOKW1psMh2&Vu5

delta 21
dcmaEVo8|p&7Iyh=4vrPymNc?&WoLY$3jl0C2>Jj3

diff --git a/Tests/ReferenceData/Persistence/AllFormFactorsAvailable.Prism6.int.gz b/Tests/ReferenceData/Persistence/AllFormFactorsAvailable.Prism6.int.gz
index cf384034d6b43cc9b79f417478940c711ae1e259..d57a1f5ac3a4da446884abe5a6c9ef071b0f0ed8 100644
GIT binary patch
delta 21
dcmdmbhh^&>7Iyh=4vsy2OB>m@vNP)G0RUe^2Ydhk

delta 21
dcmdmbhh^&>7Iyh=4vrPymNc?&WoOjW0{~(h2hRWi

diff --git a/Tests/ReferenceData/Persistence/AllFormFactorsAvailable.Pyramid.int.gz b/Tests/ReferenceData/Persistence/AllFormFactorsAvailable.Pyramid.int.gz
index fcd5d99813554e1322871adb17e415f1413b6f62..e83eee2c996d6c64497b4cecdbbd2558cedae21a 100644
GIT binary patch
delta 21
ccmeCa%+h_Cg<ZazgJVzM(nj{J?2Ij%09ZE%X8-^I

delta 21
ccmeCa%+h_Cg<ZazgJZ?FC5`M`*%@0j0b36Tx&QzG

diff --git a/Tests/ReferenceData/Persistence/AllFormFactorsAvailable.Ripple1.int.gz b/Tests/ReferenceData/Persistence/AllFormFactorsAvailable.Ripple1.int.gz
index be6741126e96c682994cd8f27e8cb11b67bd98ea..6672eafdd94a37d80cba54ecf8b60298467dc769 100644
GIT binary patch
delta 21
dcmX?ho8{PT7Iyh=4vxKjOB>m@vNP`21ps2;2rU2r

delta 21
dcmX?ho8{PT7Iyh=4vv-ImNc?&WoO*43jk%f2!H?p

diff --git a/Tests/ReferenceData/Persistence/AllFormFactorsAvailable.Ripple2.int.gz b/Tests/ReferenceData/Persistence/AllFormFactorsAvailable.Ripple2.int.gz
index 757d213233dff203a2c1ddda87659098d882b386..8336fc492a1cc4fbf31080534d8a530497624c1c 100644
GIT binary patch
delta 21
ccmX@o%zC7mm0iA@gJW;s(nj{J?2LOI0agtMjQ{`u

delta 21
dcmX@o%zC7mm0iA@gJb2lC5`M`*%|jb0svU$2jBnz

diff --git a/Tests/ReferenceData/Persistence/AllFormFactorsAvailable.Tetrahedron.int.gz b/Tests/ReferenceData/Persistence/AllFormFactorsAvailable.Tetrahedron.int.gz
index ec599ccf48d75d7808121c664006b164d83dcbfb..b662c497380e6f906ff5e4659534056518ead0c4 100644
GIT binary patch
delta 21
dcmX?eiRH{C7Iyh=4vu|&OB>m@vNO7B0svu;2dV%7

delta 21
dcmX?eiRH{C7Iyh=4vtmdmNc?&WoLBN1OQ}b2mJs5

diff --git a/Tests/ReferenceData/Persistence/AllFormFactorsAvailable.TruncatedCube.int.gz b/Tests/ReferenceData/Persistence/AllFormFactorsAvailable.TruncatedCube.int.gz
index 4913264b36eb588611c2ad2d2613646b26437ae7..67098d708fc9da989fb45e8cc60b879d2cd488d5 100644
GIT binary patch
delta 21
ccmeCY&(e9Hg<ZazgX2Ko(nj{J?2JwN09nrmg8%>k

delta 21
ccmeCY&(e9Hg<ZazgJaFNC5`M`*%_Pk0bHjC)&Kwi

diff --git a/Tests/ReferenceData/Persistence/AllFormFactorsAvailable.TruncatedSphere.int.gz b/Tests/ReferenceData/Persistence/AllFormFactorsAvailable.TruncatedSphere.int.gz
index fd31f101dbe10de81e947b532a58a448a3e169f8..95a574be0a6b357f838d50848d7e613a1197bd60 100644
GIT binary patch
delta 21
dcmbPymSyr;7Iyh=4vu|&OB>m@vNQIm0RULC2XX)a

delta 21
dcmbPymSyr;7Iyh=4vtmdmNc?&WoPVB0{~l!2gLvY

diff --git a/Tests/ReferenceData/Persistence/AllFormFactorsAvailable.TruncatedSpheroid.int.gz b/Tests/ReferenceData/Persistence/AllFormFactorsAvailable.TruncatedSpheroid.int.gz
index b6593e3654016400edb42c462ff3017f50020cb3..76f821e3b580826bf0950326957852ee130b4281 100644
GIT binary patch
delta 21
dcmX?oj^*?@7Iyh=4vzhOOB>m@vNO7<0{~#!2c7@`

delta 21
dcmX?oj^*?@7Iyh=4vsb7mNc?&WoL9z2LNNd2l4;_

diff --git a/Tests/ReferenceData/Persistence/ApproximationDA.int.gz b/Tests/ReferenceData/Persistence/ApproximationDA.ref.int.gz
similarity index 99%
rename from Tests/ReferenceData/Persistence/ApproximationDA.int.gz
rename to Tests/ReferenceData/Persistence/ApproximationDA.ref.int.gz
index 1762c8507600e77cf0fd5fbec17a54826d61aeb8..2916daa45a556a5df35741d4a373d413cf65ebc2 100644
GIT binary patch
delta 52
zcmZ3xNqFNXVOjZZ4vvF;OT!tM9SaJI@+&fP6H7Al^IRPDic-@WC0ivKTP2xVC7HKM
IvWVOS0QO1|q5uE@

delta 48
zcmdnENqFrhVM+OJ4vw|omV`4fI~Eia<yU0pCYEI8=eamG%C^cfw#qWK$}(@2Wf8dv
E0JtR(ng9R*

diff --git a/Tests/ReferenceData/Persistence/ApproximationLMA.int.gz b/Tests/ReferenceData/Persistence/ApproximationLMA.ref.int.gz
similarity index 99%
rename from Tests/ReferenceData/Persistence/ApproximationLMA.int.gz
rename to Tests/ReferenceData/Persistence/ApproximationLMA.ref.int.gz
index ea0d03e8bdecacfb959b9a9e35a8c95a909a5104..af067b20a20d26cd3add5d20a69365c49b54a222 100644
GIT binary patch
delta 53
zcmcb*S@`B=VLAD34vvF;OT!tM9SaJI@+&fP6H7Al^L%_A^@>u{8l_sL7+a;7TBVq`
JO0n#|2>=_H67~Q9

delta 49
zcmcb)S@`N^VJZ1;4vw|omV`4fI~Eia<yU0pCYEI8=lS?LHp;ciF}BJvwaPJXm1Eg`
F69C&15$*s0

diff --git a/Tests/ReferenceData/Persistence/ApproximationSSCA.int.gz b/Tests/ReferenceData/Persistence/ApproximationSSCA.ref.int.gz
similarity index 99%
rename from Tests/ReferenceData/Persistence/ApproximationSSCA.int.gz
rename to Tests/ReferenceData/Persistence/ApproximationSSCA.ref.int.gz
index ebb22be491b6f09f55ceaee34b08acb70a5e49ee..b7e9e17bbf7711bd99cd3045ba82b702759cdbad 100644
GIT binary patch
delta 54
zcmaE}Mfk%OVR`v(4vs^8OT!tM9SaJI@+&fP6H7Al^MZq&9rcP*(;B5)r5RhLnOdcp
Kw@R}F-U0wPe-jh{

delta 50
zcmeycMflAYVQKkp4vux-mV`4fI~Eia<yU0pCYEI8=LH8lJ2uL<$}_ggGquVyZ<S{W
GyafREK@toA

diff --git a/Tests/ReferenceData/Persistence/BeamDivergence.int.gz b/Tests/ReferenceData/Persistence/BeamDivergence.ref.int.gz
similarity index 97%
rename from Tests/ReferenceData/Persistence/BeamDivergence.int.gz
rename to Tests/ReferenceData/Persistence/BeamDivergence.ref.int.gz
index 49a7de2e5eb3a64ee567fd340d6c3b0896dc078f..6d2e7f62fbc34f888bd003a2e34584952c5c1b60 100644
GIT binary patch
delta 42
ycmdn+nPtmo78&_&4vw#VOT!tMol+BXT{6p3i_%l`l2i4HQqvkGwn{M0umk{RArHR*

delta 38
ucmdn;nPtOg776)o4vvT4mV`4fJEbP(x@4B67Nw`=C8svZY?Wc0VF>^*l@6-_

diff --git a/Tests/ReferenceData/Persistence/BuriedParticles.int.gz b/Tests/ReferenceData/Persistence/BuriedParticles.ref.int.gz
similarity index 99%
rename from Tests/ReferenceData/Persistence/BuriedParticles.int.gz
rename to Tests/ReferenceData/Persistence/BuriedParticles.ref.int.gz
index 605c5128846f2cded325c402292b28f4b49e0319..dc44c01ef27dd6693b7d74e50590a056859abc65 100644
GIT binary patch
delta 52
zcmZ2CPk7TjVOjZZ4vsy2OT!tMol1)`Q&R#Gi%K$+b5e`-ic-@WC0ivKTP2xVC7HKM
IvWT7s0PV*SfB*mh

delta 48
zcmdlqPk7xtVM+OJ4vv-ImV`4fJCzn?rltfW7L{Zs=cE=l%C^cfw#qWK$}(@2Wf46O
E0I(|%c>n+a

diff --git a/Tests/ReferenceData/Persistence/CoreShellNanoparticles.int.gz b/Tests/ReferenceData/Persistence/CoreShellNanoparticles.ref.int.gz
similarity index 99%
rename from Tests/ReferenceData/Persistence/CoreShellNanoparticles.int.gz
rename to Tests/ReferenceData/Persistence/CoreShellNanoparticles.ref.int.gz
index e9c463e239ae7debe03c74af0d7fd643331dae5b..4380b01fb60cd1abd86e9dee85640c243b93f17a 100644
GIT binary patch
delta 59
zcmZ2BOL)~RVHNpq4vvR?OT!tMo%4%QgELZda{LnW@(U7+N-~pkQj7J9Qqvk0S``>u
P6_{ETn71mhu$=_}hqx4Y

delta 55
zcmZ2AOL*BVVFmea4vsV5mV`4fJLear24|$^<oG4#<rgFtm1HL8q!u@-w5l++sxY;x
LFmF|1VLJ-|KwJ}V

diff --git a/Tests/ReferenceData/Persistence/CorrelatedRoughness.int.gz b/Tests/ReferenceData/Persistence/CorrelatedRoughness.ref.int.gz
similarity index 99%
rename from Tests/ReferenceData/Persistence/CorrelatedRoughness.int.gz
rename to Tests/ReferenceData/Persistence/CorrelatedRoughness.ref.int.gz
index 9f1e0b4e5ad08e23661e567beeaa136a24d086b2..6384726f44046038eadb2ce85a744349ecf997e3 100644
GIT binary patch
delta 56
zcmX@{K<LZ^Aw~Ia4vtfOOT!tMo%4%|QgaeZQd5HROVcy*Qj3fAic-@WWm{z#TV<JA
MWtq3ivS@Dr0B`CP6aWAK

delta 52
zcmX@}K<LB+AzAru4vwwgmV`4fJLeY_rRF4-q^1Prm!@arr4|=ADz+*zwkk5UDl%_X
IWYOLL04W#~3jhEB

diff --git a/Tests/ReferenceData/Persistence/CosineRipplesAtRectLattice.int.gz b/Tests/ReferenceData/Persistence/CosineRipplesAtRectLattice.ref.int.gz
similarity index 98%
rename from Tests/ReferenceData/Persistence/CosineRipplesAtRectLattice.int.gz
rename to Tests/ReferenceData/Persistence/CosineRipplesAtRectLattice.ref.int.gz
index ae61374b08f2c56081c62a685a19a92eb7b9e1ec..9a91b68f841de92d9046caad4b43770610da1ce1 100644
GIT binary patch
delta 28
kcmdmTfn~=97Iyh=4vr&zODD3+F&Cw#HL7e?VHD5+0GxISdH?_b

delta 24
gcmdmSfo01D7Iyh=4vvlAmP}-qYt-DT$;ht(0DCeBmjD0&

diff --git a/Tests/ReferenceData/Persistence/CustomFormFactor.int.gz b/Tests/ReferenceData/Persistence/CustomFormFactor.ref.int.gz
similarity index 98%
rename from Tests/ReferenceData/Persistence/CustomFormFactor.int.gz
rename to Tests/ReferenceData/Persistence/CustomFormFactor.ref.int.gz
index 8fcc814089d615729a9c2acfd2c7e167eaa0c8c8..e531bec464603096ab400657f0349bedc3bd5d32 100644
GIT binary patch
delta 44
zcmZ4Uh-Jeg7CHHD4vr^%OT!tMolA>L@^jtti*nr(lS}f8^oml`8l|>MF$x(10D~zH
A`2YX_

delta 40
wcmdn+h-J+q7Ag5|4vzERmV`4fJC_!h<mbBO7v;JoCYR(FHOg(3V-zw3080)I<NyEw

diff --git a/Tests/ReferenceData/Persistence/CylindersAndPrisms.int.gz b/Tests/ReferenceData/Persistence/CylindersAndPrisms.ref.int.gz
similarity index 98%
rename from Tests/ReferenceData/Persistence/CylindersAndPrisms.int.gz
rename to Tests/ReferenceData/Persistence/CylindersAndPrisms.ref.int.gz
index ddd940c9f4751a95fe60183d80a87a998f3ae1fa..fceb6a8d4b76b48401e61fc924a14ae7589199d5 100644
GIT binary patch
delta 46
zcmbPunPuu_76tik4vrmtOT!tMohx%P^HNfaiXHP(0*W$=bBpzgQqvk`w#qP;Y61Y0
COAx96

delta 42
ycmbPwnPuW-78&_&4vr<?mV`4fJ6Gmp=B1<-6+7mo1QcZ!=N30AY*k<^)dT=qqYst<

diff --git a/Tests/ReferenceData/Persistence/CylindersInBA.int.gz b/Tests/ReferenceData/Persistence/CylindersInBA.ref.int.gz
similarity index 99%
rename from Tests/ReferenceData/Persistence/CylindersInBA.int.gz
rename to Tests/ReferenceData/Persistence/CylindersInBA.ref.int.gz
index 4a59f3d18e35057e4ec6114c679999ce8adb8deb..2ce8addbcc0b3b351ffeaf718fb27be0ecbf4f42 100644
GIT binary patch
delta 50
zcmdnJOnCn?VQKkp4vrmtOT!tMohx%P^HNfaiaqn39QBG)(;CHF#Ti@0nOen}w~Di<
GTm}HgMG%qz

delta 46
zcmdnLOnCP)VR89x4vwYYmV`4fJ6Gmp=B1<-6?^76IW|hSN;9@fGqp-HZ<S_IxeNe|
C<qwMh

diff --git a/Tests/ReferenceData/Persistence/CylindersInDWBA.int.gz b/Tests/ReferenceData/Persistence/CylindersInDWBA.ref.int.gz
similarity index 99%
rename from Tests/ReferenceData/Persistence/CylindersInDWBA.int.gz
rename to Tests/ReferenceData/Persistence/CylindersInDWBA.ref.int.gz
index f94a09cd0d27e2fbc9010f58ebb1614ba7d7b9f0..c16cb28777a2697895c00bc5afaac363bf4b4238 100644
GIT binary patch
delta 52
zcmdlnLwL^&VOjZZ4vw9DOT!tMohx%P^HNfaiaqmO!krxTic-@WC0ivKTP2xVC7HKM
IvdEtS0OW}g3;+NC

delta 48
zcmdlpLwLswVM+OJ4vwYYmV`4fJ6Gmp=B1<-6?^8nggZGl%C^cfw#qWK$}(@2WsyGv
E0I0MO1ONa4

diff --git a/Tests/ReferenceData/Persistence/CylindersWithSizeDistribution.int.gz b/Tests/ReferenceData/Persistence/CylindersWithSizeDistribution.ref.int.gz
similarity index 99%
rename from Tests/ReferenceData/Persistence/CylindersWithSizeDistribution.int.gz
rename to Tests/ReferenceData/Persistence/CylindersWithSizeDistribution.ref.int.gz
index e708b487ed5c32cc8ed42c4064679f00f5a3eef8..3206c12b59f79a76ebba9d69db5b01c6363da4bc 100644
GIT binary patch
delta 37
tcmZ2=KzQ8&VRrd$4vyV@ODD1`G8d($HLAC&Gq$QTwW>33RcB#-008?D3>*Le

delta 33
pcmZ2?KzP*wVRrd$4vyvDmP}+<Y}9GhVQkf5YSm%hs>8zc007dS3r7F|

diff --git a/Tests/ReferenceData/Persistence/DetectorResolutionFunction.int.gz b/Tests/ReferenceData/Persistence/DetectorResolutionFunction.ref.int.gz
similarity index 98%
rename from Tests/ReferenceData/Persistence/DetectorResolutionFunction.int.gz
rename to Tests/ReferenceData/Persistence/DetectorResolutionFunction.ref.int.gz
index 17cea09be7cc426237640ffc2f035b40656da573..c852395f363b934e1f6c5e37230875af40c473eb 100644
GIT binary patch
delta 28
kcmdn-nPtys7Iyh=4vueqODD3+F&Cw#HL7e?VVq(K0I04Cj{pDw

delta 24
gcmdn<nPtak7Iyh=4vt6PmP}-qYt-DT$vD{(0EJx%s{jB1

diff --git a/Tests/ReferenceData/Persistence/HexagonalLatticesWithBasis.int.gz b/Tests/ReferenceData/Persistence/HexagonalLatticesWithBasis.ref.int.gz
similarity index 99%
rename from Tests/ReferenceData/Persistence/HexagonalLatticesWithBasis.int.gz
rename to Tests/ReferenceData/Persistence/HexagonalLatticesWithBasis.ref.int.gz
index 803c2caf849f23425dd67a962ec11d1d2ed80461..b91ed343faaace8b36e2dc3eb011d5eaeb8ddc30 100644
GIT binary patch
delta 37
tcmeCXCp_t%FuQy=2gkF%r4!lZn2S==8dX|V7+Y1CT2+|0s<6Cz2LJ%t4K4rx

delta 33
pcmbPqPq^=%FuQy=2gjvvOD3|*HEOnMGPY_mwQ4eN)ns}34glAv3|RmG

diff --git a/Tests/ReferenceData/Persistence/Interference1DLattice.int.gz b/Tests/ReferenceData/Persistence/Interference1DLattice.ref.int.gz
similarity index 99%
rename from Tests/ReferenceData/Persistence/Interference1DLattice.int.gz
rename to Tests/ReferenceData/Persistence/Interference1DLattice.ref.int.gz
index e3840c6f74adc008df60266a0596c3bdf1e097ea..dc562527e8d24fe819acacbd82cc56efd4c403e5 100644
GIT binary patch
delta 58
zcmezUSLpv=A!Ye)4vxcpOT!tMJ@ZOZi_%hyQuC5i4PAT^OG+}6Q}v2c(;DSl<r!P$
OnOfzUx5~5J*#`i%6&1<=

delta 54
zcmezWSLpX&A$j?34vr1qmV`4fd*+p-7Nw;YrRF848oKx-mXu^Br#33LDl@h!Gqox+
KZ&hZwvkw4kffU04

diff --git a/Tests/ReferenceData/Persistence/Interference1DRadialParaCrystal.int.gz b/Tests/ReferenceData/Persistence/Interference1DRadialParaCrystal.ref.int.gz
similarity index 99%
rename from Tests/ReferenceData/Persistence/Interference1DRadialParaCrystal.int.gz
rename to Tests/ReferenceData/Persistence/Interference1DRadialParaCrystal.ref.int.gz
index e6ffbdfde8348e0b87a81076800e8fbdd487d0e1..5b43b4cf4cf5adc8fc8298a1645ba7a7ef213d1e 100644
GIT binary patch
delta 37
tcmZ2BQ+U-(VRrd$4vr&zODD1`GZ&?%HEOnMGPY_mwQ4eN)nutX0|4>J3_$<@

delta 33
pcmZ2AQ+U}-VRrd$4vvlAmP}+<Zq#elV{Fx9YSm-js>f1u1^~*J3vB=Z

diff --git a/Tests/ReferenceData/Persistence/Interference2DCenteredSquareLattice.int.gz b/Tests/ReferenceData/Persistence/Interference2DCenteredSquareLattice.ref.int.gz
similarity index 99%
rename from Tests/ReferenceData/Persistence/Interference2DCenteredSquareLattice.int.gz
rename to Tests/ReferenceData/Persistence/Interference2DCenteredSquareLattice.ref.int.gz
index af11d355770d102c86bf3437723236a14c0df315..68bbb13161177d085c3d3916b322c511a41aa9c8 100644
GIT binary patch
delta 37
tcmbR9R(Qc%VRrd$4vyn}ODD3cGZ&?%HR`tNGPde6wdyi&)n&>51^@>s4GaJP

delta 33
pcmZ4RR(Q@^VRrd$4vx*=mP}+<Z!~H(Vr(^HYBgfsYQ&QF4FKI|3^xD(

diff --git a/Tests/ReferenceData/Persistence/Interference2DLatticeSumOfRotated.int.gz b/Tests/ReferenceData/Persistence/Interference2DLatticeSumOfRotated.ref.int.gz
similarity index 98%
rename from Tests/ReferenceData/Persistence/Interference2DLatticeSumOfRotated.int.gz
rename to Tests/ReferenceData/Persistence/Interference2DLatticeSumOfRotated.ref.int.gz
index b3d6dab604900151efdc02636b604a9a20f9a348..ba7626432a970822cf6da5271f517bbcb29e7b2a 100644
GIT binary patch
delta 28
jcmbQ&$hxSJm0iA@gX37=(uwS<%tfhbjoMqa8H*hNiS`LZ

delta 24
gcmZ3~$U3i)m0iA@gJbizB@@|I8x6J^Fcvug0Bf!YVE_OC

diff --git a/Tests/ReferenceData/Persistence/Interference2DParaCrystal.int.gz b/Tests/ReferenceData/Persistence/Interference2DParaCrystal.ref.int.gz
similarity index 99%
rename from Tests/ReferenceData/Persistence/Interference2DParaCrystal.int.gz
rename to Tests/ReferenceData/Persistence/Interference2DParaCrystal.ref.int.gz
index f5590d8e1f3099c651bde59bb65de44e9e50a40b..5080d9a533d487472bd62f5b2aaba3197f891617 100644
GIT binary patch
delta 37
tcmaE|K={Q1VRrd$4i1j~r4!j@nTt}>8kJj>8C#W^T9ui%Dzi9V008gC3$y?L

delta 33
pcmaE{K={c5VRrd$4vsJ1mP}-qZPaMhU~JW3YSm!gs=?xL0RZ1d3*G<#

diff --git a/Tests/ReferenceData/Persistence/Interference2DRotatedSquareLattice.int.gz b/Tests/ReferenceData/Persistence/Interference2DRotatedSquareLattice.ref.int.gz
similarity index 99%
rename from Tests/ReferenceData/Persistence/Interference2DRotatedSquareLattice.int.gz
rename to Tests/ReferenceData/Persistence/Interference2DRotatedSquareLattice.ref.int.gz
index 2bd53b7d31508d46e3d493a28f7bb95653c4a34a..933e0b11ab65ea9a506cea9af95bc9cdd593b135 100644
GIT binary patch
delta 37
tcmaEMRru9aVRrd$4vrIjODD3cF&Cw#HR`nLFt+M2wdyc$)nVE73IG+A4XOYD

delta 33
pcmaELRruLeVRrd$4vwwgmP}+<Ycy;%WNbBLYBgluYRIzl6#(j44AuYu

diff --git a/Tests/ReferenceData/Persistence/Interference2DSquareLattice.int.gz b/Tests/ReferenceData/Persistence/Interference2DSquareLattice.ref.int.gz
similarity index 99%
rename from Tests/ReferenceData/Persistence/Interference2DSquareLattice.int.gz
rename to Tests/ReferenceData/Persistence/Interference2DSquareLattice.ref.int.gz
index 10fcb65783844087bb564e238e575f571edb15d9..2ab2ab44b6275019ef4367627dee110b93b8b7f8 100644
GIT binary patch
delta 37
tcmaE|N%+MkVRrd$4vy1(ODD3+GZ&?%HLA9%GPbHRwW>02Rb{ci2>=N746OhF

delta 33
pcmaE{N%+YoVRrd$4vrn)mP}-qZ`5klVr<o7YSm)is>Nb=69C@v3)uhw

diff --git a/Tests/ReferenceData/Persistence/LargeParticlesFormFactor.LargeAn.int.gz b/Tests/ReferenceData/Persistence/LargeParticlesFormFactor.LargeAn.int.gz
index 5eb702d9b6c054c4353c3ac1885ada140b05eb58..13c1691a3420771cf57ed1a81b7a1dff1736c611 100644
GIT binary patch
delta 30
mcmaFxNch1cVRrd$4vzPIOB>l+*%@2enOfPIx3aTDegpu$$O_5;

delta 30
mcmaFxNch1cVRrd$4vyR3mNc@rvNN`_GqtiaZ)InR{0IQUiwhk9

diff --git a/Tests/ReferenceData/Persistence/LargeParticlesFormFactor.LargeMC.int.gz b/Tests/ReferenceData/Persistence/LargeParticlesFormFactor.LargeMC.int.gz
index 95729d2d69f041ea066f7c8eaca89aef2aaaf8e8..10a33921d4280810dd1f2d12764caf529e406e36 100644
GIT binary patch
delta 30
mcmZ2+UwFlRVRrd$4vz1AOB>l+*%@2enOfPIx3aS=d=CJz(F&pf

delta 30
mcmZ2+UwFlRVRrd$4vxp)mNc@rvNN`_GqtiaZ)Im$_#ObalnV6#

diff --git a/Tests/ReferenceData/Persistence/LargeParticlesFormFactor.SmallAn.int.gz b/Tests/ReferenceData/Persistence/LargeParticlesFormFactor.SmallAn.int.gz
index d49117c997d32bac3859443dbedc88d0be4451e5..a9f2a27c4a60e887519b2e65eb80f3667565760b 100644
GIT binary patch
delta 30
mcmbP#NO=AsVRrd$4vuGiOB>l+*%@2enOfPIx3aTHJOluzG6}8#

delta 30
mcmbP#NO=AsVRrd$4vtITmNc@rvNN`_GqtiaZ)InZcnAQj^$Gz1

diff --git a/Tests/ReferenceData/Persistence/LargeParticlesFormFactor.SmallMC.int.gz b/Tests/ReferenceData/Persistence/LargeParticlesFormFactor.SmallMC.int.gz
index 9793a9a0b687b782330969050bddf70f60eadfab..5ad66468ddc07db7a0fec5bef2fddecc62c628c1 100644
GIT binary patch
delta 30
mcmX@}LHNuEVRrd$4vu$yOB>l+*%@2enOfPIx3aUi{r~{HA_}ko

delta 30
mcmX@}LHNuEVRrd$4vyR3mNc@rvNN`_GqtiaZ)In3{Q&^M_zMI8

diff --git a/Tests/ReferenceData/Persistence/OffSpecularSimulation.int.gz b/Tests/ReferenceData/Persistence/OffSpecularSimulation.ref.int.gz
similarity index 99%
rename from Tests/ReferenceData/Persistence/OffSpecularSimulation.int.gz
rename to Tests/ReferenceData/Persistence/OffSpecularSimulation.ref.int.gz
index 03546eef45212d425f6efcd2ffd44804ba92333a..172359ceabae4b72d6853b7d71e3f426f9d34af5 100644
GIT binary patch
delta 61
zcmaE|UgX7k5oP&q4vxQlOT!tM{nOHd3sRFya}tY!GjmIG5=%1k^Yn^R(;DSl<r!P$
RnOfzUTjg1{%CjC72LRkk6_Wq}

delta 57
zcmaE{UgXJo5qbG;4vv@KmV`4f`=_M^7o;Ya<|GycXXcjXB$j06=QS#~Dl@h!Gqox+
Nw<@!2Rc1XZ4gin~6psJ^

diff --git a/Tests/ReferenceData/Persistence/RectangularDetector.difference.int.gz b/Tests/ReferenceData/Persistence/RectangularDetector.difference.int.gz
index b081048ac8fdbba94fcf2ede22edc27a2246a0ce..084b83473fa52dd98d9976ba266b71bdd218971a 100644
GIT binary patch
delta 383
zcmZqq`ji=j+2y-AI5_&3HnO*}Gq$obwX!p}va__Zv$nFcwX(CfvU9YubGEW`wX$=!
zvh%dE^R}|{wX*ZKvJ14b3%0TgwXzGhvWv8`i?*_hwX%!1vP-nGOSZC0wX#dMvdgrx
z%eJ!1wX(~%vMaQ*E4H#LwX!R>va7VRtG2SMwX&<XvTL-mYqqj$wX$osvg@?6>$bA%
zwX*BCvKzFr8@93=wXz$xvYWKBo3^r>wX&PHvRkyWTeh-WwX$2cvfH$>+qSaXwX)l{
zvOBc0JGQbrwX!?6vb(ghySB2swX(anvU{|$d$zKBwX%D+vir2M`?j+CwX*xSvIn%X
z2ez^YwXz4dvWK*?hqkhZwX%n|vPZPCN4By@wX#RIvd6Tt$F{P^wX(;zvM02%C$_RD
zwX!F-vZu7Nr?#@EwX&zTvS+liXST9uwX$covgfq2=eDxvwX)~8vKO?n7q+q&wXzqt
YvX`{7m$tH(wX&DDvR7<nudJ;C0An*}Z~y=R

delta 383
zcmZqq`ji=j+2y-AIKF;c(#YP*&e+P%)XL7>%Ffct&f3b(*2>P_%FfZs&e_V&)ymG@
z%Fffu&fCh)*UHY{$}Z5#F4)R0)XFa0$}ZB%F51d2*2*s4$}Z8$F4@X1)ygj2$}ZE&
zF5Aj3*UB#6%C6ALuGq@1)XJ{h%C6GNuG-43*2=El%C6DMuGz}2)yl5j%C6JOuG`A4
z*UGNn%5KogZrI9h)XHw$%5KuiZraLj*2-?)%5KrhZrRFi)yi(&%5KxjZrjRk*UE0+
z%I?t0?%2xi)XMJM%I?z2?%K-k*2?bQ%I?w1?%B%j)ynSO%I?$3?%T@l*UIkS${x_l
z9@xqr)XE;*${y0n9@@$t*2*5<${x|m9@)ws)yf{-${y3o9^1+u*UBE>%AU~5p4iHs
z)XJXR%AV57p4!Tu*2<pV%AV26p4rNt)ykgT%AV88p4-Zv*UFyX%3jdQUf9ZB)XHAm
Y%3jjSUfRlD*2-Sq%3iURy|T6n08HX&!vFvP

diff --git a/Tests/ReferenceData/Persistence/RectangularDetector.rectangular.int.gz b/Tests/ReferenceData/Persistence/RectangularDetector.rectangular.int.gz
index 7b6683e62bda62de1c1bc4b3fb1c0477468d2702..37be2e37c89ac9d3c6f8af19f91e7e8b119098ce 100644
GIT binary patch
delta 386
zcmcbz_BAsIv&(mLaB%i7ZDem{XKZC>YGr3`WoKz+XKiI?Yh`C|W#?#R=WJ!?YGvnc
zW#?&S=WS)@Yh~weWfy2=7i?u0YGoI0Wfy5>7j0!1Yh@R2WtV7WmuzL1YGs#hWtVAX
zmu+R2Yh{;jWmjlrS8QchYGqe$WmjosS8ZiiYh_n&W!GqB*KB3iYGv1MW!GtC*KK9j
zYh~AOWjAPLH*94$YGpTWWjASMH*IA%Yh^cYWw&T$w`^s%YGt=>Ww&W%w{2y&Yh|}@
zWp`+0cWh;MYGrqBWp`<1cWq^NYh`zDW%p=h_iSbNYGwCsW%p@i_ibhOYi0LuWe;d&
z4{T)*YGn^@We;g(4{c=+Yh@2_WshiOk8EX+YGsdZWshlPk8Nd-Yh{mbWlv~jPi$pR
zYGqGuWlw2kPi<vSYh_PwWzT43&unGSYGu!EWzT74&uwMTYh}-GWiM!DFKlHmYGp5O
bWiM%EFKuNnYh^EQWv^&uuiVOBb@mzn$0=z)

delta 386
zcmcbz_BAsIv&(mLaD4l=q>;Uqow1djsg<3%m7S%Powb#nt(Bd<m7SxNowJpltCgL*
zm7S-Rowt>pua%v@m0h5fU9gp1sFhu~m0hHjU9^>5td(87m0hBhU9y#3s+C>3m0hNl
zUAC27u9aQBm0h8gU9pv2sg+&1m0hKkUA2{6t(9H9m0hEiU9**4tCd~5m0hQmUAL88
zua#ZDmEE9~-LRG2sFmHgmEEM3-L#e6td-romEEG1-LjS4s+HZkmEES5-L{q8u9e-s
zmEED0-LaM3sg>QimEEP4-L;k7t(D!qmEEJ2-LsY5tCiimmEEV6-M5w9ua(`ul|7)9
zJ+PHMsFgjql|7`DJ+zfQtd%{yl|7=BJ+hTOs+B#ul|81FJ+_rSu9ZE$l|7-AJ+YNN
zsg*ssl|7}EJ++lRt(85!l|7@CJ+qZPtCc;wl|84GJ-3xTua!N&mA#;qy|9(NsFl6A
bmA#~uy|k6Rtd+gImA#^sy>csi)!AzRw9#sk

diff --git a/Tests/ReferenceData/Persistence/RectangularDetector.spherical.int.gz b/Tests/ReferenceData/Persistence/RectangularDetector.spherical.int.gz
index 450ba4a6e0f35aeaa8b75dcfe5099802278c93a3..c88a2e357d8ddb008aac456b9588b43b33827882 100644
GIT binary patch
delta 386
zcmZ3o;WaY|v&(mLaB%c5ZDem{XKZC>YGr3`WoKz+XKiI?Yh`C|W#?#R=WJ!?YGvnc
zW#?&S=WS)@Yh~weWfy2=7i?u0YGoI0Wfy5>7j0!1Yh@R2WtV7WmuzL1YGs#hWtVAX
zmu+R2Yh{;jWmjlrS8QchYGqe$WmjosS8ZiiYh_n&W!GqB*KB3iYGv1MW!GtC*KK9j
zYh~AOWjAPLH*94$YGpTWWjASMH*IA%Yh^cYWw&T$w`^s%YGt=>Ww&W%w{2y&Yh|}@
zWp`+0cWh;MYGrqBWp`<1cWq^NYh`zDW%p=h_iSbNYGwCsW%p@i_ibhOYi0LuWe;d&
z4{T)*YGn^@We;g(4{c=+Yh@2_WshiOk8EX+YGsdZWshlPk8Nd-Yh{mbWlv~jPi$pR
zYGqGuWlw2kPi<vSYh_PwWzT43&unGSYGu!EWzT74&uwMTYh}-GWiM!DFKlHmYGp5O
bWiM%EFKuNnYh^EQWv^&uuiVOBC3^z^Jy2*i

delta 386
zcmZ3o;WaY|v&(mLaD4f;q>;Uqow1djsg<3%m7S%Powb#nt(Bd<m7SxNowJpltCgL*
zm7S-Rowt>pua%v@m0h5fU9gp1sFhu~m0hHjU9^>5td(87m0hBhU9y#3s+C>3m0hNl
zUAC27u9aQBm0h8gU9pv2sg+&1m0hKkUA2{6t(9H9m0hEiU9**4tCd~5m0hQmUAL88
zua#ZDmEE9~-LRG2sFmHgmEEM3-L#e6td-romEEG1-LjS4s+HZkmEES5-L{q8u9e-s
zmEED0-LaM3sg>QimEEP4-L;k7t(D!qmEEJ2-LsY5tCiimmEEV6-M5w9ua(`ul|7)9
zJ+PHMsFgjql|7`DJ+zfQtd%{yl|7=BJ+hTOs+B#ul|81FJ+_rSu9ZE$l|7-AJ+YNN
zsg*ssl|7}EJ++lRt(85!l|7@CJ+qZPtCc;wl|84GJ-3xTua!N&mA#;qy|9(NsFl6A
bmA#~uy|k6Rtd+gImA#^sy>csimFx`wDT8T<

diff --git a/Tests/ReferenceData/Persistence/RectangularGrating.int.gz b/Tests/ReferenceData/Persistence/RectangularGrating.ref.int.gz
similarity index 99%
rename from Tests/ReferenceData/Persistence/RectangularGrating.int.gz
rename to Tests/ReferenceData/Persistence/RectangularGrating.ref.int.gz
index a31ab29a0a5fba3e4432319c64498518a9eac169..1770b45b8fdd80d4d5eaf8af90c4a27ba503f9ec 100644
GIT binary patch
delta 55
zcmdn`P<ZD<VFmea4vq(XOT!tMgHn@A67$kaa}tZ(ixNvR^V0Q-Qqvk`T4fkpWtduJ
Ln77KX%=`cVRKgT7

delta 51
zcmdn_P<ZP@VHx>u4vy2`mV`4f2c;&LB<7`;<|G!m7bTWt=A}0(v??&RDloMwFmF|0
HnfU<#57HAT

diff --git a/Tests/ReferenceData/Persistence/RotatedPyramids.int.gz b/Tests/ReferenceData/Persistence/RotatedPyramids.ref.int.gz
similarity index 99%
rename from Tests/ReferenceData/Persistence/RotatedPyramids.int.gz
rename to Tests/ReferenceData/Persistence/RotatedPyramids.ref.int.gz
index 3dd6e01dcdde3dee5ae9400cfaed980dfc4190fd..eee5e534bb5aca5dc8be058d8bdebf0d9bb3bf6c 100644
GIT binary patch
delta 52
zcmezKS*YQQkgR++2gmNdrQr<BLHQ+#C8;R^l|_lUnJLA3MX70xlC6@At&&WwlFVBr
ISsw2M02z7{761SM

delta 48
zcmZqpBJ}68kfeM!2gmYnOTrnLgYrufOHxw;DvJ_xGgFEiWm{z#TV<JAWtq3ivOL}i
E0M@k<4gdfE

diff --git a/Tests/ReferenceData/Persistence/SpheresAtHexLattice.int.gz b/Tests/ReferenceData/Persistence/SpheresAtHexLattice.ref.int.gz
similarity index 99%
rename from Tests/ReferenceData/Persistence/SpheresAtHexLattice.int.gz
rename to Tests/ReferenceData/Persistence/SpheresAtHexLattice.ref.int.gz
index 05beb4ed30bf43fda24e9a6b0c59297641f2b531..5dabc4923b26d18d8f98da1ae5b44d788f76c331 100644
GIT binary patch
delta 56
zcmex=RJi$=u%di72gkX-rQr<B!37zqMXAM(B_632K8YnInaQboMX70xvaPa=t+Gt5
Mvdmj$SspzC09@x3a{vGU

delta 52
zcmZoZCj9@Xu&jJH2gmMjOTrnLg9|cJi&BdnOFU95d=g7aGLusq6<ZY<TNRmF6`8jx
IvOIbO02dMyYybcN

diff --git a/Tests/ReferenceData/Persistence/TriangularRipple.int.gz b/Tests/ReferenceData/Persistence/TriangularRipple.ref.int.gz
similarity index 99%
rename from Tests/ReferenceData/Persistence/TriangularRipple.int.gz
rename to Tests/ReferenceData/Persistence/TriangularRipple.ref.int.gz
index 6c060050454d50c6efb92928e8b3d02151077d73..be46b1f9e6a9e6b5206ef9fc462716f9c801f564 100644
GIT binary patch
delta 98
zcmdme!e{>pA36DM4vr^%OT!tMLy9sJ^U_Om5{rT|3kq^l^@>u{8l_sL7+a;7TBVp<
zrC3^}SX-soTBX=qr8rupI9sK-TBW#KrFdGUcw43TTBZ0~r36}~1Y4zqwn_;rssI3B
CA{=)B

delta 94
zcmdmg!e{phA1V264vvf8mV`4fhZJQd=B1bBBo+l_78K;9Hp;ciF}BJvwaPKK%CWS{
yv9`*wwaT%#%5k*Hakk2FwaRg~%JH<y@wUqGwaW3g$_cc}3AV}!ZIu&NQ~?0=I2)`0

diff --git a/Tests/ReferenceData/Persistence/TwoTypesOfCylindersWithSizeDistribution.int.gz b/Tests/ReferenceData/Persistence/TwoTypesOfCylindersWithSizeDistribution.ref.int.gz
similarity index 99%
rename from Tests/ReferenceData/Persistence/TwoTypesOfCylindersWithSizeDistribution.int.gz
rename to Tests/ReferenceData/Persistence/TwoTypesOfCylindersWithSizeDistribution.ref.int.gz
index 8515b29ba685fd9b79446530fb0fe422353c9710..d701878b9b345558fb88eeb49c2d52ba849fe175 100644
GIT binary patch
delta 37
tcmcb8Q272qVRrd$4vqtTODD2xGZ&?%H5#@WGPW8rwHh*SHDp=!000e$4QK!W

delta 33
pcmcbAQ26#iVRrd$4vsb7mP};VZZvB(V{A2JYBgitYR0ni0RZDV43hu=

diff --git a/Wrap/python/plot_utils.py b/Wrap/python/plot_utils.py
index c554fbe7e00..ea96b4ce57f 100644
--- a/Wrap/python/plot_utils.py
+++ b/Wrap/python/plot_utils.py
@@ -46,7 +46,7 @@ def standardIntensitySave(result, filename):
             ba.IntensityDataIOFactory.writeIntensityData(
                 data, filename+"."+name+".int")
     else:
-        ba.IntensityDataIOFactory.writeIntensityData(result, filename+".int")
+        ba.IntensityDataIOFactory.writeIntensityData(result, filename+".ref.int")
 
 def getFilenameOrPlotflag():
     """
diff --git a/auto/Wrap/libBornAgainCore.py b/auto/Wrap/libBornAgainCore.py
index a7d5407d22c..cd801ac7f4d 100644
--- a/auto/Wrap/libBornAgainCore.py
+++ b/auto/Wrap/libBornAgainCore.py
@@ -24527,25 +24527,5 @@ class SimulationFactory(_object):
 SimulationFactory_swigregister = _libBornAgainCore.SimulationFactory_swigregister
 SimulationFactory_swigregister(SimulationFactory)
 
-
-
-#  **************************************************************************  #
-#
-#   BornAgain: simulate and fit scattering at grazing incidence
-#
-#   @file      Wrap/swig/CorePython.py
-#   @brief     Python extensions of the SWIG-genrated Python module bornagain.
-#              This file is included by libBornAgainCore.i.
-#
-#   @homepage  http://apps.jcns.fz-juelich.de/BornAgain
-#   @license   GNU General Public License v3 or higher (see COPYING)
-#   @copyright Forschungszentrum Juelich GmbH 2016
-#   @authors   Scientific Computing Group at MLZ Garching
-#   @authors   J. Fisher, M. Ganeva, G. Pospelov, W. Van Herck, J. Wuttke
-#
-#  **************************************************************************  #
-
-
-
 # This file is compatible with both classic and new-style classes.
 
-- 
GitLab