diff --git a/Core/InputOutput/IntensityDataIOFactory.cpp b/Core/InputOutput/IntensityDataIOFactory.cpp index 9123c5eb6a01105974c7e0ddb848c9a8095893dd..8db3a28e42a5f2a3f91f17474cfa0248caecc662 100644 --- a/Core/InputOutput/IntensityDataIOFactory.cpp +++ b/Core/InputOutput/IntensityDataIOFactory.cpp @@ -18,6 +18,7 @@ #include "Core/Instrument/IHistogram.h" #include "Core/Instrument/SimulationResult.h" #include "Core/Tools/FileSystemUtils.h" +#include <exception> #include <fstream> #include <memory> @@ -25,9 +26,9 @@ OutputData<double>* IntensityDataIOFactory::readOutputData(const std::string& fi { if (!FileSystemUtils::IsFileExists(file_name)) return nullptr; - std::unique_ptr<OutputDataReader> P_reader(OutputDataReadFactory::getReader(file_name)); - if (P_reader) - return P_reader->getOutputData(); + std::unique_ptr<OutputDataReader> reader(OutputDataReadFactory::getReader(file_name)); + if (reader) + return reader->getOutputData(); return nullptr; } @@ -35,17 +36,19 @@ OutputData<double>* IntensityDataIOFactory::readReflectometryData(const std::str { if (!FileSystemUtils::IsFileExists(file_name)) return nullptr; - std::unique_ptr<OutputDataReader> P_reader( + std::unique_ptr<OutputDataReader> reader( OutputDataReadFactory::getReflectometryReader(file_name)); - if (P_reader) - return P_reader->getOutputData(); + if (reader) + return reader->getOutputData(); return nullptr; } IHistogram* IntensityDataIOFactory::readIntensityData(const std::string& file_name) { - std::unique_ptr<OutputData<double>> P_data(readOutputData(file_name)); - return IHistogram::createHistogram(*P_data); + std::unique_ptr<OutputData<double>> data(readOutputData(file_name)); + if (!data) + throw std::runtime_error("Could not read " + file_name); + return IHistogram::createHistogram(*data); } void IntensityDataIOFactory::writeOutputData(const OutputData<double>& data, @@ -59,8 +62,8 @@ void IntensityDataIOFactory::writeOutputData(const OutputData<double>& data, void IntensityDataIOFactory::writeIntensityData(const IHistogram& histogram, const std::string& file_name) { - std::unique_ptr<OutputData<double>> P_data(histogram.createOutputData()); - writeOutputData(*P_data, file_name); + std::unique_ptr<OutputData<double>> data(histogram.createOutputData()); + writeOutputData(*data, file_name); } void IntensityDataIOFactory::writeSimulationResult(const SimulationResult& result, diff --git a/Core/Instrument/Instrument.h b/Core/Instrument/Instrument.h index 86d79c1510b4d75f2284305dbecfc4778a1f3448..efcb5a58e807f48dd39d6d41a9d5695d9843bb38 100644 --- a/Core/Instrument/Instrument.h +++ b/Core/Instrument/Instrument.h @@ -31,7 +31,7 @@ class SimulationElement; //! Assembles beam, detector and their relative positions with respect to the sample. //! @ingroup simulation_internal -class BA_CORE_API_ Instrument final : public INode +class BA_CORE_API_ Instrument : public INode { public: Instrument(); diff --git a/Tests/Functional/CMakeLists.txt b/Tests/Functional/CMakeLists.txt index 4f94caf38af2b5af710445ca3bb972ff3b231644..a460717b11c209dda62e1b9d89e368927bb39833 100644 --- a/Tests/Functional/CMakeLists.txt +++ b/Tests/Functional/CMakeLists.txt @@ -4,7 +4,6 @@ include_directories(${CMAKE_SOURCE_DIR}/Tests/Functional/TestMachinery) -add_subdirectory(Std) add_subdirectory(Core) add_subdirectory(Fit) diff --git a/Tests/Functional/Core/CMakeLists.txt b/Tests/Functional/Core/CMakeLists.txt index 4fc1c336109b99a2dd26d5e7a61f049adcb3adab..c8a15f9413c415548819a2da5438f04acfa540f0 100644 --- a/Tests/Functional/Core/CMakeLists.txt +++ b/Tests/Functional/Core/CMakeLists.txt @@ -3,10 +3,10 @@ ############################################################################ # add standard and special tests -add_subdirectory(CoreStandardTest) -add_subdirectory(SelfConsistenceTest) +add_subdirectory(Consistence) add_subdirectory(CoreSpecial) add_subdirectory(Fitting) +add_subdirectory(Std) # build MPI test executable if(BORNAGAIN_MPI) diff --git a/Tests/Functional/Core/Consistence/CMakeLists.txt b/Tests/Functional/Core/Consistence/CMakeLists.txt new file mode 100644 index 0000000000000000000000000000000000000000..957fd6bd3bbb8570ac566a8c7da5c37f339f20d0 --- /dev/null +++ b/Tests/Functional/Core/Consistence/CMakeLists.txt @@ -0,0 +1,14 @@ +include(GoogleTest) # provides gtest_discover_tests + +set(test TestCoreConsistence) + +file(GLOB source_files "*.cpp") + +add_executable(${test} ${source_files} ${CMAKE_SOURCE_DIR}/Tests/GTestWrapper/TestAll.cpp) + +target_include_directories(${test} PUBLIC + ${BornAgainCore_INCLUDE_DIRS} + ${CMAKE_SOURCE_DIR}/ThirdParty/common/gtest/gtest-1.8.0/include) +target_link_libraries(${test} BornAgainCore gtest) + +gtest_discover_tests(${test} TEST_PREFIX Core.) diff --git a/Tests/Functional/Core/Consistence/compare.cpp b/Tests/Functional/Core/Consistence/compare.cpp new file mode 100644 index 0000000000000000000000000000000000000000..4f9cedc23aa9683109b3e925bc08d37d3e69c120 --- /dev/null +++ b/Tests/Functional/Core/Consistence/compare.cpp @@ -0,0 +1,51 @@ +// ************************************************************************** // +// +// BornAgain: simulate and fit scattering at grazing incidence +// +//! @file Tests/Functional/Core/Std/Check.cpp +//! @brief Implements function compare for core consistence test +//! +//! @homepage http://www.bornagainproject.org +//! @license GNU General Public License v3 or higher (see COPYING) +//! @copyright Forschungszentrum Jülich GmbH 2018 +//! @authors Scientific Computing Group at MLZ (see CITATION, AUTHORS) +// +// ************************************************************************** // + +#include "BABuild.h" +#include "BATesting.h" +#include "Core/InputOutput/IntensityDataIOFactory.h" +#include "Core/Instrument/IntensityDataFunctions.h" +#include "Core/Multilayer/IMultiLayerBuilder.h" +#include "Core/Multilayer/MultiLayer.h" +#include "Core/Simulation/Simulation.h" +#include "Core/StandardSamples/SampleBuilderFactory.h" +#include "Core/StandardSamples/SimulationFactory.h" +#include "Core/Tools/FileSystemUtils.h" +#include <cassert> +#include <iostream> + +std::unique_ptr<OutputData<double>> load(const std::string& name) +{ + assert(name != ""); + const std::string path = + FileSystemUtils::jointPath(BATesting::StdReferenceDir(), name + ".int.gz"); + std::unique_ptr<OutputData<double>> data; + try { + data.reset(IntensityDataIOFactory::readOutputData(path)); + } catch (const std::exception&) { + std::cout << "Data file " << path << "not found.\n" + << "Run the pertinent Core standard test, copy the fresh data file" + << " to the reference directory,\n" + << "then rerun this test." << std::endl; + } + return data; +} + +int compare(const std::string& name0, const std::string& name1, const double limit) +{ + std::unique_ptr<OutputData<double>> data0 = load(name0); + std::unique_ptr<OutputData<double>> data1 = load(name1); + + return IntensityDataFunctions::checkRelativeDifference(*data0, *data1, limit); +} diff --git a/Tests/Functional/Core/Consistence/macros.cpp b/Tests/Functional/Core/Consistence/macros.cpp new file mode 100644 index 0000000000000000000000000000000000000000..e17612c0dc1209c03285f1393b28fd2017f07335 --- /dev/null +++ b/Tests/Functional/Core/Consistence/macros.cpp @@ -0,0 +1,47 @@ +// ************************************************************************** // +// +// BornAgain: simulate and fit scattering at grazing incidence +// +//! @file Tests/Functional/Core/Std/macros.cpp +//! @brief Implements Core standard tests through gtest macros. +//! +//! @homepage http://www.bornagainproject.org +//! @license GNU General Public License v3 or higher (see COPYING) +//! @copyright Forschungszentrum Jülich GmbH 2018 +//! @authors Scientific Computing Group at MLZ (see CITATION, AUTHORS) +// +// ************************************************************************** // + +#include "Tests/GTestWrapper/google_test.h" +#include <string> + +int compare(const std::string& name0, const std::string& name1, const double limit); + +class Consistence : public ::testing::Test +{ +}; + +TEST_F(Consistence, SpecularWithSlicing) +{ + EXPECT_TRUE(compare("SpecularWithSlicing_01", "SpecularWithSlicing_02", 2e-10)); + EXPECT_TRUE(compare("SpecularWithSlicing_01", "SpecularWithSlicing_03", 2e-10)); +} + +TEST_F(Consistence, InstrumentDefinitionComparison) +{ + EXPECT_TRUE( + compare("InstrumentDefinitionComparison_0", "InstrumentDefinitionComparison_Q", 2e-10)); +} + +TEST_F(Consistence, TOFResolutionComparison) +{ + EXPECT_TRUE(compare("TOFResolutionComparison_TP", "TOFResolutionComparison_TR", 2e-10)); +} + +TEST_F(Consistence, PolarizedQAngleReflectivity) +{ + EXPECT_TRUE( + compare("PolarizedQAngleReflectivityPP_0", "PolarizedQAngleReflectivityPP_Q", 2e-10)); + EXPECT_TRUE( + compare("PolarizedQAngleReflectivityMM_0", "PolarizedQAngleReflectivityMM_Q", 2e-10)); +} diff --git a/Tests/Functional/Core/CoreSpecial/FourierTransformationTest.cpp b/Tests/Functional/Core/CoreSpecial/FourierTransformationTest.cpp index ad044d81421bf1b5ff588c9d473d8e9f2d7905cb..594a432e8032d900259a9d457a4fd4da3b86ff69 100644 --- a/Tests/Functional/Core/CoreSpecial/FourierTransformationTest.cpp +++ b/Tests/Functional/Core/CoreSpecial/FourierTransformationTest.cpp @@ -27,68 +27,35 @@ namespace const double threshold = 1e-10; -//! Returns file names to test fft. -std::vector<std::string> inputImages() -{ - return {"CylindersAndPrisms.int.gz", "RectDetectorGeneric.int.gz"}; -} - -//! Returns location of images to test fft. -std::string inputImageDir() -{ - return BATesting::CoreReferenceDir(); -} - -//! Returns file names with paths to test fft. -std::vector<std::string> inputImageNames() -{ - std::vector<std::string> result; - for (auto name : inputImages()) - result.push_back(FileSystemUtils::jointPath(inputImageDir(), name)); - - return result; -} - -//! Returns name of directory with fft images for reference. -std::string fftReferenceDir() -{ - return BATesting::CoreReferenceDir(); -} - //! Returns name of fft image based on given image name. std::string fftReferenceImage(const std::string& input_image) { auto filename = FileSystemUtils::filename(input_image); - return FileSystemUtils::jointPath(fftReferenceDir(), "FourierTransformation_" + filename); -} - -//! Returns name of directory for output fft images. -std::string outputDir() -{ - return BATesting::CoreOutputDir(); + return FileSystemUtils::jointPath(BATesting::CoreReferenceDir(), + "FourierTransformation_" + filename); } //! Runs test over one image. Returns true upon success. bool test_fft(const std::string& input_image_name, const std::string& reference_fft_name) { - std::cout << "\nFourierTransformationTest::test_fft()" - << "\n"; - std::cout << "Input image: " << input_image_name << "\n"; - std::cout << "Reference fft: " << reference_fft_name << "\n"; + std::cout << "Input image: " << input_image_name << std::endl; + std::cout << "Reference fft: " << reference_fft_name << std::endl; // loading input image std::unique_ptr<OutputData<double>> input_image; try { - input_image.reset(IntensityDataIOFactory::readOutputData(input_image_name)); + const auto filename = + FileSystemUtils::jointPath(BATesting::StdReferenceDir(), input_image_name); + input_image.reset(IntensityDataIOFactory::readOutputData(filename)); } catch (const std::exception&) { std::cout << "Error: no input image.\n"; return false; } - // making fourier transformation - std::unique_ptr<OutputData<double>> fft = IntensityDataFunctions::createFFT(*input_image.get()); + std::cout << "transforming" << std::endl; + std::unique_ptr<OutputData<double>> fft = IntensityDataFunctions::createFFT(*input_image); - // loading reference fft + std::cout << "loading reference" << std::endl; std::unique_ptr<OutputData<double>> reference_fft; try { reference_fft.reset(IntensityDataIOFactory::readOutputData(reference_fft_name)); @@ -96,17 +63,17 @@ bool test_fft(const std::string& input_image_name, const std::string& reference_ std::cout << "Error: no reference fft image. Creating new one.\n"; } - // comparing new fft against reference fft, if exist + std::cout << "comparing" << std::endl; bool success(false); if (reference_fft) success = IntensityDataFunctions::getRelativeDifference(*fft, *reference_fft) <= threshold; if (!success) { - FileSystemUtils::createDirectory(outputDir()); - std::string out_fname = - FileSystemUtils::jointPath(outputDir(), FileSystemUtils::filename(reference_fft_name)); + FileSystemUtils::createDirectory(BATesting::CoreOutputDir()); + std::string out_fname = FileSystemUtils::jointPath( + BATesting::CoreOutputDir(), FileSystemUtils::filename(reference_fft_name)); IntensityDataIOFactory::writeOutputData(*fft, out_fname); - std::cout << "New fft image stored in " << out_fname << "\n"; + std::cout << "New fft image stored in " << out_fname << std::endl; } return success; @@ -120,6 +87,6 @@ class FourierTransformationTest : public ::testing::Test TEST_F(FourierTransformationTest, FourierTransformation) { - for (auto inputImage : inputImageNames()) + for (const char* inputImage : {"CylindersAndPrisms.int.gz", "RectDetectorGeneric.int.gz"}) EXPECT_TRUE(test_fft(inputImage, fftReferenceImage(inputImage))); } diff --git a/Tests/Functional/Core/CoreStandardTest/CMakeLists.txt b/Tests/Functional/Core/CoreStandardTest/CMakeLists.txt deleted file mode 100644 index 1c488a37152338c45d53ba868f57f67b7c80dac5..0000000000000000000000000000000000000000 --- a/Tests/Functional/Core/CoreStandardTest/CMakeLists.txt +++ /dev/null @@ -1,96 +0,0 @@ -############################################################################ -# Tests/Functional/Core/CMakeLists.txt -############################################################################ - -set(test TestCoreStandard) - -# CoreStandardTest cases: -set(test_cases - ApproximationDA - ApproximationLMA - ApproximationSSCA - Basic2DParaCrystal - BeamDivergence - BoxCompositionRotateX - BoxCompositionRotateY - BoxCompositionRotateZ - BoxCompositionRotateZandY - BoxesWithSpecular - BoxStackComposition - CenteredSquareLattice - ConstantBackground - CoreShellBoxRotateZandY - CoreShellParticle - CosineRipple - CustomMorphology - CylindersAndPrisms - CylindersInSSCA - CylindersWithSizeDistribution - DetectorResolution - FormFactors - FormFactorsWithAbsorption - GISASAbsorptiveSLDLayers - HexParaCrystal - LargeCylindersMonteCarlo - Lattice1D - MagneticParticleZeroField - MagneticSpheres - MagneticSubstrateZeroField - MagneticRotation - MagneticCylindersPP - MagneticCylindersPM - MagneticCylindersMP - MagneticCylindersMM - MesoCrystal - MultiLayerWithRoughness - MultipleLayout - ParticleComposition - RadialParaCrystal - HardDisk - RectDetectorGeneric - RectDetectorPerpToDirectBeam - RectDetectorPerpToReflectedBeam - RectDetectorPerpToReflectedBeamDpos - RectDetectorPerpToSample - RectParaCrystal - RotatedCylinder - RotatedPyramids - RotatedSquareLattice - FiniteSquareLattice - SuperLattice - SimulationWithMasks - SquareLattice - TransformBox - TriangularRipple - AsymRipple - TwoTypesCylindersDistribution - SphericalDetWithRoi - RectDetWithRoi - SlicedComposition - RotatedPyramidsDistribution - SpheresWithLimitsDistribution - ConesWithLimitsDistribution - LinkedBoxDistribution - HomogeneousTiNiSample - HomogeneousTiNiSampleWithAbsorption - RoughnessInSpecular - NCRoughnessInSpecular - GaussianBeamFootprint - SquareBeamFootprint - SpecularDivergentBeam - RelativeResolutionTOF - OffSpecularResonator - DepthProbeTest - ThickAbsorptiveSampleWithRoughness - MagneticSpheresInMagLayerPP - MagneticSpheresInMagLayerMP - BasicSpecularPP - BasicSpecularMM - ) - -add_executable(${test} main.cpp CoreStandardTest.h CoreStandardTest.cpp) -target_link_libraries(${test} BornAgainCore BornAgainTestMachinery) -foreach(test_case ${test_cases}) - add_test(${test}/${test_case} - ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${test} ${test_case}) -endforeach() diff --git a/Tests/Functional/Core/CoreStandardTest/CoreStandardTest.h b/Tests/Functional/Core/CoreStandardTest/CoreStandardTest.h deleted file mode 100644 index a2d8d9cf266798428869ddf67e9099a75bf08de6..0000000000000000000000000000000000000000 --- a/Tests/Functional/Core/CoreStandardTest/CoreStandardTest.h +++ /dev/null @@ -1,33 +0,0 @@ -// ************************************************************************** // -// -// BornAgain: simulate and fit scattering at grazing incidence -// -//! @file Tests/Functional/Core/CoreStandardTest/CoreStandardTest.h -//! @brief Defines class CoreStandardTest. -//! -//! @homepage http://www.bornagainproject.org -//! @license GNU General Public License v3 or higher (see COPYING) -//! @copyright Forschungszentrum Jülich GmbH 2018 -//! @authors Scientific Computing Group at MLZ (see CITATION, AUTHORS) -// -// ************************************************************************** // - -#ifndef BORNAGAIN_TESTS_FUNCTIONAL_CORE_CORESTANDARDTEST_CORESTANDARDTEST_H -#define BORNAGAIN_TESTS_FUNCTIONAL_CORE_CORESTANDARDTEST_CORESTANDARDTEST_H - -#include "Tests/Functional/Std/IStandardTest.h" - -class Simulation; - -//! A functional test of BornAgain/Core. -//! Performs a given standard simulation, and compares results with reference data. - -class CoreStandardTest : public IStandardTest -{ -public: - using IStandardTest::IStandardTest; - - bool runTest() final; -}; - -#endif // BORNAGAIN_TESTS_FUNCTIONAL_CORE_CORESTANDARDTEST_CORESTANDARDTEST_H diff --git a/Tests/Functional/Core/SelfConsistenceTest/CMakeLists.txt b/Tests/Functional/Core/SelfConsistenceTest/CMakeLists.txt deleted file mode 100644 index 5f7ca44e1a762934b7da20fa041945bed8febc00..0000000000000000000000000000000000000000 --- a/Tests/Functional/Core/SelfConsistenceTest/CMakeLists.txt +++ /dev/null @@ -1,23 +0,0 @@ -############################################################################ -# Tests/Functional/Core/SelfConsistenceTest/CMakeLists.txt -############################################################################ - -set(test TestSelfConsistence) - -# CoreStandardTest cases: -set(test_cases - SpecularWithSlicing - InstrumentDefinitionComparison - TOFResolutionComparison - PolarizedQAngleReflectivityPP - PolarizedQAngleReflectivityMM - ) - -file(GLOB source_files "*.cpp") - -add_executable(${test} ${source_files}) -target_link_libraries(${test} BornAgainCore BornAgainTestMachinery) -foreach(test_case ${test_cases}) - add_test(${test}/${test_case} - ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${test} ${test_case}) -endforeach() diff --git a/Tests/Functional/Core/SelfConsistenceTest/SelfConsistenceTest.cpp b/Tests/Functional/Core/SelfConsistenceTest/SelfConsistenceTest.cpp deleted file mode 100644 index f1b61cba801870afc06f04ba8b85ba0b6b1c3565..0000000000000000000000000000000000000000 --- a/Tests/Functional/Core/SelfConsistenceTest/SelfConsistenceTest.cpp +++ /dev/null @@ -1,73 +0,0 @@ -// ************************************************************************** // -// -// BornAgain: simulate and fit scattering at grazing incidence -// -//! @file Tests/Functional/Core/SelfConsistenceTest/SelfConsistenceTest.cpp -//! @brief Implements class SelfConsistenceTest. -//! -//! @homepage http://www.bornagainproject.org -//! @license GNU General Public License v3 or higher (see COPYING) -//! @copyright Forschungszentrum Jülich GmbH 2018 -//! @authors Scientific Computing Group at MLZ (see CITATION, AUTHORS) -// -// ************************************************************************** // - -#include "Tests/Functional/Core/SelfConsistenceTest/SelfConsistenceTest.h" -#include "BATesting.h" -#include "Core/InputOutput/IntensityDataIOFactory.h" -#include "Core/Instrument/IntensityDataFunctions.h" -#include "Core/Simulation/Simulation.h" -#include "Core/Tools/FileSystemUtils.h" -#include <cassert> - -namespace -{ -std::string composeName(std::string d_name, std::string test_name, size_t index) -{ - std::stringstream ss; - ss << index; - return FileSystemUtils::jointPath(d_name, test_name + ss.str() + ".int.gz"); -} -} // namespace - -SelfConsistenceTest::SelfConsistenceTest(const std::string& name, - std::vector<std::unique_ptr<Simulation>> simulations, - double threshold) - : m_name(name), m_simulations(std::move(simulations)), m_threshold(threshold) -{ - assert(m_simulations.size() >= 2); // need at least two simulations to compare -} - -bool SelfConsistenceTest::runTest() -{ - // Run simulation. - std::vector<std::unique_ptr<OutputData<double>>> results; - for (auto& simulation : m_simulations) { - simulation->runSimulation(); - auto sim_result = simulation->result(); - results.push_back(sim_result.data()); - } - - // Compare with reference if available. - bool success = true; - for (size_t i = 1, size = results.size(); i < size; ++i) { - const bool outcome = - IntensityDataFunctions::checkRelativeDifference(*results[i], *results[0], m_threshold); - if (!outcome) { // compose message and save results - std::stringstream ss; - ss << "Simulations 0 and " << i << " yield different results.\n" - << "Results are stored in\n"; - const std::string output_dname = BATesting::SelfConsistenceOutputDir(); - FileSystemUtils::createDirectories(output_dname); - for (size_t index : {size_t(0), i}) { - const std::string fname = composeName(output_dname, m_name, index); - IntensityDataIOFactory::writeOutputData(*results[index], fname); - ss << "- " << fname << "\n"; - } - std::cout << ss.str(); - } - success = success && outcome; - } - - return success; -} diff --git a/Tests/Functional/Core/SelfConsistenceTest/SelfConsistenceTest.h b/Tests/Functional/Core/SelfConsistenceTest/SelfConsistenceTest.h deleted file mode 100644 index 7f6e4875994c835218c9e18d9304ca2ffc7f91d0..0000000000000000000000000000000000000000 --- a/Tests/Functional/Core/SelfConsistenceTest/SelfConsistenceTest.h +++ /dev/null @@ -1,42 +0,0 @@ -// ************************************************************************** // -// -// BornAgain: simulate and fit scattering at grazing incidence -// -//! @file Tests/Functional/Core/SelfConsistenceTest/SelfConsistenceTest.h -//! @brief Defines class SelfConsistenceTest. -//! -//! @homepage http://www.bornagainproject.org -//! @license GNU General Public License v3 or higher (see COPYING) -//! @copyright Forschungszentrum Jülich GmbH 2018 -//! @authors Scientific Computing Group at MLZ (see CITATION, AUTHORS) -// -// ************************************************************************** // - -#ifndef BORNAGAIN_TESTS_FUNCTIONAL_CORE_SELFCONSISTENCETEST_SELFCONSISTENCETEST_H -#define BORNAGAIN_TESTS_FUNCTIONAL_CORE_SELFCONSISTENCETEST_SELFCONSISTENCETEST_H - -#include <memory> -#include <string> -#include <vector> - -class Simulation; - -//! A functional test of BornAgain/Core. -//! Performs given simulations and compares their results with each other. - -class SelfConsistenceTest -{ -public: - SelfConsistenceTest(const std::string& name, - std::vector<std::unique_ptr<Simulation>> simulations, double threshold); - ~SelfConsistenceTest() = default; - - bool runTest(); - -private: - std::string m_name; - std::vector<std::unique_ptr<Simulation>> m_simulations; - double m_threshold; -}; - -#endif // BORNAGAIN_TESTS_FUNCTIONAL_CORE_SELFCONSISTENCETEST_SELFCONSISTENCETEST_H diff --git a/Tests/Functional/Core/SelfConsistenceTest/SelfConsistenceTestService.cpp b/Tests/Functional/Core/SelfConsistenceTest/SelfConsistenceTestService.cpp deleted file mode 100644 index 08562e4f0670e94deddbe2947937fe80c018812e..0000000000000000000000000000000000000000 --- a/Tests/Functional/Core/SelfConsistenceTest/SelfConsistenceTestService.cpp +++ /dev/null @@ -1,41 +0,0 @@ -// ************************************************************************** // -// -// BornAgain: simulate and fit scattering at grazing incidence -// -//! @file Tests/Functional/Core/SelfConsistenceTest/SelfConsistenceTestService.cpp -//! @brief Implements class SelfConsistenceTestService. -//! -//! @homepage http://www.bornagainproject.org -//! @license GNU General Public License v3 or higher (see COPYING) -//! @copyright Forschungszentrum Jülich GmbH 2018 -//! @authors Scientific Computing Group at MLZ (see CITATION, AUTHORS) -// -// ************************************************************************** // - -#include "Tests/Functional/Core/SelfConsistenceTest/SelfConsistenceTestService.h" -#include "Core/Simulation/Simulation.h" -#include "Core/StandardSamples/SampleBuilderFactory.h" -#include "Core/StandardSamples/SimulationFactory.h" -#include "Tests/Functional/Core/SelfConsistenceTest/SelfConsistenceTest.h" -#include "Tests/Functional/Std/StandardTestCatalog.h" - -using sim_ptr = std::unique_ptr<Simulation>; -using builder_ptr = std::unique_ptr<IMultiLayerBuilder>; - -bool SelfConsistenceTestService::execute(int argc, char** argv) -{ - assert(argc > 1); - StandardTestInfo info = StandardTestCatalog().testInfo(argv[1]); - - std::vector<sim_ptr> simulations; - for (size_t i = 0, size = info.size(); i < size; ++i) { - builder_ptr builder(SampleBuilderFactory().createItem(info.m_sample_builder_names[i])); - sim_ptr simulation(SimulationFactory().createItem(info.m_simulation_names[i])); - simulation->setSampleBuilder(std::move(builder)); - simulations.push_back(std::move(simulation)); - } - - auto test = std::make_unique<SelfConsistenceTest>(info.m_test_name, std::move(simulations), - info.m_threshold); - return test->runTest(); -} diff --git a/Tests/Functional/Core/SelfConsistenceTest/SelfConsistenceTestService.h b/Tests/Functional/Core/SelfConsistenceTest/SelfConsistenceTestService.h deleted file mode 100644 index 00183f389822eb5db8e1b9d2aaad722114a6dda1..0000000000000000000000000000000000000000 --- a/Tests/Functional/Core/SelfConsistenceTest/SelfConsistenceTestService.h +++ /dev/null @@ -1,28 +0,0 @@ -// ************************************************************************** // -// -// BornAgain: simulate and fit scattering at grazing incidence -// -//! @file Tests/Functional/Core/SelfConsistenceTest/SelfConsistenceTestService.h -//! @brief Defines class SelfConsistenceTestService. -//! -//! @homepage http://www.bornagainproject.org -//! @license GNU General Public License v3 or higher (see COPYING) -//! @copyright Forschungszentrum Jülich GmbH 2018 -//! @authors Scientific Computing Group at MLZ (see CITATION, AUTHORS) -// -// ************************************************************************** // - -#ifndef BORNAGAIN_TESTS_FUNCTIONAL_CORE_SELFCONSISTENCETEST_SELFCONSISTENCETESTSERVICE_H -#define BORNAGAIN_TESTS_FUNCTIONAL_CORE_SELFCONSISTENCETEST_SELFCONSISTENCETESTSERVICE_H - -//! @class SelfConsistenceTestService -//! @brief Contains static method to run self-consistence functional test from standalone -//! executable. - -class SelfConsistenceTestService -{ -public: - static bool execute(int argc, char** argv); -}; - -#endif // BORNAGAIN_TESTS_FUNCTIONAL_CORE_SELFCONSISTENCETEST_SELFCONSISTENCETESTSERVICE_H diff --git a/Tests/Functional/Core/Std/CMakeLists.txt b/Tests/Functional/Core/Std/CMakeLists.txt new file mode 100644 index 0000000000000000000000000000000000000000..4946afcc7152da9c6d19f8fac1aa2dfb97272ca8 --- /dev/null +++ b/Tests/Functional/Core/Std/CMakeLists.txt @@ -0,0 +1,13 @@ +include(GoogleTest) # provides gtest_discover_tests + +set(test TestCoreStd) + +file(GLOB source_files "*.cpp" "../../Std/Run.cpp") + +add_executable(${test} ${source_files} ${CMAKE_SOURCE_DIR}/Tests/GTestWrapper/TestAll.cpp) +target_include_directories(${test} PUBLIC + ${BornAgainCore_INCLUDE_DIRS} + ${CMAKE_SOURCE_DIR}/ThirdParty/common/gtest/gtest-1.8.0/include) +target_link_libraries(${test} BornAgainCore gtest) + +gtest_discover_tests(${test} TEST_PREFIX Core.) diff --git a/Tests/Functional/Core/CoreStandardTest/CoreStandardTest.cpp b/Tests/Functional/Core/Std/Check.cpp similarity index 59% rename from Tests/Functional/Core/CoreStandardTest/CoreStandardTest.cpp rename to Tests/Functional/Core/Std/Check.cpp index 4ba2a251a837c8e09a157431d3764bdab8ab7480..e7a1a06ad7fa2f210b5222ba0f856747de3ccaa0 100644 --- a/Tests/Functional/Core/CoreStandardTest/CoreStandardTest.cpp +++ b/Tests/Functional/Core/Std/Check.cpp @@ -2,8 +2,8 @@ // // BornAgain: simulate and fit scattering at grazing incidence // -//! @file Tests/Functional/Core/CoreStandardTest/CoreStandardTest.cpp -//! @brief Implements class CoreStandardTest. +//! @file Tests/Functional/Core/Std/Check.cpp +//! @brief Implements function checkSimulation for core standard test //! //! @homepage http://www.bornagainproject.org //! @license GNU General Public License v3 or higher (see COPYING) @@ -12,45 +12,50 @@ // // ************************************************************************** // -#include "Tests/Functional/Core/CoreStandardTest/CoreStandardTest.h" #include "BABuild.h" #include "BATesting.h" #include "Core/InputOutput/IntensityDataIOFactory.h" #include "Core/Instrument/IntensityDataFunctions.h" +#include "Core/Multilayer/IMultiLayerBuilder.h" +#include "Core/Multilayer/MultiLayer.h" #include "Core/Simulation/Simulation.h" +#include "Core/StandardSamples/SampleBuilderFactory.h" +#include "Core/StandardSamples/SimulationFactory.h" #include "Core/Tools/FileSystemUtils.h" #include <cassert> +#include <iostream> -bool CoreStandardTest::runTest() +bool checkSimulation(const std::string& name, const Simulation& direct_simulation, + const double limit) { + const auto result_data = direct_simulation.result().data(); + std::unique_ptr<OutputData<double>> reference; // Load reference if available - assert(m_name != ""); + assert(name != ""); try { reference.reset(IntensityDataIOFactory::readOutputData( - FileSystemUtils::jointPath(BATesting::CoreReferenceDir(), m_name + ".int.gz"))); + FileSystemUtils::jointPath(BATesting::StdReferenceDir(), name + ".int.gz"))); } catch (const std::exception&) { - std::cout << "No reference found, but we proceed with the simulation to create a new one\n"; + std::cout + << "No reference found, but we proceed with the simulation to create a new one\n"; } - // Run simulation. - assert(m_reference_simulation); - m_reference_simulation->runSimulation(); - auto sim_result = m_reference_simulation->result(); - const auto result_data = sim_result.data(); - // Compare with reference if available. bool success = false; - if (reference) + if (reference) { + std::cout << "- check diff" << std::endl; success = - IntensityDataFunctions::checkRelativeDifference(*result_data, *reference, m_threshold); + IntensityDataFunctions::checkRelativeDifference(*reference, *result_data, limit); + } // Save simulation if different from reference. if (!success) { - FileSystemUtils::createDirectories(BATesting::CoreOutputDir()); + std::cout << "- failure ..." << std::endl; + FileSystemUtils::createDirectories(BATesting::StdOutputDir()); std::string out_fname = - FileSystemUtils::jointPath(BATesting::CoreOutputDir(), m_name + ".int.gz"); + FileSystemUtils::jointPath(BATesting::StdOutputDir(), name + ".int.gz"); IntensityDataIOFactory::writeOutputData(*result_data, out_fname); std::cout << "New simulation result stored in " << out_fname << "\n" << "To visualize an intensity map, use " << BABuild::buildBinDir() @@ -60,5 +65,6 @@ bool CoreStandardTest::runTest() << "If the new result is correct, then move it to " << BATesting::CoreReferenceDir() << "/\n"; } + return success; } diff --git a/Tests/Functional/Core/Std/macros.cpp b/Tests/Functional/Core/Std/macros.cpp new file mode 100644 index 0000000000000000000000000000000000000000..4b5eead7809749134d7a3844009a23f16c0f8533 --- /dev/null +++ b/Tests/Functional/Core/Std/macros.cpp @@ -0,0 +1,16 @@ +// ************************************************************************** // +// +// BornAgain: simulate and fit scattering at grazing incidence +// +//! @file Tests/Functional/Core/Std/macros.cpp +//! @brief Implements Core standard tests through gtest macros. +//! +//! @homepage http://www.bornagainproject.org +//! @license GNU General Public License v3 or higher (see COPYING) +//! @copyright Forschungszentrum Jülich GmbH 2018 +//! @authors Scientific Computing Group at MLZ (see CITATION, AUTHORS) +// +// ************************************************************************** // + +#include "Tests/Functional/Std/Run.h" +#include "Tests/Functional/Std/StandardTests.h" // contains macros that are executed by gtest diff --git a/Tests/Functional/GUI/CMakeLists.txt b/Tests/Functional/GUI/CMakeLists.txt index 539f854e04a6957fcc9e3af185f3fbb191a23225..a26a369a095164c65e5e80b0c4f7a47dd4535fcd 100644 --- a/Tests/Functional/GUI/CMakeLists.txt +++ b/Tests/Functional/GUI/CMakeLists.txt @@ -1,5 +1,5 @@ find_package(Qt5Widgets REQUIRED) -add_subdirectory(GUIStandardTest) +add_subdirectory(Std) add_subdirectory(Translate) add_subdirectory(Other) diff --git a/Tests/Functional/GUI/GUIStandardTest/CMakeLists.txt b/Tests/Functional/GUI/GUIStandardTest/CMakeLists.txt deleted file mode 100644 index 4cb72336872b02efcff70d6a459b0f5ab1e88ed5..0000000000000000000000000000000000000000 --- a/Tests/Functional/GUI/GUIStandardTest/CMakeLists.txt +++ /dev/null @@ -1,75 +0,0 @@ -############################################################################ -# Tests/Functional/GUI/CMakeLists.txt -############################################################################ - -set(test TestGUIStandard) - -set(test_cases - ApproximationDA - ApproximationLMA - ApproximationSSCA - Basic2DParaCrystal - BeamDivergence - BoxCompositionRotateX - BoxCompositionRotateY - BoxCompositionRotateZ - BoxCompositionRotateZandY - BoxesWithSpecular - BoxStackComposition - CenteredSquareLattice - ConstantBackground - CoreShellBoxRotateZandY - CoreShellParticle - CosineRipple - CylindersAndPrisms - CylindersInSSCA - CylindersWithSizeDistribution - DetectorResolution - FormFactors - GISASAbsorptiveSLDLayers - HexParaCrystal - LargeCylindersMonteCarlo - Lattice1D - MagneticSpheres - MesoCrystal - MultiLayerWithRoughness - MultipleLayout - ParticleComposition - RadialParaCrystal - HardDisk - RectDetectorGeneric - RectDetectorPerpToDirectBeam - RectDetectorPerpToReflectedBeam - RectDetectorPerpToReflectedBeamDpos - RectDetectorPerpToSample - RectParaCrystal - RotatedCylinder - RotatedPyramids - RotatedSquareLattice - FiniteSquareLattice - SimulationWithMasks - SquareLattice - TransformBox - TriangularRipple - AsymRipple - TwoTypesCylindersDistribution - SphericalDetWithRoi - RectDetWithRoi - SlicedComposition - RotatedPyramidsDistribution - SpheresWithLimitsDistribution - ConesWithLimitsDistribution - LinkedBoxDistribution - OffSpecularResonator - SquareBeamFootprint - GaussianBeamFootprint - SpecularDivergentBeam - HomogeneousTiNiSampleWithAbsorption -) - -add_executable(${test} main.cpp GUIStandardTest.cpp GUIStandardTest.h ) -target_link_libraries(${test} BornAgainCore BornAgainGUI BornAgainTestMachinery) - -foreach(test_case ${test_cases}) - add_test(${test}/${test_case} ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${test} ${test_case}) -endforeach() diff --git a/Tests/Functional/GUI/GUIStandardTest/GUIStandardTest.h b/Tests/Functional/GUI/GUIStandardTest/GUIStandardTest.h deleted file mode 100644 index 68cf349d02f2364b8e4c85c568e96e6bf91276d4..0000000000000000000000000000000000000000 --- a/Tests/Functional/GUI/GUIStandardTest/GUIStandardTest.h +++ /dev/null @@ -1,32 +0,0 @@ -// ************************************************************************** // -// -// BornAgain: simulate and fit scattering at grazing incidence -// -//! @file Tests/Functional/GUI/GUIStandardTest/GUIStandardTest.h -//! @brief Defines class GUIStandardTest -//! -//! @homepage http://www.bornagainproject.org -//! @license GNU General Public License v3 or higher (see COPYING) -//! @copyright Forschungszentrum Jülich GmbH 2018 -//! @authors Scientific Computing Group at MLZ (see CITATION, AUTHORS) -// -// ************************************************************************** // - -#ifndef BORNAGAIN_TESTS_FUNCTIONAL_GUI_GUISTANDARDTEST_GUISTANDARDTEST_H -#define BORNAGAIN_TESTS_FUNCTIONAL_GUI_GUISTANDARDTEST_GUISTANDARDTEST_H - -#include "Tests/Functional/Std/IStandardTest.h" - -//! A functional test of the BornAgain GUI. -//! Performs a given standard simulation directly, and through domain->GUI->domain, -//! and compares results. - -class GUIStandardTest : public IStandardTest -{ -public: - using IStandardTest::IStandardTest; - - bool runTest() final; -}; - -#endif // BORNAGAIN_TESTS_FUNCTIONAL_GUI_GUISTANDARDTEST_GUISTANDARDTEST_H diff --git a/Tests/Functional/GUI/GUIStandardTest/main.cpp b/Tests/Functional/GUI/GUIStandardTest/main.cpp deleted file mode 100644 index 4d1bc28ecfcd99ef4f6ca5aff4f13012965343b9..0000000000000000000000000000000000000000 --- a/Tests/Functional/GUI/GUIStandardTest/main.cpp +++ /dev/null @@ -1,30 +0,0 @@ -// ************************************************************************** // -// -// BornAgain: simulate and fit scattering at grazing incidence -// -//! @file Tests/Functional/GUI/GUIStandardTest/main.cpp -//! @brief Implements program GUIStandardTest to run gui functional tests -//! -//! @homepage http://www.bornagainproject.org -//! @license GNU General Public License v3 or higher (see COPYING) -//! @copyright Forschungszentrum Jülich GmbH 2018 -//! @authors Scientific Computing Group at MLZ (see CITATION, AUTHORS) -// -// ************************************************************************** // - -#include "Tests/Functional/GUI/GUIStandardTest/GUIStandardTest.h" -#include "Tests/Functional/Std/StandardTestService.h" -#include <iostream> - -//! Runs GUIStandardTest on a standard simulation indicated by argv[1]. - -int main(int argc, char** argv) -{ - bool ok = StandardTestService<GUIStandardTest>().execute(argc, argv); - if (!ok) - std::cout << "\n" - << "hint: If this test fails while all other form-factor related tests\n" - << "pass then a likely cause is a change in the form factor API that is\n" - << "not correctly reflected in the GUIDomainSampleVisitor class.\n\n"; - return !ok; -} diff --git a/Tests/Functional/GUI/Std/CMakeLists.txt b/Tests/Functional/GUI/Std/CMakeLists.txt new file mode 100644 index 0000000000000000000000000000000000000000..bc9bd07e7627745fa29ec54671ea29dd7b262e58 --- /dev/null +++ b/Tests/Functional/GUI/Std/CMakeLists.txt @@ -0,0 +1,13 @@ +include(GoogleTest) # provides gtest_discover_tests + +set(test TestGuiStd) + +file(GLOB source_files "*.cpp" "../../Std/Run.cpp") + +add_executable(${test} ${source_files} ${CMAKE_SOURCE_DIR}/Tests/GTestWrapper/TestAll.cpp) +target_include_directories(${test} PUBLIC + ${BornAgainGUI_INCLUDE_DIRS} + ${CMAKE_SOURCE_DIR}/ThirdParty/common/gtest/gtest-1.8.0/include) +target_link_libraries(${test} BornAgainGUI gtest) + +gtest_discover_tests(${test} TEST_PREFIX Gui.) diff --git a/Tests/Functional/GUI/GUIStandardTest/GUIStandardTest.cpp b/Tests/Functional/GUI/Std/Check.cpp similarity index 54% rename from Tests/Functional/GUI/GUIStandardTest/GUIStandardTest.cpp rename to Tests/Functional/GUI/Std/Check.cpp index 3c754aa71d2646d8c6b9bd0fdbc56ae276c7bcdb..2a913d42a4ba67cc5b0445e4c5922d4b3c6fe042 100644 --- a/Tests/Functional/GUI/GUIStandardTest/GUIStandardTest.cpp +++ b/Tests/Functional/GUI/Std/Check.cpp @@ -2,8 +2,8 @@ // // BornAgain: simulate and fit scattering at grazing incidence // -//! @file Tests/Functional/GUI/GUIStandardTest/GUIStandardTest.cpp -//! @brief Implements class GUIStandardTest +//! @file Tests/Functional/GUI/Std/Check.cpp +//! @brief Implements function checkSimulation for Python standard test //! //! @homepage http://www.bornagainproject.org //! @license GNU General Public License v3 or higher (see COPYING) @@ -12,7 +12,6 @@ // // ************************************************************************** // -#include "Tests/Functional/GUI/GUIStandardTest/GUIStandardTest.h" #include "Core/Instrument/IntensityDataFunctions.h" #include "Core/Simulation/Simulation.h" #include "GUI/coregui/Models/DocumentModel.h" @@ -23,9 +22,8 @@ #include "GUI/coregui/Models/MaterialModel.h" #include "GUI/coregui/Models/SampleModel.h" -namespace -{ -std::unique_ptr<Simulation> createDomainSimulation(const Simulation& origin) +std::unique_ptr<OutputData<double>> domainData(const std::string& /*test_name*/, + const Simulation& direct_simulation) { // initializing necessary GUI DocumentModel documentModel; @@ -34,27 +32,24 @@ std::unique_ptr<Simulation> createDomainSimulation(const Simulation& origin) MaterialModel materialModel; // populating GUI models from domain - GUIObjectBuilder::populateSampleModelFromSim(&sampleModel, &materialModel, origin); - GUIObjectBuilder::populateInstrumentModel(&instrumentModel, origin); - GUIObjectBuilder::populateDocumentModel(&documentModel, origin); + GUIObjectBuilder::populateSampleModelFromSim(&sampleModel, &materialModel, direct_simulation); + GUIObjectBuilder::populateInstrumentModel(&instrumentModel, direct_simulation); + GUIObjectBuilder::populateDocumentModel(&documentModel, direct_simulation); - auto result = DomainSimulationBuilder::createSimulation(sampleModel.multiLayerItem(), - instrumentModel.instrumentItem(), - documentModel.simulationOptionsItem()); + std::unique_ptr<Simulation> domain_simulation = DomainSimulationBuilder::createSimulation( + sampleModel.multiLayerItem(), instrumentModel.instrumentItem(), + documentModel.simulationOptionsItem()); - return result; + domain_simulation->runSimulation(); + return std::unique_ptr<OutputData<double>>(domain_simulation->result().data()); } -} // namespace -bool GUIStandardTest::runTest() +bool checkSimulation(const std::string& name, const Simulation& direct_simulation, + const double limit) { - m_reference_simulation->runSimulation(); - const SimulationResult& ref_result = m_reference_simulation->result(); + const std::unique_ptr<OutputData<double>> domain_data = domainData(name, direct_simulation); - std::unique_ptr<Simulation> domain_simulation = createDomainSimulation(*m_reference_simulation); - domain_simulation->runSimulation(); - const SimulationResult& domain_result = domain_simulation->result(); + const std::unique_ptr<OutputData<double>> ref_data = direct_simulation.result().data(); - return IntensityDataFunctions::checkRelativeDifference(*domain_result.data(), - *ref_result.data(), m_threshold); + return IntensityDataFunctions::checkRelativeDifference(*domain_data, *ref_data, limit); } diff --git a/Tests/Functional/Core/SelfConsistenceTest/main.cpp b/Tests/Functional/GUI/Std/macros.cpp similarity index 54% rename from Tests/Functional/Core/SelfConsistenceTest/main.cpp rename to Tests/Functional/GUI/Std/macros.cpp index d13fff8bdcdd0e2366f8ca034aeacd0369ba6975..43e3e119d34a821ebae4abd0275f168e5a2fc194 100644 --- a/Tests/Functional/Core/SelfConsistenceTest/main.cpp +++ b/Tests/Functional/GUI/Std/macros.cpp @@ -2,8 +2,8 @@ // // BornAgain: simulate and fit scattering at grazing incidence // -//! @file Tests/Functional/Core/SelfConsistenceTest/main.cpp -//! @brief Implements program CoreStandardTest to run core functional tests +//! @file Tests/Functional/GUI/Std/macros.cpp +//! @brief Implements Core standard tests through gtest macros. //! //! @homepage http://www.bornagainproject.org //! @license GNU General Public License v3 or higher (see COPYING) @@ -12,11 +12,7 @@ // // ************************************************************************** // -#include "Tests/Functional/Core/SelfConsistenceTest/SelfConsistenceTestService.h" +#include "Tests/Functional/Std/Run.h" -//! Runs CoreStandardTest on a standard simulation indicated by argv[1]. - -int main(int argc, char** argv) -{ - return SelfConsistenceTestService::execute(argc, argv) ? 0 : 1; -} +#define GUI_STD_TEST +#include "Tests/Functional/Std/StandardTests.h" // contains macros that are executed by gtest diff --git a/Tests/Functional/Python/CMakeLists.txt b/Tests/Functional/Python/CMakeLists.txt index b7a973d0adf9f38c89c5c6d02b65d10684007988..2382fd012d3151a06a2b9a02a27a4b4950c27d79 100644 --- a/Tests/Functional/Python/CMakeLists.txt +++ b/Tests/Functional/Python/CMakeLists.txt @@ -1,10 +1,8 @@ # Collection of Python related tests -add_subdirectory(PyStandard) +add_subdirectory(Std) add_subdirectory(PyExamples) add_subdirectory(PyCore) add_subdirectory(PyFit) add_subdirectory(PyPersistence) add_subdirectory(PyEmbedded) - - diff --git a/Tests/Functional/Python/PyCore/polmagcylinders2.py b/Tests/Functional/Python/PyCore/polmagcylinders2.py index c1dbb2006d5b2c4af1b4db17440f58239cec0e94..2fe13d2c191b01e245ffe320c1f94856cfad0efd 100644 --- a/Tests/Functional/Python/PyCore/polmagcylinders2.py +++ b/Tests/Functional/Python/PyCore/polmagcylinders2.py @@ -8,12 +8,13 @@ from utils import get_difference from bornagain import * -REFERENCE_DIR = "@TEST_REFERENCE_DIR@/Core" +REFERENCE_DIR = "@TEST_REFERENCE_DIR@/Python" # ---------------------------------- # describe sample and run simulation # ---------------------------------- def getSimulationIntensity(rho_beam, efficiency): + print("- simulate", flush=True) # defining materials mAmbience = HomogeneousMaterial("Air", 0.0, 0.0) mSubstrate = HomogeneousMaterial("Substrate", 15e-6, 0.0) @@ -48,6 +49,7 @@ def getSimulationIntensity(rho_beam, efficiency): simulation.setSample(multi_layer) simulation.setBeamIntensity(1e9) simulation.runSimulation() + print("- - simulation done", flush=True) return simulation.result() @@ -56,12 +58,17 @@ def get_reference_data(filename): """ read and return reference data from file """ - return IntensityDataIOFactory.readIntensityData(os.path.join(REFERENCE_DIR,filename)) + path = os.path.join(REFERENCE_DIR,filename) + print("- read reference from", path, flush=True) + ret = IntensityDataIOFactory.readIntensityData(path) + print("- - reference read", flush=True) + return ret # -------------------------------------------------------------- # run test and analyse test results # -------------------------------------------------------------- def run_test(): + print("run test", flush=True) zplus = kvector_t(0.0, 0.0, 1.0) zmin = kvector_t(0.0, 0.0, -1.0) diff --git a/Tests/Functional/Python/PyStandard/CMakeLists.txt b/Tests/Functional/Python/PyStandard/CMakeLists.txt deleted file mode 100644 index 86a40daeef7cd8ab4690fca645b017808f63f54d..0000000000000000000000000000000000000000 --- a/Tests/Functional/Python/PyStandard/CMakeLists.txt +++ /dev/null @@ -1,78 +0,0 @@ -############################################################################ -# Tests/Functional/PyCore/suite/CMakeLists.txt -############################################################################ - -set(test TestPyStandard) - -set(output_dir ${TEST_OUTPUT_DIR}/Functional/Python/PyStandard) -file(MAKE_DIRECTORY ${output_dir}) - -set(test_cases - ApproximationDA - ApproximationLMA - ApproximationSSCA - Basic2DParaCrystal - BeamDivergence - BoxCompositionRotateX - BoxCompositionRotateY - BoxCompositionRotateZ - BoxCompositionRotateZandY - BoxesWithSpecular - BoxStackComposition - CenteredSquareLattice - ConstantBackground - CoreShellBoxRotateZandY - CoreShellParticle - CosineRipple - CylindersAndPrisms - CylindersInSSCA - CylindersWithSizeDistribution - DetectorResolution - FormFactors - GISASAbsorptiveSLDLayers - HexParaCrystal - LargeCylindersMonteCarlo - Lattice1D - MagneticSpheres - MultiLayerWithRoughness - MultipleLayout - ParticleComposition - RadialParaCrystal - HardDisk - RectDetectorGeneric - RectDetectorPerpToDirectBeam - RectDetectorPerpToReflectedBeam - RectDetectorPerpToReflectedBeamDpos - RectDetectorPerpToSample - RectParaCrystal - RotatedCylinder - RotatedPyramids - RotatedSquareLattice - FiniteSquareLattice - SimulationWithMasks - SquareLattice - TransformBox - TriangularRipple - AsymRipple - TwoTypesCylindersDistribution - SphericalDetWithRoi - RectDetWithRoi - SlicedComposition - RotatedPyramidsDistribution - SpheresWithLimitsDistribution - ConesWithLimitsDistribution - LinkedBoxDistribution - OffSpecularResonator - GaussianBeamFootprint - SpecularDivergentBeam - HomogeneousTiNiSampleWithAbsorption - RelativeResolutionTOF -) - -add_executable(${test} main.cpp PyStandardTest.h PyStandardTest.cpp) -target_link_libraries(${test} BornAgainCore BornAgainTestMachinery) - -foreach(test_case ${test_cases}) - add_test(${test}/${test_case} - ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${test} ${test_case}) -endforeach() diff --git a/Tests/Functional/Python/PyStandard/PyStandardTest.cpp b/Tests/Functional/Python/PyStandard/PyStandardTest.cpp deleted file mode 100644 index 4f771a86e7ad861b7aad2077662bdef35cd7aa74..0000000000000000000000000000000000000000 --- a/Tests/Functional/Python/PyStandard/PyStandardTest.cpp +++ /dev/null @@ -1,87 +0,0 @@ -// ************************************************************************** // -// -// BornAgain: simulate and fit scattering at grazing incidence -// -//! @file Tests/Functional/Python/PyStandard/PyStandardTest.cpp -//! @brief Implements class PyExportTest -//! -//! @homepage http://www.bornagainproject.org -//! @license GNU General Public License v3 or higher (see COPYING) -//! @copyright Forschungszentrum Jülich GmbH 2018 -//! @authors Scientific Computing Group at MLZ (see CITATION, AUTHORS) -// -// ************************************************************************** // - -#include "Tests/Functional/Python/PyStandard/PyStandardTest.h" -#include "BABuild.h" -#include "BATesting.h" -#include "Core/Export/ExportToPython.h" -#include "Core/InputOutput/IntensityDataIOFactory.h" -#include "Core/Instrument/IntensityDataFunctions.h" -#include "Core/Simulation/Simulation.h" -#include "Core/Tools/FileSystemUtils.h" -#include <cassert> -#include <fstream> -#include <iostream> - -namespace -{ - -//! Runs a python command, prints messages, returns true unless the system call failed. -bool runPython(const std::string& py_command) -{ -#ifndef _WIN32 - std::string sys_command = std::string("PYTHONPATH=") + BABuild::buildLibDir() + " " - + std::string("NOPLOT=TRUE") + " " + BABuild::pythonExecutable() - + " -B " + py_command; -#else - std::string sys_command = std::string("set PYTHONPATH=") + BABuild::buildLibDir() + " & " - + std::string("set NOPLOT=TRUE") + " & \"" - + BABuild::pythonExecutable() + "\" -B " + py_command; -#endif - std::cout << sys_command << std::endl /*sic*/; // flush output before calling std::system - int ret = std::system(sys_command.c_str()); - if (ret != 0) { - std::cerr << "Command returned non-zero value " << ret << "\n"; - return false; - } - return true; -} - -} // namespace - -//! Runs simulation via a Python script and directly, and returns true if the results agree. -bool PyStandardTest::runTest() -{ - // Set output data filename, and remove old output files - assert(m_name != ""); - std::string output_name = FileSystemUtils::jointPath(BATesting::PyStandardOutputDir(), m_name); - std::string output_path = output_name + ".ref.int.gz"; - std::remove(output_path.c_str()); - std::cout << "Removed old output " << output_path << "\n"; - - // Generate Python script - std::string pyscript_filename = - FileSystemUtils::jointPath(BATesting::PyStandardOutputDir(), m_name + ".py"); - std::ofstream pythonFile(pyscript_filename); - pythonFile << ExportToPython::generatePyExportTest(*m_reference_simulation); - pythonFile.close(); - - // Run Python script - if (!runPython(pyscript_filename + " " + output_path)) - return false; - - // Run direct simulation - std::cout << "Running simulation and comparing with result from Py script\n"; - m_reference_simulation->runSimulation(); - auto ref_result = m_reference_simulation->result(); - - const auto reference_data = ref_result.data(); - - // Compare results - const std::unique_ptr<OutputData<double>> domain_data( - IntensityDataIOFactory::readOutputData(output_path)); - - return IntensityDataFunctions::checkRelativeDifference(*domain_data, *reference_data, - m_threshold); -} diff --git a/Tests/Functional/Python/PyStandard/PyStandardTest.h b/Tests/Functional/Python/PyStandard/PyStandardTest.h deleted file mode 100644 index 200b847bcde695ef7ecca835bb9e5bf07d4e1cb9..0000000000000000000000000000000000000000 --- a/Tests/Functional/Python/PyStandard/PyStandardTest.h +++ /dev/null @@ -1,31 +0,0 @@ -// ************************************************************************** // -// -// BornAgain: simulate and fit scattering at grazing incidence -// -//! @file Tests/Functional/Python/PyStandard/PyStandardTest.h -//! @brief Defines class PyStandardTest -//! -//! @homepage http://www.bornagainproject.org -//! @license GNU General Public License v3 or higher (see COPYING) -//! @copyright Forschungszentrum Jülich GmbH 2018 -//! @authors Scientific Computing Group at MLZ (see CITATION, AUTHORS) -// -// ************************************************************************** // - -#ifndef BORNAGAIN_TESTS_FUNCTIONAL_PYTHON_PYSTANDARD_PYSTANDARDTEST_H -#define BORNAGAIN_TESTS_FUNCTIONAL_PYTHON_PYSTANDARD_PYSTANDARDTEST_H - -#include "Tests/Functional/Std/IStandardTest.h" - -//! Tests Python scripts generation from Core objects. -//! Performs core standard simulation and checks it against simulation via generated Python script. - -class PyStandardTest : public IStandardTest -{ -public: - using IStandardTest::IStandardTest; - - bool runTest() final; -}; - -#endif // BORNAGAIN_TESTS_FUNCTIONAL_PYTHON_PYSTANDARD_PYSTANDARDTEST_H diff --git a/Tests/Functional/Python/Std/CMakeLists.txt b/Tests/Functional/Python/Std/CMakeLists.txt new file mode 100644 index 0000000000000000000000000000000000000000..31493895bb7ee7038c699e3c402967233b208ece --- /dev/null +++ b/Tests/Functional/Python/Std/CMakeLists.txt @@ -0,0 +1,15 @@ +include(GoogleTest) # provides gtest_discover_tests + +set(test TestPyStd) + +file(GLOB source_files "*.cpp" "../../Std/Run.cpp") + +add_executable(${test} ${source_files} ${CMAKE_SOURCE_DIR}/Tests/GTestWrapper/TestAll.cpp) +target_include_directories(${test} PUBLIC + ${BornAgainCore_INCLUDE_DIRS} + ${CMAKE_SOURCE_DIR}/ThirdParty/common/gtest/gtest-1.8.0/include) +target_link_libraries(${test} BornAgainCore gtest) + +gtest_discover_tests(${test} TEST_PREFIX Py.) + +file(MAKE_DIRECTORY ${TEST_OUTPUT_DIR}/Functional/Python/Std) diff --git a/Tests/Functional/Python/Std/Check.cpp b/Tests/Functional/Python/Std/Check.cpp new file mode 100644 index 0000000000000000000000000000000000000000..6ee8f8c3a4ec3e37cf97d83de8afb87e41715cf5 --- /dev/null +++ b/Tests/Functional/Python/Std/Check.cpp @@ -0,0 +1,72 @@ +// ************************************************************************** // +// +// BornAgain: simulate and fit scattering at grazing incidence +// +//! @file Tests/Functional/Python/Std/Check.cpp +//! @brief Implements function checkSimulation for Python standard test +//! +//! @homepage http://www.bornagainproject.org +//! @license GNU General Public License v3 or higher (see COPYING) +//! @copyright Forschungszentrum Jülich GmbH 2018 +//! @authors Scientific Computing Group at MLZ (see CITATION, AUTHORS) +// +// ************************************************************************** // + +#include "BABuild.h" +#include "BATesting.h" +#include "Core/Export/ExportToPython.h" +#include "Core/InputOutput/IntensityDataIOFactory.h" +#include "Core/Instrument/IntensityDataFunctions.h" +#include "Core/Simulation/Simulation.h" +#include "Core/Tools/FileSystemUtils.h" +#include <cassert> +#include <fstream> +#include <iostream> + +std::unique_ptr<OutputData<double>> domainData(const std::string& test_name, + const Simulation& direct_simulation) +{ + const std::string output_name = + FileSystemUtils::jointPath(BATesting::PyStandardOutputDir(), test_name); + const std::string output_path = output_name + ".ref.int.gz"; + std::remove(output_path.c_str()); + std::cout << "- removed old output " << output_path << "\n"; + + // Generate Python script + const std::string pyscript_filename = + FileSystemUtils::jointPath(BATesting::PyStandardOutputDir(), test_name + ".py"); + std::ofstream pythonFile(pyscript_filename); + pythonFile << ExportToPython::generatePyExportTest(direct_simulation); + pythonFile.close(); + + // Run Python script + const std::string py_command = pyscript_filename + " " + output_path; +#ifndef _WIN32 + const std::string sys_command = std::string("PYTHONPATH=") + BABuild::buildLibDir() + " " + + std::string("NOPLOT=TRUE") + " " + BABuild::pythonExecutable() + + " -B " + py_command; +#else + const std::string sys_command = std::string("set PYTHONPATH=") + BABuild::buildLibDir() + " & " + + std::string("set NOPLOT=TRUE") + " & \"" + + BABuild::pythonExecutable() + "\" -B " + py_command; +#endif + std::cout << "- system call: " << sys_command << std::endl; // note: endl = \n + flush + int ret = std::system(sys_command.c_str()); + if (ret != 0) { + std::stringstream msg; + msg << "System call returned non-zero value " << ret; + throw std::runtime_error(msg.str()); + } + + return std::unique_ptr<OutputData<double>>(IntensityDataIOFactory::readOutputData(output_path)); +} + +bool checkSimulation(const std::string& name, const Simulation& direct_simulation, + const double limit) +{ + const std::unique_ptr<OutputData<double>> domain_data = domainData(name, direct_simulation); + + const std::unique_ptr<OutputData<double>> ref_data = direct_simulation.result().data(); + + return IntensityDataFunctions::checkRelativeDifference(*domain_data, *ref_data, limit); +} diff --git a/Tests/Functional/Python/PyStandard/main.cpp b/Tests/Functional/Python/Std/macros.cpp similarity index 52% rename from Tests/Functional/Python/PyStandard/main.cpp rename to Tests/Functional/Python/Std/macros.cpp index fcf0295f5cb764e520818a7ec6370fc5f33a1b15..2612de48a605ddd9419b614214cd86b375191693 100644 --- a/Tests/Functional/Python/PyStandard/main.cpp +++ b/Tests/Functional/Python/Std/macros.cpp @@ -2,8 +2,8 @@ // // BornAgain: simulate and fit scattering at grazing incidence // -//! @file Tests/Functional/Python/PyStandard/main.cpp -//! @brief Implements program PyStandardTest, to run functional tests +//! @file Tests/Functional/Python/Std/macros.cpp +//! @brief Implements Core standard tests through gtest macros. //! //! @homepage http://www.bornagainproject.org //! @license GNU General Public License v3 or higher (see COPYING) @@ -12,12 +12,7 @@ // // ************************************************************************** // -#include "Tests/Functional/Python/PyStandard/PyStandardTest.h" -#include "Tests/Functional/Std/StandardTestService.h" +#include "Tests/Functional/Std/Run.h" -//! Runs PyStandardTest on a standard simulation indicated by argv[1]. - -int main(int argc, char** argv) -{ - return !StandardTestService<PyStandardTest>().execute(argc, argv); -} +#define PYTHON_STD_TEST +#include "Tests/Functional/Std/StandardTests.h" // contains macros that are executed by gtest diff --git a/Tests/Functional/Std/CMakeLists.txt b/Tests/Functional/Std/CMakeLists.txt deleted file mode 100644 index 0cffff6101a7446fde686bf8a021dc3e966d347d..0000000000000000000000000000000000000000 --- a/Tests/Functional/Std/CMakeLists.txt +++ /dev/null @@ -1,26 +0,0 @@ -############################################################################ -# CMakeLists.txt file for building libBornAgainCore library -############################################################################ - -set(library_name BornAgainTestMachinery) - -file(GLOB source_files "*.cpp") - -if(WIN32) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DBA_CORE_BUILD_DLL") -endif() - -add_library(${library_name} SHARED ${source_files}) -target_link_libraries(${library_name} ${BornAgainCore_LIBRARY} ${CMAKE_THREAD_LIBS_INIT}) - -set_target_properties(${library_name} PROPERTIES PREFIX ${libprefix} SUFFIX ${libsuffix}) -set(${library_name}_LIBRARY_TYPE SHARED) - -set(${library_name}_INCLUDE_DIRS ${include_dirs} PARENT_SCOPE) -set(${library_name}_LIBRARY ${library_name} PARENT_SCOPE) - - -if(APPLE AND BORNAGAIN_APPLE_BUNDLE) - set(link_flags "-Wl,-rpath,@loader_path/../../Frameworks") - set_target_properties(${library_name} PROPERTIES LINK_FLAGS ${link_flags}) -endif() diff --git a/Tests/Functional/Std/IStandardTest.cpp b/Tests/Functional/Std/IStandardTest.cpp deleted file mode 100644 index 5e1a7027caf11cc3ee39047b49a33bf339990f5d..0000000000000000000000000000000000000000 --- a/Tests/Functional/Std/IStandardTest.cpp +++ /dev/null @@ -1,24 +0,0 @@ -// ************************************************************************** // -// -// BornAgain: simulate and fit scattering at grazing incidence -// -//! @file Tests/Functional/Std/IStandardTest.cpp -//! @brief Defines pure virtual base class IStandardTest. -//! -//! @homepage http://www.bornagainproject.org -//! @license GNU General Public License v3 or higher (see COPYING) -//! @copyright Forschungszentrum Jülich GmbH 2018 -//! @authors Scientific Computing Group at MLZ (see CITATION, AUTHORS) -// -// ************************************************************************** // - -#include "Tests/Functional/Std/IStandardTest.h" -#include "Core/Simulation/Simulation.h" - -IStandardTest::IStandardTest(const std::string& name, const Simulation& simulation, - double threshold) - : m_name(name), m_reference_simulation(simulation.clone()), m_threshold(threshold) -{ -} - -IStandardTest::~IStandardTest() = default; // needs sizeof(Simulation) diff --git a/Tests/Functional/Std/IStandardTest.h b/Tests/Functional/Std/IStandardTest.h deleted file mode 100644 index a673ab664c15b6a9ad0ad324939001a88fa40783..0000000000000000000000000000000000000000 --- a/Tests/Functional/Std/IStandardTest.h +++ /dev/null @@ -1,42 +0,0 @@ -// ************************************************************************** // -// -// BornAgain: simulate and fit scattering at grazing incidence -// -//! @file Tests/Functional/Std/IStandardTest.h -//! @brief Defines pure virtual base class IStandardTest. -//! -//! @homepage http://www.bornagainproject.org -//! @license GNU General Public License v3 or higher (see COPYING) -//! @copyright Forschungszentrum Jülich GmbH 2018 -//! @authors Scientific Computing Group at MLZ (see CITATION, AUTHORS) -// -// ************************************************************************** // - -#ifndef BORNAGAIN_TESTS_FUNCTIONAL_STD_ISTANDARDTEST_H -#define BORNAGAIN_TESTS_FUNCTIONAL_STD_ISTANDARDTEST_H - -#include "Wrap/WinDllMacros.h" -#include <memory> -#include <string> - -class Simulation; - -//! Base class for tests that compare results with reference data. -//! @ingroup standard_samples - -class BA_CORE_API_ IStandardTest -{ -public: - IStandardTest(const std::string& name, const Simulation& simulation, double threshold); - - virtual ~IStandardTest(); - - virtual bool runTest() = 0; - -protected: - std::string m_name; - std::unique_ptr<Simulation> m_reference_simulation; - double m_threshold; -}; - -#endif // BORNAGAIN_TESTS_FUNCTIONAL_STD_ISTANDARDTEST_H diff --git a/Tests/Functional/Std/Run.cpp b/Tests/Functional/Std/Run.cpp new file mode 100644 index 0000000000000000000000000000000000000000..aae837f12f1841c2646dd27ae1703290cbb038bd --- /dev/null +++ b/Tests/Functional/Std/Run.cpp @@ -0,0 +1,64 @@ +// ************************************************************************** // +// +// BornAgain: simulate and fit scattering at grazing incidence +// +//! @file Tests/Functional/Std/Run.cpp +//! @brief Implements function run for use in standard tests. +//! +//! @homepage http://www.bornagainproject.org +//! @license GNU General Public License v3 or higher (see COPYING) +//! @copyright Forschungszentrum Jülich GmbH 2018 +//! @authors Scientific Computing Group at MLZ (see CITATION, AUTHORS) +// +// ************************************************************************** // + +#include "BABuild.h" +#include "BATesting.h" +#include "Core/InputOutput/IntensityDataIOFactory.h" +#include "Core/Instrument/IntensityDataFunctions.h" +#include "Core/Multilayer/IMultiLayerBuilder.h" +#include "Core/Multilayer/MultiLayer.h" +#include "Core/Simulation/Simulation.h" +#include "Core/StandardSamples/SampleBuilderFactory.h" +#include "Core/StandardSamples/SimulationFactory.h" +#include "Core/Tools/FileSystemUtils.h" +#include <cassert> +#include <iostream> + +// implemented differently for Core/Py/Gui tests: +bool checkSimulation(const std::string& name, const Simulation& direct_simulation, + const double limit); + +int run(const std::string& test_name, const std::string& sim_name, + const std::string& sample_builder_name, const double limit) +{ + std::cout << "run std test " << test_name << std::endl; + std::cout << "- create sim " << sim_name << std::endl; + std::unique_ptr<Simulation> simulation{SimulationFactory().createItem(sim_name)}; + assert(simulation); + + std::cout << "- sample builder " << sample_builder_name << std::endl; + std::unique_ptr<IMultiLayerBuilder> builder{ + SampleBuilderFactory().createItem(sample_builder_name)}; + std::cout << "- builder name " << builder->getName() << std::endl; + + int number_of_failed_tests = 0; + for (size_t iSample = 0; iSample < builder->size(); ++iSample) { + std::cout << "- run subtest " << iSample << "/" << builder->size() << ": " + << builder->getName() << "\n"; + + std::unique_ptr<MultiLayer> sample(builder->createSample(iSample)); + simulation->setSample(*sample); + + std::string full_name = test_name; + if (builder->getName() != "SampleBuilder") + full_name += "_" + builder->getName(); + + simulation->runSimulation(); + + if (!checkSimulation(full_name, *simulation, limit)) + ++number_of_failed_tests; + } + + return !number_of_failed_tests; +} diff --git a/Tests/Functional/Core/CoreStandardTest/main.cpp b/Tests/Functional/Std/Run.h similarity index 51% rename from Tests/Functional/Core/CoreStandardTest/main.cpp rename to Tests/Functional/Std/Run.h index eb50d619e14b2ba3c2850671f66cdfa2a8344501..6da551c5006c38651f21e8245f47ad728496010a 100644 --- a/Tests/Functional/Core/CoreStandardTest/main.cpp +++ b/Tests/Functional/Std/Run.h @@ -2,8 +2,8 @@ // // BornAgain: simulate and fit scattering at grazing incidence // -//! @file Tests/Functional/Core/CoreStandardTest/main.cpp -//! @brief Implements program CoreStandardTest to run core functional tests +//! @file Tests/Functional/Std/Run.h +//! @brief Declares function run for use in standard tests. //! //! @homepage http://www.bornagainproject.org //! @license GNU General Public License v3 or higher (see COPYING) @@ -12,12 +12,7 @@ // // ************************************************************************** // -#include "Tests/Functional/Core/CoreStandardTest/CoreStandardTest.h" -#include "Tests/Functional/Std/StandardTestService.h" +#include <string> -//! Runs CoreStandardTest on a standard simulation indicated by argv[1]. - -int main(int argc, char** argv) -{ - return !StandardTestService<CoreStandardTest>().execute(argc, argv); -} +int run(const std::string& test_name, const std::string& sim_name, + const std::string& sample_builder_name, const double limit); diff --git a/Tests/Functional/Std/StandardTestCatalog.cpp b/Tests/Functional/Std/StandardTestCatalog.cpp deleted file mode 100644 index bb39acd3d5cc9b8b6c1434ef560617206fe4359f..0000000000000000000000000000000000000000 --- a/Tests/Functional/Std/StandardTestCatalog.cpp +++ /dev/null @@ -1,376 +0,0 @@ -// ************************************************************************** // -// -// BornAgain: simulate and fit scattering at grazing incidence -// -//! @file Tests/Functional/Std/StandardTestCatalog.cpp -//! @brief Implements class StandardTestCatalog. -//! -//! @homepage http://www.bornagainproject.org -//! @license GNU General Public License v3 or higher (see COPYING) -//! @copyright Forschungszentrum Jülich GmbH 2018 -//! @authors Scientific Computing Group at MLZ (see CITATION, AUTHORS) -// -// ************************************************************************** // - -#include "Tests/Functional/Std/StandardTestCatalog.h" -#include "Fit/Tools/StringUtils.h" -#include <iostream> - -StandardTestCatalog::StandardTestCatalog() -{ - add("FormFactors", "Test of all form factors defined", "MiniGISAS", "ParticleInTheAirBuilder", - 2e-10); - - add("FormFactorsWithAbsorption", "Test of all form factors defined, absorption case", - "MiniGISAS_v2", "LayersWithAbsorptionBuilder", 2e-10); - - add("GISASAbsorptiveSLDLayers", "Test for SLD material in GISAS simulations", "MiniGISAS", - "LayersWithAbsorptionBySLDBuilder", 2e-10); - - add("CylindersAndPrisms", "Mixture of cylinders and prisms without interference", "MiniGISAS", - "CylindersAndPrismsBuilder", 2e-10); - - add("RadialParaCrystal", "Interference function of radial paracrystal", "MiniGISAS", - "RadialParaCrystalBuilder", 2e-10); - - add("HardDisk", "Interference function of hard disk Percus-Yevick", "MiniGISAS", - "HardDiskBuilder", 2e-10); - - add("Basic2DParaCrystal", - "Interference function of basic 2D paracrystal with variety of FT distributions", - "MiniGISAS", "Basic2DParaCrystalBuilder", 2e-10); - - add("HexParaCrystal", "Interference function of 2D hexagonal paracrystal", "MiniGISAS", - "HexParaCrystalBuilder", 2e-10); - - add("Lattice1D", "Interference function of 21D lattice", "MiniGISAS", "Lattice1DBuilder", - 2e-10); - - add("RectParaCrystal", "Interference function of 2D rectanguler paracrystal", "MiniGISAS", - "RectParaCrystalBuilder", 2e-10); - - // --- CoreShell --- - - add("CoreShellParticle", "Core shell particle", "MiniGISAS", "CoreShellParticleBuilder", 2e-10); - - add("CoreShellBoxRotateZandY", - "Rotation and translation of core shell box particle in 3 layers system", "MiniGISAS", - "CoreShellBoxRotateZandYBuilder", 2e-10); - - // --- - - add("MultiLayerWithRoughness", "Multilayer with roughness", "MiniGISAS", - "MultiLayerWithRoughnessBuilder", 2e-10); - - add("SquareLattice", "Interference function of 2D square lattice", "MiniGISAS", - "SquareLatticeBuilder", 2e-10); - - add("CenteredSquareLattice", "Interference function of 2D square lattice", "MiniGISAS", - "CenteredSquareLatticeBuilder", 2e-10); - - add("RotatedSquareLattice", "Interference function of rotated 2D square lattice", "MiniGISAS", - "RotatedSquareLatticeBuilder", 2e-10); - - add("FiniteSquareLattice", "Interference function of finite 2D square lattice", "MiniGISAS", - "FiniteSquareLatticeBuilder", 2e-10); - - add("SuperLattice", "Interference function of 2D superlattice", "MiniGISAS", - "SuperLatticeBuilder", 2e-10); - - add("RotatedPyramids", "Interference function of rotated 2D square lattice", "MiniGISAS", - "RotatedPyramidsBuilder", 2e-10); - - add("ThickAbsorptiveSampleWithRoughness", - "GISAS picture on extra long wavelength from thick absorptive sample with roughness", - "ExtraLongWavelengthGISAS", "ThickAbsorptiveSampleBuilder", 2e-10); - - // --- Compositions --- - - add("ParticleComposition", "Two layers of spheres at hex lattice", "MiniGISAS", - "ParticleCompositionBuilder", 2e-10); - - add("BoxCompositionRotateX", "Two boxes in particle composition rotated in X by 90 degrees", - "MiniGISAS", "BoxCompositionRotateXBuilder", 2e-10); - - add("BoxCompositionRotateY", "Two boxes in particle composition rotated in Y by 90 degrees", - "MiniGISAS", "BoxCompositionRotateYBuilder", 2e-10); - - add("BoxCompositionRotateZ", "Two boxes in particle composition rotated in Z by 90 degrees", - "MiniGISAS", "BoxCompositionRotateZBuilder", 2e-10); - - add("BoxCompositionRotateZandY", - "Two boxes in particle composition rotated in Z and Y by 90 degrees", "MiniGISAS", - "BoxCompositionRotateZandYBuilder", 2e-10); - - add("BoxStackComposition", - "Two different boxes are first rotated and then composed, composition is then rotated.", - "MiniGISAS", "BoxStackCompositionBuilder", 2e-10); - - // --- - - add("CylindersWithSizeDistribution", "Cylinders in BA with size distributions", "MiniGISAS", - "CylindersWithSizeDistributionBuilder", 2e-10); - - add("TwoTypesCylindersDistribution", "Cylinders in BA with size distributions", "MiniGISAS", - "TwoTypesCylindersDistributionBuilder", 2e-10); - - add("RotatedPyramidsDistribution", "Rotated pyramids distribution", "MiniGISAS", - "RotatedPyramidsDistributionBuilder", 2e-10); - - add("SpheresWithLimitsDistribution", - "Spherical particles with the distribution applied to the radius and RealLimits defined.", - "MiniGISAS", "SpheresWithLimitsDistributionBuilder", 2e-10); - - add("ConesWithLimitsDistribution", - "Spherical particles with the distribution applied to the radius and RealLimits defined.", - "MiniGISAS", "ConesWithLimitsDistributionBuilder", 2e-10); - - add("LinkedBoxDistribution", - "Distribution of boxes with main parameter and two linked parameters.", "MiniGISAS", - "LinkedBoxDistributionBuilder", 2e-10); - - // --- - - add("BeamDivergence", "Cylinders in BA in the presence of beam divergence", - "MiniGISASBeamDivergence", "CylindersInBABuilder", 2e-10); - - add("DetectorResolution", "Cylinders in BA with detector resolution", - "MiniGISASDetectorResolution", "CylindersInBABuilder", 2e-10); - - add("MultipleLayout", "Two types of particles in different layouts", "MiniGISAS", - "MultipleLayoutBuilder", 2e-10); - - add("ApproximationDA", "Size distribution model: decoupling approximation", "MiniGISAS", - "SizeDistributionDAModelBuilder", 2e-10); - - add("ApproximationLMA", "Size distribution model: local monodisperse approximation", - "MiniGISAS", "SizeDistributionLMAModelBuilder", 2e-10); - - add("ApproximationSSCA", "Size distribution model: size space coupling approximation", - "MiniGISAS", "SizeDistributionSSCAModelBuilder", 2e-10); - - add("CylindersInSSCA", "Size spacing correlation approximation", "MiniGISAS", - "CylindersInSSCABuilder", 2e-10); - - add("CosineRipple", "Cosine ripple within radial paracrystal model", "MiniGISAS", - "CosineRippleBuilder", 2e-10); - - add("TriangularRipple", "Triangular ripple within radial paracrystal model", "MiniGISAS", - "TriangularRippleBuilder", 2e-10); - - add("AsymRipple", "Triangular ripple with asymetry within radial paracrystal model", - "MiniGISAS", "AsymRippleBuilder", 2e-10); - - add("MesoCrystal", "Cylindrical mesocrystal composed of spherical nano particles", "MiniGISAS", - "MesoCrystalBuilder", 2e-10); - - add("CustomMorphology", "Custom particle mixture a la isgisaxs morphology approach", - "MiniGISAS", "CustomMorphologyBuilder", 2e-10); - - add("TransformBox", "Rotated/translated box in 3 layers system", "MiniGISAS", - "TransformBoxBuilder", 1e-10); - - // polarized GISAS - - add("MagneticParticleZeroField", "Magnetic cylinders with zero field", "MiniGISAS", - "MagneticParticleZeroFieldBuilder", 2e-10); - - add("MagneticSubstrateZeroField", "Magnetic substrate with zero field", - "MiniGISASPolarizationPP", "MagneticSubstrateZeroFieldBuilder", 2e-10); - - add("MagneticRotation", "Rotated magnetic particle in magnetic substrate", - "MiniGISASPolarizationPM", "MagneticRotationBuilder", 2e-10); - - add("MagneticSpheres", "Magnetic spheres inside substrate", "MiniGISASPolarizationPM", - "MagneticSpheresBuilder", 2e-10); - - add("MagneticCylindersPP", "Magnetic cylinders on a substrate: ++ channel", - "MiniGISASPolarizationPP", "MagneticCylindersBuilder", 2e-10); - - add("MagneticCylindersPM", "Magnetic cylinders on a substrate: +- channel", - "MiniGISASPolarizationPM", "MagneticCylindersBuilder", 2e-10); - - add("MagneticCylindersMP", "Magnetic cylinders on a substrate: -+ channel", - "MiniGISASPolarizationMP", "MagneticCylindersBuilder", 2e-10); - - add("MagneticCylindersMM", "Magnetic cylinders on a substrate: -- channel", - "MiniGISASPolarizationMM", "MagneticCylindersBuilder", 2e-10); - - add("MagneticSpheresInMagLayerPP", "Magnetic spheres in a magnetized layer, ++ channel", - "MiniGISASPolarizationPP", "MagneticLayerBuilder", 2e-10); - - add("MagneticSpheresInMagLayerMP", "Magnetic spheres in a magnetized layer, ++ channel", - "MiniGISASPolarizationMP", "MagneticLayerBuilder", 2e-10); - - // Masking - - add("SimulationWithMasks", "Various masks are added to the simulation", "GISASWithMasks", - "CylindersAndPrismsBuilder", 1e-10); - - // Various rectangular detector alignment - - add("RectDetectorGeneric", "Various masks are added to the simulation", "RectDetectorGeneric", - "CylindersInBABuilder", 1e-10); - - add("RectDetectorPerpToSample", "Various masks are added to the simulation", - "RectDetectorPerpToSample", "CylindersInBABuilder", 1e-10); - - add("RectDetectorPerpToDirectBeam", "Various masks are added to the simulation", - "RectDetectorPerpToDirectBeam", "CylindersInBABuilder", 1e-10); - - add("RectDetectorPerpToReflectedBeam", "Various masks are added to the simulation", - "RectDetectorPerpToReflectedBeam", "CylindersInBABuilder", 1e-10); - - add("RectDetectorPerpToReflectedBeamDpos", "Various masks are added to the simulation", - "RectDetectorPerpToReflectedBeamDpos", "CylindersInBABuilder", 1e-10); - - add("LargeCylindersMonteCarlo", "Large cylinders simulated with MonteCarlo integration", - "MiniGISASMonteCarlo", "LargeCylindersInDWBABuilder", 5e-1); - - add("SphericalDetWithRoi", "Spherical detector with ROI and mask defined", - "SphericalDetWithRoi", "CylindersAndPrismsBuilder", 1e-10); - - add("RectDetWithRoi", "Rectangular detector with ROI and mask defined", "RectDetWithRoi", - "CylindersAndPrismsBuilder", 1e-10); - - add("BoxesWithSpecular", "Boxes in square lattice including specular peak", "MiniGISASSpecular", - "BoxesSquareLatticeBuilder", 1e-10); - - add("RotatedCylinder", "Rotated cylinder in substrate", "MiniGISAS", "RotatedCylindersBuilder", - 1e-10); - - add("SlicedComposition", - "Spherical particle made of two different materials crossing interface", "MiniGISAS", - "SlicedCompositionBuilder", 1e-10); - - // Simulations with background - - add("ConstantBackground", "Constant background is added to the simulation", - "ConstantBackground", "CylindersInBABuilder", 1e-10); - - // Specular simulations - - add("HomogeneousTiNiSample", - "Specular simulation for 10 interchanging Ti-Ni homogeneous layers", "BasicSpecular", - "HomogeneousMultilayerBuilder", 1e-10); - - add("HomogeneousTiNiSampleWithAbsorption", - "Specular simulation for 10 interchanging Ti-Ni homogeneous " - "layers with absorptive SLD material", - "BasicSpecular", "PlainMultiLayerBySLDBuilder", 1e-10); - - add("RoughnessInSpecular", "Specular simulation with rough sample", "BasicSpecular", - "MultiLayerWithRoughnessBuilder", 2e-9); - - add("NCRoughnessInSpecular", "Specular simulation with rough sample (Nevot-Croce)", - "BasicSpecular", "MultiLayerWithNCRoughnessBuilder", 2e-9); - - add("GaussianBeamFootprint", - "Similar to HomogeneousTiNiSample, but with finite-sized gaussian beam", - "SpecularWithGaussianBeam", "HomogeneousMultilayerBuilder", 1e-10); - - add("SquareBeamFootprint", - "Similar to HomogeneousTiNiSample, but with finite-sized square beam", - "SpecularWithSquareBeam", "HomogeneousMultilayerBuilder", 1e-10); - - add("SpecularDivergentBeam", - "Simulates beam divergence both in wavelength and inclination angle", - "SpecularDivergentBeam", "HomogeneousMultilayerBuilder", 1e-10); - - add("RelativeResolutionTOF", - "Simulates q-defined reflectometry with a fixed relative q resolution", - "TOFRWithRelativeResolution", "PlainMultiLayerBySLDBuilder", 1e-10); - - add("SpecularWithSlicing", "Compares manual/automatic slicing in a sample with cylinders", - {"BasicSpecular", "BasicSpecular", "BasicSpecular", "BasicSpecularQ"}, - {"SlicedCylindersBuilder", "SLDSlicedCylindersBuilder", "AveragedSlicedCylindersBuilder", - "SLDSlicedCylindersBuilder"}, - 1e-10); - - add("InstrumentDefinitionComparison", - "Compares specular signal from q-defined, TOF and conventional instrument", - {"BasicSpecular", "BasicSpecularQ"}, - {"PlainMultiLayerBySLDBuilder", "PlainMultiLayerBySLDBuilder"}, 1e-10); - - add("TOFResolutionComparison", - "Compares specular signal from TOF instruments with pointwise and relative resolutions", - {"TOFRWithRelativeResolution", "TOFRWithPointwiseResolution"}, - {"PlainMultiLayerBySLDBuilder", "PlainMultiLayerBySLDBuilder"}, 1e-10); - - // polarized specular - - add("BasicSpecularPP", "Basic specular simulation on polarized sample, ++ channel", - "BasicSpecularPP", "SimpleMagneticLayerBuilder", 1e-10); - - add("BasicSpecularMM", "Basic specular simulation on polarized sample, -- channel", - "BasicSpecularMM", "SimpleMagneticLayerBuilder", 1e-10); - - add("PolarizedQAngleReflectivityPP", - "Compares specular signal from ++ channel for angular- and q-defined reflectivity", - {"BasicSpecularPP", "BasicQSpecularPP"}, - {"SimpleMagneticLayerBuilder", "SimpleMagneticLayerBuilder"}, 1e-10); - - add("PolarizedQAngleReflectivityMM", - "Compares specular signal from -- channel for angular- and q-defined reflectivity", - {"BasicSpecularMM", "BasicQSpecularMM"}, - {"SimpleMagneticLayerBuilder", "SimpleMagneticLayerBuilder"}, 1e-10); - - // off-specular simulation - - add("OffSpecularResonator", "Simulates resonator in OffSpec setup", "OffSpecMini", - "ResonatorBuilder", 1e-10); - - // depth probe simulation - - add("DepthProbeTest", "Test for basic functionality of depth probe", "BasicDepthProbe", - "HomogeneousMultilayerBuilder", 1e-10); -} - -//! Adds test description to the catalog. - -void StandardTestCatalog::add(const std::string& test_name, const std::string& test_description, - const std::string& simulation_name, - const std::string& sample_builder_name, double threshold) -{ - if (contains(test_name)) - throw std::runtime_error("StandardTestCatalog::add() -> Error. " - "Existing item '" - + test_name + "'"); - - m_catalog[test_name] = StandardTestInfo(test_name, test_description, simulation_name, - sample_builder_name, threshold); -} - -void StandardTestCatalog::add(const std::string& test_name, const std::string& test_description, - std::initializer_list<std::string> simulation_names, - std::initializer_list<std::string> sample_builder_names, - double threshold) -{ - if (contains(test_name)) - throw std::runtime_error("StandardTestCatalog::add() -> Error. " - "Existing item '" - + test_name + "'"); - - m_catalog[test_name] = - StandardTestInfo(test_name, test_description, std::move(simulation_names), - std::move(sample_builder_names), threshold); -} - -//! Returns test info for given test name. - -StandardTestInfo StandardTestCatalog::testInfo(const std::string& test_name) -{ - if (!contains(test_name)) - throw std::runtime_error("StandardTestCatalog::testInfo() -> Error. No info for " - "given name '" - + test_name + "'"); - - return m_catalog[test_name]; -} - -//! Returns true if catalog contains info for test with given name. - -bool StandardTestCatalog::contains(const std::string& test_name) -{ - return m_catalog.find(test_name) != m_catalog.end(); -} diff --git a/Tests/Functional/Std/StandardTestCatalog.h b/Tests/Functional/Std/StandardTestCatalog.h deleted file mode 100644 index 2bf2ac8cbd681419fcf989100e152792e5d6aaf7..0000000000000000000000000000000000000000 --- a/Tests/Functional/Std/StandardTestCatalog.h +++ /dev/null @@ -1,47 +0,0 @@ -// ************************************************************************** // -// -// BornAgain: simulate and fit scattering at grazing incidence -// -//! @file Tests/Functional/Std/StandardTestCatalog.h -//! @brief Defines class StandardTestCatalog. -//! -//! @homepage http://www.bornagainproject.org -//! @license GNU General Public License v3 or higher (see COPYING) -//! @copyright Forschungszentrum Jülich GmbH 2018 -//! @authors Scientific Computing Group at MLZ (see CITATION, AUTHORS) -// -// ************************************************************************** // - -#ifndef BORNAGAIN_TESTS_FUNCTIONAL_STD_STANDARDTESTCATALOG_H -#define BORNAGAIN_TESTS_FUNCTIONAL_STD_STANDARDTESTCATALOG_H - -#include "Tests/Functional/Std/StandardTestInfo.h" -#include "Wrap/WinDllMacros.h" -#include <map> - -//! @class StandardTestCatalog -//! @ingroup standard_samples -//! @brief Catalog with the description of standard functional tests. - -class BA_CORE_API_ StandardTestCatalog -{ -public: - StandardTestCatalog(); - - StandardTestInfo testInfo(const std::string& test_name); - - bool contains(const std::string& test_name); - -private: - void add(const std::string& test_name, const std::string& test_description, - const std::string& simulation_name, const std::string& sample_builder_name, - double threshold); - - void add(const std::string& test_name, const std::string& test_description, - std::initializer_list<std::string> simulation_names, - std::initializer_list<std::string> sample_builder_name, double threshold); - - std::map<std::string, StandardTestInfo> m_catalog; -}; - -#endif // BORNAGAIN_TESTS_FUNCTIONAL_STD_STANDARDTESTCATALOG_H diff --git a/Tests/Functional/Std/StandardTestInfo.cpp b/Tests/Functional/Std/StandardTestInfo.cpp deleted file mode 100644 index bbba02fcd75c0920872c3df721d3aa60fedf3924..0000000000000000000000000000000000000000 --- a/Tests/Functional/Std/StandardTestInfo.cpp +++ /dev/null @@ -1,47 +0,0 @@ -// ************************************************************************** // -// -// BornAgain: simulate and fit scattering at grazing incidence -// -//! @file Tests/Functional/Std/StandardTestInfo.cpp -//! @brief Implements class SimulationInfo. -//! -//! @homepage http://www.bornagainproject.org -//! @license GNU General Public License v3 or higher (see COPYING) -//! @copyright Forschungszentrum Jülich GmbH 2018 -//! @authors Scientific Computing Group at MLZ (see CITATION, AUTHORS) -// -// ************************************************************************** // - -#include "Tests/Functional/Std/StandardTestInfo.h" -#include <stdexcept> - -StandardTestInfo::StandardTestInfo() : m_threshold(0.0) {} - -StandardTestInfo::StandardTestInfo(const std::string& test_name, - const std::string& test_description, - const std::string& simulation_name, - const std::string& sample_builder_name, double threshold) - : m_test_name(test_name), m_test_description(test_description), - m_simulation_names({simulation_name}), m_sample_builder_names({sample_builder_name}), - m_threshold(threshold) -{ -} - -StandardTestInfo::StandardTestInfo(const std::string& test_name, - const std::string& test_description, - std::initializer_list<std::string> simulation_names, - std::initializer_list<std::string> sample_builder_names, - double threshold) - : m_test_name(test_name), m_test_description(test_description), - m_simulation_names(std::move(simulation_names)), - m_sample_builder_names(std::move(sample_builder_names)), m_threshold(threshold) -{ - if (m_simulation_names.size() != m_sample_builder_names.size()) - throw std::runtime_error("Error in StandardTestInfo::size(): inconsistent sizes of " - "simulation and builder name vectors"); -} - -size_t StandardTestInfo::size() const -{ - return m_simulation_names.size(); -} diff --git a/Tests/Functional/Std/StandardTestInfo.h b/Tests/Functional/Std/StandardTestInfo.h deleted file mode 100644 index fa2573ba1e960478a41d8c3f976e47da6163e460..0000000000000000000000000000000000000000 --- a/Tests/Functional/Std/StandardTestInfo.h +++ /dev/null @@ -1,46 +0,0 @@ -// ************************************************************************** // -// -// BornAgain: simulate and fit scattering at grazing incidence -// -//! @file Tests/Functional/Std/StandardTestInfo.h -//! @brief Defines class StandardTestInfo. -//! -//! @homepage http://www.bornagainproject.org -//! @license GNU General Public License v3 or higher (see COPYING) -//! @copyright Forschungszentrum Jülich GmbH 2018 -//! @authors Scientific Computing Group at MLZ (see CITATION, AUTHORS) -// -// ************************************************************************** // - -#ifndef BORNAGAIN_TESTS_FUNCTIONAL_STD_STANDARDTESTINFO_H -#define BORNAGAIN_TESTS_FUNCTIONAL_STD_STANDARDTESTINFO_H - -#include "Wrap/WinDllMacros.h" -#include <string> -#include <vector> - -//! @class StandardTestInfo -//! @ingroup standard_samples -//! @brief Collection of parameters necessary to run standard functional test. - -class BA_CORE_API_ StandardTestInfo -{ -public: - StandardTestInfo(); - StandardTestInfo(const std::string& test_name, const std::string& test_description, - const std::string& simulation_name, const std::string& sample_builder_name, - double threshold); - StandardTestInfo(const std::string& test_name, const std::string& test_description, - std::initializer_list<std::string> simulation_names, - std::initializer_list<std::string> sample_builder_names, double threshold); - - size_t size() const; - - std::string m_test_name; - std::string m_test_description; - std::vector<std::string> m_simulation_names; - std::vector<std::string> m_sample_builder_names; - double m_threshold; -}; - -#endif // BORNAGAIN_TESTS_FUNCTIONAL_STD_STANDARDTESTINFO_H diff --git a/Tests/Functional/Std/StandardTestService.cpp b/Tests/Functional/Std/StandardTestService.cpp deleted file mode 100644 index 41e1fcde3e933b8b58e15c908cf032608606194b..0000000000000000000000000000000000000000 --- a/Tests/Functional/Std/StandardTestService.cpp +++ /dev/null @@ -1,83 +0,0 @@ -// ************************************************************************** // -// -// BornAgain: simulate and fit scattering at grazing incidence -// -//! @file Tests/Functional/Std/StandardTestService.cpp -//! @brief Defines class StandardTestService. -//! -//! @homepage http://www.bornagainproject.org -//! @license GNU General Public License v3 or higher (see COPYING) -//! @copyright Forschungszentrum Jülich GmbH 2018 -//! @authors Scientific Computing Group at MLZ (see CITATION, AUTHORS) -// -// ************************************************************************** // - -#include "Tests/Functional/Std/StandardTestService.h" -#include "Core/Multilayer/IMultiLayerBuilder.h" -#include "Core/Multilayer/MultiLayer.h" -#include "Core/StandardSamples/SampleBuilderFactory.h" -#include "Core/StandardSamples/SimulationFactory.h" -#include "Tests/Functional/Std/IStandardTest.h" -#include "Tests/Functional/Std/StandardTestCatalog.h" -#include <cassert> -#include <iostream> - -namespace -{ - -//! Returns test full name, composed from the test name and the name of sample builder. - -std::string fullTestName(const std::string& test_name, const std::string& builder_name) -{ - std::string result = test_name; - - if (builder_name != "SampleBuilder") - result += "_" + builder_name; - - return result; -} - -} // namespace - -//! Runs test corresponding to given command line parameters, returns true if success. - -bool StandardTestServiceBase::execute(int argc, char** argv) -{ - assert(argc > 1); - StandardTestInfo info = StandardTestCatalog().testInfo(argv[1]); - assert(!info.m_test_name.empty()); - assert(info.size() == 1); - - std::unique_ptr<IMultiLayerBuilder> builder( - SampleBuilderFactory().createItem(info.m_sample_builder_names.front())); - - size_t n_subtests = builder->size(); - int number_of_failed_tests = 0; - - for (size_t sample_index = 0; sample_index < builder->size(); ++sample_index) { - std::cout << "Run std test " << info.m_test_name << ", subtest " << sample_index << "/" - << builder->size() << ": "<< builder->getName() << "\n"; - - std::unique_ptr<Simulation> simulation( - SimulationFactory().createItem(info.m_simulation_names.front())); - - std::unique_ptr<MultiLayer> sample(builder->createSample(sample_index)); - simulation->setSample(*sample); - - std::string test_name = fullTestName(info.m_test_name, builder->getName()); - - std::unique_ptr<IStandardTest> test( - createStdTest(test_name, *simulation, info.m_threshold)); - - if (!test->runTest()) { - std::cout << "subtest " << sample_index << " failed\n"; - ++number_of_failed_tests; - } - } - - if (number_of_failed_tests) - std::cout << "summary: " << number_of_failed_tests << " of " << n_subtests - << " subtests failed\n"; - - return number_of_failed_tests == 0; -} diff --git a/Tests/Functional/Std/StandardTestService.h b/Tests/Functional/Std/StandardTestService.h deleted file mode 100644 index 718e2b7b6e0dbf3a556a654e684146c80721b563..0000000000000000000000000000000000000000 --- a/Tests/Functional/Std/StandardTestService.h +++ /dev/null @@ -1,53 +0,0 @@ -// ************************************************************************** // -// -// BornAgain: simulate and fit scattering at grazing incidence -// -//! @file Tests/Functional/Std/StandardTestService.h -//! @brief Defines class StandardTestService. -//! -//! @homepage http://www.bornagainproject.org -//! @license GNU General Public License v3 or higher (see COPYING) -//! @copyright Forschungszentrum Jülich GmbH 2018 -//! @authors Scientific Computing Group at MLZ (see CITATION, AUTHORS) -// -// ************************************************************************** // - -#ifndef BORNAGAIN_TESTS_FUNCTIONAL_STD_STANDARDTESTSERVICE_H -#define BORNAGAIN_TESTS_FUNCTIONAL_STD_STANDARDTESTSERVICE_H - -#include "Wrap/WinDllMacros.h" -#include <string> -class IStandardTest; -class Simulation; - -//! Main class to run standard functional test from standalone executable. -//! @ingroup standard_samples - -class BA_CORE_API_ StandardTestServiceBase -{ -public: - virtual ~StandardTestServiceBase() = default; - bool execute(int argc, char** argv); - -private: - virtual IStandardTest* createStdTest(const std::string& name, const Simulation& simulation, - double threshold) = 0; -}; - -//! @brief -//! Extends main class to run standard functional test from standalone executable. -//! Concrete test type is templated. -//! @ingroup standard_samples - -template <typename T> class StandardTestService : public StandardTestServiceBase -{ - -private: - IStandardTest* createStdTest(const std::string& name, const Simulation& simulation, - double threshold) override - { - return new T(name, simulation, threshold); - } -}; - -#endif // BORNAGAIN_TESTS_FUNCTIONAL_STD_STANDARDTESTSERVICE_H diff --git a/Tests/Functional/Std/StandardTests.h b/Tests/Functional/Std/StandardTests.h new file mode 100644 index 0000000000000000000000000000000000000000..03ab19b8731aa61ca74170ab944be86e1a9e84b3 --- /dev/null +++ b/Tests/Functional/Std/StandardTests.h @@ -0,0 +1,524 @@ +// ************************************************************************** // +// +// BornAgain: simulate and fit scattering at grazing incidence +// +//! @file Tests/Functional/Std/StandardTests.h +//! @brief Implements class StandardTestCatalog. +//! +//! @homepage http://www.bornagainproject.org +//! @license GNU General Public License v3 or higher (see COPYING) +//! @copyright Forschungszentrum Jülich GmbH 2018 +//! @authors Scientific Computing Group at MLZ (see CITATION, AUTHORS) +// +// ************************************************************************** // + +#include "Tests/GTestWrapper/google_test.h" + +class Std : public ::testing::Test +{ +}; + +TEST_F(Std, FormFactors) +{ + EXPECT_TRUE(run("FormFactors", "MiniGISAS", "ParticleInTheAirBuilder", 2e-10)); +} + +TEST_F(Std, GISASAbsorptiveSLDLayers) +{ + EXPECT_TRUE( + run("GISASAbsorptiveSLDLayers", "MiniGISAS", "LayersWithAbsorptionBySLDBuilder", 2e-10)); +} + +TEST_F(Std, CylindersAndPrisms) +{ + EXPECT_TRUE(run("CylindersAndPrisms", "MiniGISAS", "CylindersAndPrismsBuilder", 2e-10)); +} + +TEST_F(Std, RadialParaCrystal) +{ + EXPECT_TRUE(run("RadialParaCrystal", "MiniGISAS", "RadialParaCrystalBuilder", 2e-10)); +} + +TEST_F(Std, HardDisk) +{ + EXPECT_TRUE(run("HardDisk", "MiniGISAS", "HardDiskBuilder", 2e-10)); +} + +TEST_F(Std, Basic2DParaCrystal) +{ + EXPECT_TRUE(run("Basic2DParaCrystal", "MiniGISAS", "Basic2DParaCrystalBuilder", 2e-10)); +} + +TEST_F(Std, HexParaCrystal) +{ + EXPECT_TRUE(run("HexParaCrystal", "MiniGISAS", "HexParaCrystalBuilder", 2e-10)); +} + +TEST_F(Std, Lattice1D) +{ + EXPECT_TRUE(run("Lattice1D", "MiniGISAS", "Lattice1DBuilder", 2e-10)); +} + +TEST_F(Std, RectParaCrystal) +{ + EXPECT_TRUE(run("RectParaCrystal", "MiniGISAS", "RectParaCrystalBuilder", 2e-10)); +} + +TEST_F(Std, CoreShellParticle) +{ + EXPECT_TRUE(run("CoreShellParticle", "MiniGISAS", "CoreShellParticleBuilder", 2e-10)); +} + +TEST_F(Std, CoreShellBoxRotateZandY) +{ + EXPECT_TRUE( + run("CoreShellBoxRotateZandY", "MiniGISAS", "CoreShellBoxRotateZandYBuilder", 2e-10)); +} + +TEST_F(Std, MultiLayerWithRoughness) +{ + EXPECT_TRUE( + run("MultiLayerWithRoughness", "MiniGISAS", "MultiLayerWithRoughnessBuilder", 2e-10)); +} + +TEST_F(Std, SquareLattice) +{ + EXPECT_TRUE(run("SquareLattice", "MiniGISAS", "SquareLatticeBuilder", 2e-10)); +} + +TEST_F(Std, CenteredSquareLattice) +{ + EXPECT_TRUE(run("CenteredSquareLattice", "MiniGISAS", "CenteredSquareLatticeBuilder", 2e-10)); +} + +TEST_F(Std, RotatedSquareLattice) +{ + EXPECT_TRUE(run("RotatedSquareLattice", "MiniGISAS", "RotatedSquareLatticeBuilder", 2e-10)); +} + +TEST_F(Std, FiniteSquareLattice) +{ + EXPECT_TRUE(run("FiniteSquareLattice", "MiniGISAS", "FiniteSquareLatticeBuilder", 2e-10)); +} + +TEST_F(Std, RotatedPyramids) +{ + EXPECT_TRUE(run("RotatedPyramids", "MiniGISAS", "RotatedPyramidsBuilder", 2e-10)); +} + +TEST_F(Std, ThickAbsorptiveSampleWithRoughness) +{ + EXPECT_TRUE(run("ThickAbsorptiveSampleWithRoughness", "ExtraLongWavelengthGISAS", + "ThickAbsorptiveSampleBuilder", 2e-10)); +} + +TEST_F(Std, ParticleComposition) +{ + EXPECT_TRUE(run("ParticleComposition", "MiniGISAS", "ParticleCompositionBuilder", 2e-10)); +} + +TEST_F(Std, BoxCompositionRotateX) +{ + EXPECT_TRUE(run("BoxCompositionRotateX", "MiniGISAS", "BoxCompositionRotateXBuilder", 2e-10)); +} + +TEST_F(Std, BoxCompositionRotateY) +{ + EXPECT_TRUE(run("BoxCompositionRotateY", "MiniGISAS", "BoxCompositionRotateYBuilder", 2e-10)); +} + +TEST_F(Std, BoxCompositionRotateZ) +{ + EXPECT_TRUE(run("BoxCompositionRotateZ", "MiniGISAS", "BoxCompositionRotateZBuilder", 2e-10)); +} + +TEST_F(Std, BoxCompositionRotateZandY) +{ + EXPECT_TRUE( + run("BoxCompositionRotateZandY", "MiniGISAS", "BoxCompositionRotateZandYBuilder", 2e-10)); +} + +TEST_F(Std, BoxStackComposition) +{ + EXPECT_TRUE(run("BoxStackComposition", "MiniGISAS", "BoxStackCompositionBuilder", 2e-10)); +} + +TEST_F(Std, CylindersWithSizeDistribution) +{ + EXPECT_TRUE(run("CylindersWithSizeDistribution", "MiniGISAS", + "CylindersWithSizeDistributionBuilder", 2e-10)); +} + +TEST_F(Std, TwoTypesCylindersDistribution) +{ + EXPECT_TRUE(run("TwoTypesCylindersDistribution", "MiniGISAS", + "TwoTypesCylindersDistributionBuilder", 2e-10)); +} + +TEST_F(Std, RotatedPyramidsDistribution) +{ + EXPECT_TRUE(run("RotatedPyramidsDistribution", "MiniGISAS", + "RotatedPyramidsDistributionBuilder", 2e-10)); +} + +TEST_F(Std, SpheresWithLimitsDistribution) +{ + EXPECT_TRUE(run("SpheresWithLimitsDistribution", "MiniGISAS", + "SpheresWithLimitsDistributionBuilder", 2e-10)); +} + +TEST_F(Std, ConesWithLimitsDistribution) +{ + EXPECT_TRUE(run("ConesWithLimitsDistribution", "MiniGISAS", + "ConesWithLimitsDistributionBuilder", 2e-10)); +} + +TEST_F(Std, LinkedBoxDistribution) +{ + EXPECT_TRUE(run("LinkedBoxDistribution", "MiniGISAS", "LinkedBoxDistributionBuilder", 2e-10)); +} + +TEST_F(Std, BeamDivergence) +{ + EXPECT_TRUE(run("BeamDivergence", "MiniGISASBeamDivergence", "CylindersInBABuilder", 2e-10)); +} + +TEST_F(Std, DetectorResolution) +{ + EXPECT_TRUE( + run("DetectorResolution", "MiniGISASDetectorResolution", "CylindersInBABuilder", 2e-10)); +} + +TEST_F(Std, MultipleLayout) +{ + EXPECT_TRUE(run("MultipleLayout", "MiniGISAS", "MultipleLayoutBuilder", 2e-10)); +} + +TEST_F(Std, ApproximationDA) +{ + EXPECT_TRUE(run("ApproximationDA", "MiniGISAS", "SizeDistributionDAModelBuilder", 2e-10)); +} + +TEST_F(Std, ApproximationLMA) +{ + EXPECT_TRUE(run("ApproximationLMA", "MiniGISAS", "SizeDistributionLMAModelBuilder", 2e-10)); +} + +TEST_F(Std, ApproximationSSCA) +{ + EXPECT_TRUE(run("ApproximationSSCA", "MiniGISAS", "SizeDistributionSSCAModelBuilder", 2e-10)); +} + +TEST_F(Std, CylindersInSSCA) +{ + EXPECT_TRUE(run("CylindersInSSCA", "MiniGISAS", "CylindersInSSCABuilder", 2e-10)); +} + +TEST_F(Std, CosineRipple) +{ + EXPECT_TRUE(run("CosineRipple", "MiniGISAS", "CosineRippleBuilder", 2e-10)); +} + +TEST_F(Std, TriangularRipple) +{ + EXPECT_TRUE(run("TriangularRipple", "MiniGISAS", "TriangularRippleBuilder", 2e-10)); +} + +TEST_F(Std, AsymRipple) +{ + EXPECT_TRUE(run("AsymRipple", "MiniGISAS", "AsymRippleBuilder", 2e-10)); +} + +TEST_F(Std, MesoCrystal) +{ + EXPECT_TRUE(run("MesoCrystal", "MiniGISAS", "MesoCrystalBuilder", 2e-10)); +} + +TEST_F(Std, CustomMorphology) +{ + EXPECT_TRUE(run("CustomMorphology", "MiniGISAS", "CustomMorphologyBuilder", 2e-10)); +} + +TEST_F(Std, TransformBox) +{ + EXPECT_TRUE(run("TransformBox", "MiniGISAS", "TransformBoxBuilder", 1e-10)); +} + +TEST_F(Std, MagneticParticleZeroField) +{ + EXPECT_TRUE( + run("MagneticParticleZeroField", "MiniGISAS", "MagneticParticleZeroFieldBuilder", 2e-10)); +} + +TEST_F(Std, MagneticSubstrateZeroField) +{ + EXPECT_TRUE(run("MagneticSubstrateZeroField", "MiniGISASPolarizationPP", + "MagneticSubstrateZeroFieldBuilder", 2e-10)); +} + +TEST_F(Std, MagneticRotation) +{ + EXPECT_TRUE( + run("MagneticRotation", "MiniGISASPolarizationPM", "MagneticRotationBuilder", 2e-10)); +} + +TEST_F(Std, MagneticSpheres) +{ + EXPECT_TRUE(run("MagneticSpheres", "MiniGISASPolarizationPM", "MagneticSpheresBuilder", 2e-10)); +} + +TEST_F(Std, MagneticCylindersPP) +{ + EXPECT_TRUE( + run("MagneticCylindersPP", "MiniGISASPolarizationPP", "MagneticCylindersBuilder", 2e-10)); +} + +TEST_F(Std, MagneticCylindersPM) +{ + EXPECT_TRUE( + run("MagneticCylindersPM", "MiniGISASPolarizationPM", "MagneticCylindersBuilder", 2e-10)); +} + +TEST_F(Std, MagneticCylindersMP) +{ + EXPECT_TRUE( + run("MagneticCylindersMP", "MiniGISASPolarizationMP", "MagneticCylindersBuilder", 2e-10)); +} + +TEST_F(Std, MagneticCylindersMM) +{ + EXPECT_TRUE( + run("MagneticCylindersMM", "MiniGISASPolarizationMM", "MagneticCylindersBuilder", 2e-10)); +} + +TEST_F(Std, MagneticSpheresInMagLayerPP) +{ + EXPECT_TRUE(run("MagneticSpheresInMagLayerPP", "MiniGISASPolarizationPP", + "MagneticLayerBuilder", 2e-10)); +} + +TEST_F(Std, MagneticSpheresInMagLayerMP) +{ + EXPECT_TRUE(run("MagneticSpheresInMagLayerMP", "MiniGISASPolarizationMP", + "MagneticLayerBuilder", 2e-10)); +} + +TEST_F(Std, SimulationWithMasks) +{ + EXPECT_TRUE(run("SimulationWithMasks", "GISASWithMasks", "CylindersAndPrismsBuilder", 1e-10)); +} + +TEST_F(Std, RectDetectorGeneric) +{ + EXPECT_TRUE(run("RectDetectorGeneric", "RectDetectorGeneric", "CylindersInBABuilder", 1e-10)); +} + +TEST_F(Std, RectDetectorPerpToSample) +{ + EXPECT_TRUE( + run("RectDetectorPerpToSample", "RectDetectorPerpToSample", "CylindersInBABuilder", 1e-10)); +} + +TEST_F(Std, RectDetectorPerpToDirectBeam) +{ + EXPECT_TRUE(run("RectDetectorPerpToDirectBeam", "RectDetectorPerpToDirectBeam", + "CylindersInBABuilder", 1e-10)); +} + +TEST_F(Std, RectDetectorPerpToReflectedBeam) +{ + EXPECT_TRUE(run("RectDetectorPerpToReflectedBeam", "RectDetectorPerpToReflectedBeam", + "CylindersInBABuilder", 1e-10)); +} + +TEST_F(Std, RectDetectorPerpToReflectedBeamDpos) +{ + EXPECT_TRUE(run("RectDetectorPerpToReflectedBeamDpos", "RectDetectorPerpToReflectedBeamDpos", + "CylindersInBABuilder", 1e-10)); +} + +TEST_F(Std, LargeCylindersMonteCarlo) +{ + EXPECT_TRUE(run("LargeCylindersMonteCarlo", "MiniGISASMonteCarlo", + "LargeCylindersInDWBABuilder", 5e-1)); +} + +TEST_F(Std, SphericalDetWithRoi) +{ + EXPECT_TRUE( + run("SphericalDetWithRoi", "SphericalDetWithRoi", "CylindersAndPrismsBuilder", 1e-10)); +} + +TEST_F(Std, RectDetWithRoi) +{ + EXPECT_TRUE(run("RectDetWithRoi", "RectDetWithRoi", "CylindersAndPrismsBuilder", 1e-10)); +} + +TEST_F(Std, BoxesWithSpecular) +{ + EXPECT_TRUE(run("BoxesWithSpecular", "MiniGISASSpecular", "BoxesSquareLatticeBuilder", 1e-10)); +} + +TEST_F(Std, RotatedCylinder) +{ + EXPECT_TRUE(run("RotatedCylinder", "MiniGISAS", "RotatedCylindersBuilder", 1e-10)); +} + +TEST_F(Std, SlicedComposition) +{ + EXPECT_TRUE(run("SlicedComposition", "MiniGISAS", "SlicedCompositionBuilder", 1e-10)); +} + +TEST_F(Std, ConstantBackground) +{ + EXPECT_TRUE(run("ConstantBackground", "ConstantBackground", "CylindersInBABuilder", 1e-10)); +} + +TEST_F(Std, HomogeneousTiNiSample) +{ + EXPECT_TRUE( + run("HomogeneousTiNiSample", "BasicSpecular", "HomogeneousMultilayerBuilder", 1e-10)); +} + +TEST_F(Std, HomogeneousTiNiSampleWithAbsorption) +{ + EXPECT_TRUE(run("HomogeneousTiNiSampleWithAbsorption", "BasicSpecular", + "PlainMultiLayerBySLDBuilder", 1e-10)); +} + +TEST_F(Std, RoughnessInSpecular) +{ + EXPECT_TRUE( + run("RoughnessInSpecular", "BasicSpecular", "MultiLayerWithRoughnessBuilder", 2e-9)); +} + +TEST_F(Std, GaussianBeamFootprint) +{ + EXPECT_TRUE(run("GaussianBeamFootprint", "SpecularWithGaussianBeam", + "HomogeneousMultilayerBuilder", 1e-10)); +} + +TEST_F(Std, SquareBeamFootprint) +{ + EXPECT_TRUE(run("SquareBeamFootprint", "SpecularWithSquareBeam", "HomogeneousMultilayerBuilder", + 1e-10)); +} + +TEST_F(Std, SpecularDivergentBeam) +{ + EXPECT_TRUE(run("SpecularDivergentBeam", "SpecularDivergentBeam", + "HomogeneousMultilayerBuilder", 1e-10)); +} + + +// ************************************************************************** // +// TODO: broken under GUI +// ************************************************************************** // + +#ifndef GUI_STD_TEST + +TEST_F(Std, RelativeResolutionTOF) +{ + EXPECT_TRUE(run("RelativeResolutionTOF", "TOFRWithRelativeResolution", + "PlainMultiLayerBySLDBuilder", 1e-10)); +} + +#endif // GUI_STD_TEST + + +// ************************************************************************** // +// TODO: broken under Python +// ************************************************************************** // + +#ifndef PYTHON_STD_TEST + +TEST_F(Std, OffSpecularResonator) +{ + EXPECT_TRUE(run("OffSpecularResonator", "OffSpecMini", "ResonatorBuilder", 1e-10)); +} + +TEST_F(Std, FormFactorsWithAbsorption) +{ + EXPECT_TRUE( + run("FormFactorsWithAbsorption", "MiniGISAS_v2", "LayersWithAbsorptionBuilder", 2e-10)); +} +#endif // PYTHON_STD_TEST + + +// ************************************************************************** // +// TODO: broken under GUI and Python +// ************************************************************************** // + +#ifndef PYTHON_STD_TEST +#ifndef GUI_STD_TEST + +TEST_F(Std, NCRoughnessInSpecular) +{ + EXPECT_TRUE( + run("NCRoughnessInSpecular", "BasicSpecular", "MultiLayerWithNCRoughnessBuilder", 2e-9)); +} + +TEST_F(Std, SuperLattice) +{ + EXPECT_TRUE(run("SuperLattice", "MiniGISAS", "SuperLatticeBuilder", 2e-10)); +} + +TEST_F(Std, SpecularWithSlicing) +{ + EXPECT_TRUE(run("SpecularWithSlicing_01", "BasicSpecular", "SlicedCylindersBuilder", 1e-10)); + EXPECT_TRUE(run("SpecularWithSlicing_02", "BasicSpecular", "SLDSlicedCylindersBuilder", 1e-10)); + EXPECT_TRUE( + run("SpecularWithSlicing_03", "BasicSpecular", "AveragedSlicedCylindersBuilder", 1e-10)); + EXPECT_TRUE( + run("SpecularWithSlicing_Q2", "BasicSpecularQ", "SLDSlicedCylindersBuilder", 1e-10)); +} + +TEST_F(Std, InstrumentDefinitionComparison) +{ + EXPECT_TRUE(run("InstrumentDefinitionComparison_0", "BasicSpecular", + "PlainMultiLayerBySLDBuilder", 1e-10)); + EXPECT_TRUE(run("InstrumentDefinitionComparison_Q", "BasicSpecularQ", + "PlainMultiLayerBySLDBuilder", 1e-10)); +} + +TEST_F(Std, TOFResolutionComparison) +{ + EXPECT_TRUE(run("TOFResolutionComparison_TR", "TOFRWithRelativeResolution", + "PlainMultiLayerBySLDBuilder", 1e-10)); + EXPECT_TRUE(run("TOFResolutionComparison_TP", "TOFRWithPointwiseResolution", + "PlainMultiLayerBySLDBuilder", 1e-10)); +} + +TEST_F(Std, BasicSpecularPP) +{ + EXPECT_TRUE(run("BasicSpecularPP", "BasicSpecularPP", "SimpleMagneticLayerBuilder", 1e-10)); +} + +TEST_F(Std, BasicSpecularMM) +{ + EXPECT_TRUE(run("BasicSpecularMM", "BasicSpecularMM", "SimpleMagneticLayerBuilder", 1e-10)); +} + +TEST_F(Std, PolarizedQAngleReflectivityPP) +{ + EXPECT_TRUE(run("PolarizedQAngleReflectivityPP_0", "BasicSpecularPP", + "SimpleMagneticLayerBuilder", 1e-10)); + EXPECT_TRUE(run("PolarizedQAngleReflectivityPP_Q", "BasicQSpecularPP", + "SimpleMagneticLayerBuilder", 1e-10)); +} + +TEST_F(Std, PolarizedQAngleReflectivityMM) +{ + EXPECT_TRUE(run("PolarizedQAngleReflectivityMM_0", "BasicSpecularMM", + "SimpleMagneticLayerBuilder", 1e-10)); + EXPECT_TRUE(run("PolarizedQAngleReflectivityMM_Q", "BasicQSpecularMM", + "SimpleMagneticLayerBuilder", 1e-10)); +} + +TEST_F(Std, DepthProbeTest) +{ + EXPECT_TRUE(run("DepthProbeTest", "BasicDepthProbe", "HomogeneousMultilayerBuilder", 1e-10)); +} + +#endif // GUI_STD_TEST +#endif // PYTHON_STD_TEST diff --git a/Tests/ReferenceData/Core/ApproximationLMA.int.gz b/Tests/ReferenceData/Core/ApproximationLMA.int.gz deleted file mode 100644 index 10f9a5c4343c0e2619ef9fd540c9e8c8b7a361bc..0000000000000000000000000000000000000000 Binary files a/Tests/ReferenceData/Core/ApproximationLMA.int.gz and /dev/null differ diff --git a/Tests/ReferenceData/Core/Basic2DParaCrystal_FTDistribution2DCauchy.int.gz b/Tests/ReferenceData/Core/Basic2DParaCrystal_FTDistribution2DCauchy.int.gz deleted file mode 100644 index f916fcf083031626110e3d7652a37786c521f052..0000000000000000000000000000000000000000 Binary files a/Tests/ReferenceData/Core/Basic2DParaCrystal_FTDistribution2DCauchy.int.gz and /dev/null differ diff --git a/Tests/ReferenceData/Core/Basic2DParaCrystal_FTDistribution2DCone.int.gz b/Tests/ReferenceData/Core/Basic2DParaCrystal_FTDistribution2DCone.int.gz deleted file mode 100644 index 0ed92131f7f9e03f59bb5f07eedad09253a412d2..0000000000000000000000000000000000000000 Binary files a/Tests/ReferenceData/Core/Basic2DParaCrystal_FTDistribution2DCone.int.gz and /dev/null differ diff --git a/Tests/ReferenceData/Core/Basic2DParaCrystal_FTDistribution2DGate.int.gz b/Tests/ReferenceData/Core/Basic2DParaCrystal_FTDistribution2DGate.int.gz deleted file mode 100644 index 387d100b7364dec8f7ba2c79caefe16133e109fc..0000000000000000000000000000000000000000 Binary files a/Tests/ReferenceData/Core/Basic2DParaCrystal_FTDistribution2DGate.int.gz and /dev/null differ diff --git a/Tests/ReferenceData/Core/Basic2DParaCrystal_FTDistribution2DGauss.int.gz b/Tests/ReferenceData/Core/Basic2DParaCrystal_FTDistribution2DGauss.int.gz deleted file mode 100644 index 5ef3e83704c9f697774879b47a36512e86984af2..0000000000000000000000000000000000000000 Binary files a/Tests/ReferenceData/Core/Basic2DParaCrystal_FTDistribution2DGauss.int.gz and /dev/null differ diff --git a/Tests/ReferenceData/Core/Basic2DParaCrystal_FTDistribution2DVoigt.int.gz b/Tests/ReferenceData/Core/Basic2DParaCrystal_FTDistribution2DVoigt.int.gz deleted file mode 100644 index ef8493acc8bd72263b8a7754f4b22d54bee7e29e..0000000000000000000000000000000000000000 Binary files a/Tests/ReferenceData/Core/Basic2DParaCrystal_FTDistribution2DVoigt.int.gz and /dev/null differ diff --git a/Tests/ReferenceData/Core/BoxCompositionRotateX.int.gz b/Tests/ReferenceData/Core/BoxCompositionRotateX.int.gz deleted file mode 100644 index 6a530c96e1d0c118e31dde5d5ff09c49dedd855c..0000000000000000000000000000000000000000 Binary files a/Tests/ReferenceData/Core/BoxCompositionRotateX.int.gz and /dev/null differ diff --git a/Tests/ReferenceData/Core/BoxCompositionRotateZ.int.gz b/Tests/ReferenceData/Core/BoxCompositionRotateZ.int.gz deleted file mode 100644 index ee2457583e80673af314957bfe0721032439b943..0000000000000000000000000000000000000000 Binary files a/Tests/ReferenceData/Core/BoxCompositionRotateZ.int.gz and /dev/null differ diff --git a/Tests/ReferenceData/Core/BoxStackComposition.int.gz b/Tests/ReferenceData/Core/BoxStackComposition.int.gz deleted file mode 100644 index 56e49771c23d53efe0d3d93f49fbadcdfd61ac00..0000000000000000000000000000000000000000 Binary files a/Tests/ReferenceData/Core/BoxStackComposition.int.gz and /dev/null differ diff --git a/Tests/ReferenceData/Core/BoxesWithSpecular.int.gz b/Tests/ReferenceData/Core/BoxesWithSpecular.int.gz deleted file mode 100644 index 441439a35b398e97507e27ff9f16a975e8fbe47e..0000000000000000000000000000000000000000 Binary files a/Tests/ReferenceData/Core/BoxesWithSpecular.int.gz and /dev/null differ diff --git a/Tests/ReferenceData/Core/CenteredSquareLattice.int.gz b/Tests/ReferenceData/Core/CenteredSquareLattice.int.gz deleted file mode 100644 index b96cfba38ffdd66dd3560d68f3700783fcd1136a..0000000000000000000000000000000000000000 Binary files a/Tests/ReferenceData/Core/CenteredSquareLattice.int.gz and /dev/null differ diff --git a/Tests/ReferenceData/Core/ConesWithLimitsDistribution.int.gz b/Tests/ReferenceData/Core/ConesWithLimitsDistribution.int.gz deleted file mode 100644 index 614e5b69682e053668ceda4909a351cfa4c0c391..0000000000000000000000000000000000000000 Binary files a/Tests/ReferenceData/Core/ConesWithLimitsDistribution.int.gz and /dev/null differ diff --git a/Tests/ReferenceData/Core/CoreShellBoxRotateZandY.int.gz b/Tests/ReferenceData/Core/CoreShellBoxRotateZandY.int.gz deleted file mode 100644 index b932aea272a8a8eeca39e9626bcb3b3d3c9836b8..0000000000000000000000000000000000000000 Binary files a/Tests/ReferenceData/Core/CoreShellBoxRotateZandY.int.gz and /dev/null differ diff --git a/Tests/ReferenceData/Core/CylindersAndPrisms.int.gz b/Tests/ReferenceData/Core/CylindersAndPrisms.int.gz deleted file mode 100644 index 51b81c18a5e18cb8271904fd1c0b85f0739222c4..0000000000000000000000000000000000000000 Binary files a/Tests/ReferenceData/Core/CylindersAndPrisms.int.gz and /dev/null differ diff --git a/Tests/ReferenceData/Core/CylindersWithSizeDistribution.int.gz b/Tests/ReferenceData/Core/CylindersWithSizeDistribution.int.gz deleted file mode 100644 index c2de7f2169847192ee6d0d86f43fce96b162458c..0000000000000000000000000000000000000000 Binary files a/Tests/ReferenceData/Core/CylindersWithSizeDistribution.int.gz and /dev/null differ diff --git a/Tests/ReferenceData/Core/DetectorResolution.int.gz b/Tests/ReferenceData/Core/DetectorResolution.int.gz deleted file mode 100644 index 36a91a9fccd00fe613074b48aab4f5ea153308ca..0000000000000000000000000000000000000000 Binary files a/Tests/ReferenceData/Core/DetectorResolution.int.gz and /dev/null differ diff --git a/Tests/ReferenceData/Core/FormFactorsWithAbsorption_AnisoPyramid.int.gz b/Tests/ReferenceData/Core/FormFactorsWithAbsorption_AnisoPyramid.int.gz deleted file mode 100644 index 5b55e2a3a5e88b7f59436b8de4ab4bc04a55e2ab..0000000000000000000000000000000000000000 Binary files a/Tests/ReferenceData/Core/FormFactorsWithAbsorption_AnisoPyramid.int.gz and /dev/null differ diff --git a/Tests/ReferenceData/Core/FormFactorsWithAbsorption_Cone.int.gz b/Tests/ReferenceData/Core/FormFactorsWithAbsorption_Cone.int.gz deleted file mode 100644 index 842a67e6bd8bb037b69cc5664a192e494d2a59a1..0000000000000000000000000000000000000000 Binary files a/Tests/ReferenceData/Core/FormFactorsWithAbsorption_Cone.int.gz and /dev/null differ diff --git a/Tests/ReferenceData/Core/FormFactorsWithAbsorption_Cylinder.int.gz b/Tests/ReferenceData/Core/FormFactorsWithAbsorption_Cylinder.int.gz deleted file mode 100644 index 31bbf8091711538ef9f607f89a64a62bd9c73605..0000000000000000000000000000000000000000 Binary files a/Tests/ReferenceData/Core/FormFactorsWithAbsorption_Cylinder.int.gz and /dev/null differ diff --git a/Tests/ReferenceData/Core/FormFactorsWithAbsorption_Dodecahedron.int.gz b/Tests/ReferenceData/Core/FormFactorsWithAbsorption_Dodecahedron.int.gz deleted file mode 100644 index 08bea1031461f285bd2c4f0331506809c1bd83ef..0000000000000000000000000000000000000000 Binary files a/Tests/ReferenceData/Core/FormFactorsWithAbsorption_Dodecahedron.int.gz and /dev/null differ diff --git a/Tests/ReferenceData/Core/FormFactorsWithAbsorption_EllipsoidalCylinder.int.gz b/Tests/ReferenceData/Core/FormFactorsWithAbsorption_EllipsoidalCylinder.int.gz deleted file mode 100644 index f73ded00a1eaed86001fb7dafa1bfc18ae88808d..0000000000000000000000000000000000000000 Binary files a/Tests/ReferenceData/Core/FormFactorsWithAbsorption_EllipsoidalCylinder.int.gz and /dev/null differ diff --git a/Tests/ReferenceData/Core/FormFactorsWithAbsorption_FullSphere.int.gz b/Tests/ReferenceData/Core/FormFactorsWithAbsorption_FullSphere.int.gz deleted file mode 100644 index bb1d3d28511b4ab9092129a21950222b20b99536..0000000000000000000000000000000000000000 Binary files a/Tests/ReferenceData/Core/FormFactorsWithAbsorption_FullSphere.int.gz and /dev/null differ diff --git a/Tests/ReferenceData/Core/FormFactorsWithAbsorption_FullSpheroid.int.gz b/Tests/ReferenceData/Core/FormFactorsWithAbsorption_FullSpheroid.int.gz deleted file mode 100644 index 7bcd6b4d302bd66d50ddcc5d1d75ab4f23abd0da..0000000000000000000000000000000000000000 Binary files a/Tests/ReferenceData/Core/FormFactorsWithAbsorption_FullSpheroid.int.gz and /dev/null differ diff --git a/Tests/ReferenceData/Core/FormFactorsWithAbsorption_Prism3.int.gz b/Tests/ReferenceData/Core/FormFactorsWithAbsorption_Prism3.int.gz deleted file mode 100644 index 6360fbe3a65fdccb5e4e8a173e9eda6578013d24..0000000000000000000000000000000000000000 Binary files a/Tests/ReferenceData/Core/FormFactorsWithAbsorption_Prism3.int.gz and /dev/null differ diff --git a/Tests/ReferenceData/Core/FormFactorsWithAbsorption_Ripple1Box.int.gz b/Tests/ReferenceData/Core/FormFactorsWithAbsorption_Ripple1Box.int.gz deleted file mode 100644 index eae5818c07038c8b11000dc1cb23c34b4e178bc3..0000000000000000000000000000000000000000 Binary files a/Tests/ReferenceData/Core/FormFactorsWithAbsorption_Ripple1Box.int.gz and /dev/null differ diff --git a/Tests/ReferenceData/Core/FormFactorsWithAbsorption_Ripple2Box.int.gz b/Tests/ReferenceData/Core/FormFactorsWithAbsorption_Ripple2Box.int.gz deleted file mode 100644 index 5b238e600793a0ff670c6d31fb057e18b83c678d..0000000000000000000000000000000000000000 Binary files a/Tests/ReferenceData/Core/FormFactorsWithAbsorption_Ripple2Box.int.gz and /dev/null differ diff --git a/Tests/ReferenceData/Core/FormFactorsWithAbsorption_TruncatedCube.int.gz b/Tests/ReferenceData/Core/FormFactorsWithAbsorption_TruncatedCube.int.gz deleted file mode 100644 index 8f5c7a66048c4ee2500cbcc97748e197a4cbb33f..0000000000000000000000000000000000000000 Binary files a/Tests/ReferenceData/Core/FormFactorsWithAbsorption_TruncatedCube.int.gz and /dev/null differ diff --git a/Tests/ReferenceData/Core/FormFactors_CantellatedCube.int.gz b/Tests/ReferenceData/Core/FormFactors_CantellatedCube.int.gz deleted file mode 100644 index ed8b01d05ba82bd3399e316e0a2b420832ca5a13..0000000000000000000000000000000000000000 Binary files a/Tests/ReferenceData/Core/FormFactors_CantellatedCube.int.gz and /dev/null differ diff --git a/Tests/ReferenceData/Core/FormFactors_FullSpheroid.int.gz b/Tests/ReferenceData/Core/FormFactors_FullSpheroid.int.gz deleted file mode 100644 index 28f6b3203176d7d4a2df3fddc3ba3998e0404887..0000000000000000000000000000000000000000 Binary files a/Tests/ReferenceData/Core/FormFactors_FullSpheroid.int.gz and /dev/null differ diff --git a/Tests/ReferenceData/Core/FormFactors_Ripple1Box.int.gz b/Tests/ReferenceData/Core/FormFactors_Ripple1Box.int.gz deleted file mode 100644 index c22b96fac2ed20c8e4ff34866e99a666491aa9f0..0000000000000000000000000000000000000000 Binary files a/Tests/ReferenceData/Core/FormFactors_Ripple1Box.int.gz and /dev/null differ diff --git a/Tests/ReferenceData/Core/FormFactors_Ripple2Box.int.gz b/Tests/ReferenceData/Core/FormFactors_Ripple2Box.int.gz deleted file mode 100644 index 9b87d2e46b4f7359dc6bb2f52f78facb6d33d3ba..0000000000000000000000000000000000000000 Binary files a/Tests/ReferenceData/Core/FormFactors_Ripple2Box.int.gz and /dev/null differ diff --git a/Tests/ReferenceData/Core/GISASAbsorptiveSLDLayers.int.gz b/Tests/ReferenceData/Core/GISASAbsorptiveSLDLayers.int.gz deleted file mode 100644 index 898148658bd8b9dc9c1eb39cacd36ec236514a94..0000000000000000000000000000000000000000 Binary files a/Tests/ReferenceData/Core/GISASAbsorptiveSLDLayers.int.gz and /dev/null differ diff --git a/Tests/ReferenceData/Core/GaussianBeamFootprint.int.gz b/Tests/ReferenceData/Core/GaussianBeamFootprint.int.gz deleted file mode 100644 index 70cc1d625fdff3e2354f866e4d0a372b03094656..0000000000000000000000000000000000000000 Binary files a/Tests/ReferenceData/Core/GaussianBeamFootprint.int.gz and /dev/null differ diff --git a/Tests/ReferenceData/Core/HardDisk.int.gz b/Tests/ReferenceData/Core/HardDisk.int.gz deleted file mode 100644 index cc57e2b837f0ea990a9d62c38da9be4d2eec3506..0000000000000000000000000000000000000000 Binary files a/Tests/ReferenceData/Core/HardDisk.int.gz and /dev/null differ diff --git a/Tests/ReferenceData/Core/HexParaCrystal.int.gz b/Tests/ReferenceData/Core/HexParaCrystal.int.gz deleted file mode 100644 index be5372c713e71041248e8ace2f599856cd4945b2..0000000000000000000000000000000000000000 Binary files a/Tests/ReferenceData/Core/HexParaCrystal.int.gz and /dev/null differ diff --git a/Tests/ReferenceData/Core/HomogeneousTiNiSample.int.gz b/Tests/ReferenceData/Core/HomogeneousTiNiSample.int.gz deleted file mode 100644 index feaf3f618e84a5603bd049e52e6d39e83c7077a6..0000000000000000000000000000000000000000 Binary files a/Tests/ReferenceData/Core/HomogeneousTiNiSample.int.gz and /dev/null differ diff --git a/Tests/ReferenceData/Core/HomogeneousTiNiSampleWithAbsorption.int.gz b/Tests/ReferenceData/Core/HomogeneousTiNiSampleWithAbsorption.int.gz deleted file mode 100644 index 504627f7b693b9c870c2bc0504b2ecf5d1359c32..0000000000000000000000000000000000000000 Binary files a/Tests/ReferenceData/Core/HomogeneousTiNiSampleWithAbsorption.int.gz and /dev/null differ diff --git a/Tests/ReferenceData/Core/LargeCylindersMonteCarlo.int.gz b/Tests/ReferenceData/Core/LargeCylindersMonteCarlo.int.gz deleted file mode 100644 index fe1367e564068b4af120e0c780e1e1874bc2942e..0000000000000000000000000000000000000000 Binary files a/Tests/ReferenceData/Core/LargeCylindersMonteCarlo.int.gz and /dev/null differ diff --git a/Tests/ReferenceData/Core/LinkedBoxDistribution.int.gz b/Tests/ReferenceData/Core/LinkedBoxDistribution.int.gz deleted file mode 100644 index 72f3ae36e335feff2f23f9f24576767e03c256fe..0000000000000000000000000000000000000000 Binary files a/Tests/ReferenceData/Core/LinkedBoxDistribution.int.gz and /dev/null differ diff --git a/Tests/ReferenceData/Core/MagneticParticleZeroField.int.gz b/Tests/ReferenceData/Core/MagneticParticleZeroField.int.gz deleted file mode 100644 index 3bb6f2e3e5cc87405f1b2ff6751f529b84d1aced..0000000000000000000000000000000000000000 Binary files a/Tests/ReferenceData/Core/MagneticParticleZeroField.int.gz and /dev/null differ diff --git a/Tests/ReferenceData/Core/MagneticSpheresInMagLayerPP.int.gz b/Tests/ReferenceData/Core/MagneticSpheresInMagLayerPP.int.gz deleted file mode 100644 index e071ebaa7f632f51f5ef65c88bfef584e9a661c8..0000000000000000000000000000000000000000 Binary files a/Tests/ReferenceData/Core/MagneticSpheresInMagLayerPP.int.gz and /dev/null differ diff --git a/Tests/ReferenceData/Core/MagneticSubstrateZeroField.int.gz b/Tests/ReferenceData/Core/MagneticSubstrateZeroField.int.gz deleted file mode 100644 index 46343e74aac61362f7743a6863b4ee0f5f8f774c..0000000000000000000000000000000000000000 Binary files a/Tests/ReferenceData/Core/MagneticSubstrateZeroField.int.gz and /dev/null differ diff --git a/Tests/ReferenceData/Core/MesoCrystal.int.gz b/Tests/ReferenceData/Core/MesoCrystal.int.gz deleted file mode 100644 index 90e16efdcfe1ec2bc78dd0ccd222ee6b2d90392c..0000000000000000000000000000000000000000 Binary files a/Tests/ReferenceData/Core/MesoCrystal.int.gz and /dev/null differ diff --git a/Tests/ReferenceData/Core/MultiLayerWithRoughness.int.gz b/Tests/ReferenceData/Core/MultiLayerWithRoughness.int.gz deleted file mode 100644 index 7e5d299ad9c93e38fec08cfcbfc761b0a13276e2..0000000000000000000000000000000000000000 Binary files a/Tests/ReferenceData/Core/MultiLayerWithRoughness.int.gz and /dev/null differ diff --git a/Tests/ReferenceData/Core/MultipleLayout.int.gz b/Tests/ReferenceData/Core/MultipleLayout.int.gz deleted file mode 100644 index b0d4dce3fa06b2dcef9143256a5a0b1f78310ee1..0000000000000000000000000000000000000000 Binary files a/Tests/ReferenceData/Core/MultipleLayout.int.gz and /dev/null differ diff --git a/Tests/ReferenceData/Core/NCRoughnessInSpecular.int.gz b/Tests/ReferenceData/Core/NCRoughnessInSpecular.int.gz deleted file mode 100644 index 91c7e14ebcee8f3b95b75f0a339ffa697fcf4d0b..0000000000000000000000000000000000000000 Binary files a/Tests/ReferenceData/Core/NCRoughnessInSpecular.int.gz and /dev/null differ diff --git a/Tests/ReferenceData/Core/OffSpecularResonator.int.gz b/Tests/ReferenceData/Core/OffSpecularResonator.int.gz deleted file mode 100644 index 5c34fd0725fb1d6036e0ab72d873fda7142782d9..0000000000000000000000000000000000000000 Binary files a/Tests/ReferenceData/Core/OffSpecularResonator.int.gz and /dev/null differ diff --git a/Tests/ReferenceData/Core/RadialParaCrystal.int.gz b/Tests/ReferenceData/Core/RadialParaCrystal.int.gz deleted file mode 100644 index c0a74aace072302e2c8fcc7f9a255ecb1a018613..0000000000000000000000000000000000000000 Binary files a/Tests/ReferenceData/Core/RadialParaCrystal.int.gz and /dev/null differ diff --git a/Tests/ReferenceData/Core/RectParaCrystal.int.gz b/Tests/ReferenceData/Core/RectParaCrystal.int.gz deleted file mode 100644 index 1e67f6e04a58e660ad0465c49dc6dea51e59791d..0000000000000000000000000000000000000000 Binary files a/Tests/ReferenceData/Core/RectParaCrystal.int.gz and /dev/null differ diff --git a/Tests/ReferenceData/Core/RotatedPyramids.int.gz b/Tests/ReferenceData/Core/RotatedPyramids.int.gz deleted file mode 100644 index e6cb0c51f9a23358092f84bba59ca54aadfc85b8..0000000000000000000000000000000000000000 Binary files a/Tests/ReferenceData/Core/RotatedPyramids.int.gz and /dev/null differ diff --git a/Tests/ReferenceData/Core/RoughnessInSpecular.int.gz b/Tests/ReferenceData/Core/RoughnessInSpecular.int.gz deleted file mode 100644 index a39c0eca79bc7b0ac8d1f4cf1c31e8738a446cac..0000000000000000000000000000000000000000 Binary files a/Tests/ReferenceData/Core/RoughnessInSpecular.int.gz and /dev/null differ diff --git a/Tests/ReferenceData/Core/SpecularDivergentBeam.int.gz b/Tests/ReferenceData/Core/SpecularDivergentBeam.int.gz deleted file mode 100644 index 62b6e85e8faeb33371dc5a7a40be68c08a462fbe..0000000000000000000000000000000000000000 Binary files a/Tests/ReferenceData/Core/SpecularDivergentBeam.int.gz and /dev/null differ diff --git a/Tests/ReferenceData/Core/SquareBeamFootprint.int.gz b/Tests/ReferenceData/Core/SquareBeamFootprint.int.gz deleted file mode 100644 index 4243fabb087e971de7d5ab951a60a4e8a876a2d6..0000000000000000000000000000000000000000 Binary files a/Tests/ReferenceData/Core/SquareBeamFootprint.int.gz and /dev/null differ diff --git a/Tests/ReferenceData/Core/ThickAbsorptiveSampleWithRoughness.int.gz b/Tests/ReferenceData/Core/ThickAbsorptiveSampleWithRoughness.int.gz deleted file mode 100644 index f39b930793b7677dc38674018e510b6dca38fd7e..0000000000000000000000000000000000000000 Binary files a/Tests/ReferenceData/Core/ThickAbsorptiveSampleWithRoughness.int.gz and /dev/null differ diff --git a/Tests/ReferenceData/Core/polmagcylinders2_reference_00.int.gz b/Tests/ReferenceData/Python/polmagcylinders2_reference_00.int.gz similarity index 100% rename from Tests/ReferenceData/Core/polmagcylinders2_reference_00.int.gz rename to Tests/ReferenceData/Python/polmagcylinders2_reference_00.int.gz diff --git a/Tests/ReferenceData/Core/polmagcylinders2_reference_01.int.gz b/Tests/ReferenceData/Python/polmagcylinders2_reference_01.int.gz similarity index 100% rename from Tests/ReferenceData/Core/polmagcylinders2_reference_01.int.gz rename to Tests/ReferenceData/Python/polmagcylinders2_reference_01.int.gz diff --git a/Tests/ReferenceData/Core/polmagcylinders2_reference_10.int.gz b/Tests/ReferenceData/Python/polmagcylinders2_reference_10.int.gz similarity index 100% rename from Tests/ReferenceData/Core/polmagcylinders2_reference_10.int.gz rename to Tests/ReferenceData/Python/polmagcylinders2_reference_10.int.gz diff --git a/Tests/ReferenceData/Core/polmagcylinders2_reference_11.int.gz b/Tests/ReferenceData/Python/polmagcylinders2_reference_11.int.gz similarity index 100% rename from Tests/ReferenceData/Core/polmagcylinders2_reference_11.int.gz rename to Tests/ReferenceData/Python/polmagcylinders2_reference_11.int.gz diff --git a/Tests/ReferenceData/Core/ApproximationDA.int.gz b/Tests/ReferenceData/Std/ApproximationDA.int.gz similarity index 100% rename from Tests/ReferenceData/Core/ApproximationDA.int.gz rename to Tests/ReferenceData/Std/ApproximationDA.int.gz diff --git a/Tests/ReferenceData/Std/ApproximationLMA.int.gz b/Tests/ReferenceData/Std/ApproximationLMA.int.gz new file mode 100644 index 0000000000000000000000000000000000000000..8ee950db90b13acba03a9c2a09c66516f1f884ec Binary files /dev/null and b/Tests/ReferenceData/Std/ApproximationLMA.int.gz differ diff --git a/Tests/ReferenceData/Core/ApproximationSSCA.int.gz b/Tests/ReferenceData/Std/ApproximationSSCA.int.gz similarity index 100% rename from Tests/ReferenceData/Core/ApproximationSSCA.int.gz rename to Tests/ReferenceData/Std/ApproximationSSCA.int.gz diff --git a/Tests/ReferenceData/Core/AsymRipple.int.gz b/Tests/ReferenceData/Std/AsymRipple.int.gz similarity index 90% rename from Tests/ReferenceData/Core/AsymRipple.int.gz rename to Tests/ReferenceData/Std/AsymRipple.int.gz index df8060c38a08478d5038215e1446c61a458660b6..98bc78b48ba1c3055ea98427ad195a684f7db3d2 100644 Binary files a/Tests/ReferenceData/Core/AsymRipple.int.gz and b/Tests/ReferenceData/Std/AsymRipple.int.gz differ diff --git a/Tests/ReferenceData/Std/Basic2DParaCrystal.int.gz b/Tests/ReferenceData/Std/Basic2DParaCrystal.int.gz new file mode 100644 index 0000000000000000000000000000000000000000..61f5930c392831a23f90d3e9d7f8b4e6632d63b1 Binary files /dev/null and b/Tests/ReferenceData/Std/Basic2DParaCrystal.int.gz differ diff --git a/Tests/ReferenceData/Std/Basic2DParaCrystal_FTDistribution2DCauchy.int.gz b/Tests/ReferenceData/Std/Basic2DParaCrystal_FTDistribution2DCauchy.int.gz new file mode 100644 index 0000000000000000000000000000000000000000..e33c591489433fb52a40532203a8b13e04703851 Binary files /dev/null and b/Tests/ReferenceData/Std/Basic2DParaCrystal_FTDistribution2DCauchy.int.gz differ diff --git a/Tests/ReferenceData/Std/Basic2DParaCrystal_FTDistribution2DCone.int.gz b/Tests/ReferenceData/Std/Basic2DParaCrystal_FTDistribution2DCone.int.gz new file mode 100644 index 0000000000000000000000000000000000000000..c4f335695fc96bad987bdd1cd548ce4b319d07e0 Binary files /dev/null and b/Tests/ReferenceData/Std/Basic2DParaCrystal_FTDistribution2DCone.int.gz differ diff --git a/Tests/ReferenceData/Std/Basic2DParaCrystal_FTDistribution2DGate.int.gz b/Tests/ReferenceData/Std/Basic2DParaCrystal_FTDistribution2DGate.int.gz new file mode 100644 index 0000000000000000000000000000000000000000..35d95dabdbf292ea3bca474284c1c834d3b4a72c Binary files /dev/null and b/Tests/ReferenceData/Std/Basic2DParaCrystal_FTDistribution2DGate.int.gz differ diff --git a/Tests/ReferenceData/Std/Basic2DParaCrystal_FTDistribution2DGauss.int.gz b/Tests/ReferenceData/Std/Basic2DParaCrystal_FTDistribution2DGauss.int.gz new file mode 100644 index 0000000000000000000000000000000000000000..f00f92bd21477db2a0219391cb2fba1a3263fad0 Binary files /dev/null and b/Tests/ReferenceData/Std/Basic2DParaCrystal_FTDistribution2DGauss.int.gz differ diff --git a/Tests/ReferenceData/Std/Basic2DParaCrystal_FTDistribution2DVoigt.int.gz b/Tests/ReferenceData/Std/Basic2DParaCrystal_FTDistribution2DVoigt.int.gz new file mode 100644 index 0000000000000000000000000000000000000000..61f5930c392831a23f90d3e9d7f8b4e6632d63b1 Binary files /dev/null and b/Tests/ReferenceData/Std/Basic2DParaCrystal_FTDistribution2DVoigt.int.gz differ diff --git a/Tests/ReferenceData/Core/BasicSpecularMM.int.gz b/Tests/ReferenceData/Std/BasicSpecularMM.int.gz similarity index 100% rename from Tests/ReferenceData/Core/BasicSpecularMM.int.gz rename to Tests/ReferenceData/Std/BasicSpecularMM.int.gz diff --git a/Tests/ReferenceData/Core/BasicSpecularPP.int.gz b/Tests/ReferenceData/Std/BasicSpecularPP.int.gz similarity index 100% rename from Tests/ReferenceData/Core/BasicSpecularPP.int.gz rename to Tests/ReferenceData/Std/BasicSpecularPP.int.gz diff --git a/Tests/ReferenceData/Core/BeamDivergence.int.gz b/Tests/ReferenceData/Std/BeamDivergence.int.gz similarity index 100% rename from Tests/ReferenceData/Core/BeamDivergence.int.gz rename to Tests/ReferenceData/Std/BeamDivergence.int.gz diff --git a/Tests/ReferenceData/Std/BoxCompositionRotateX.int.gz b/Tests/ReferenceData/Std/BoxCompositionRotateX.int.gz new file mode 100644 index 0000000000000000000000000000000000000000..bd3efa83fd825a0ed0dc3f86c59058755a5fae05 Binary files /dev/null and b/Tests/ReferenceData/Std/BoxCompositionRotateX.int.gz differ diff --git a/Tests/ReferenceData/Core/BoxCompositionRotateY.int.gz b/Tests/ReferenceData/Std/BoxCompositionRotateY.int.gz similarity index 100% rename from Tests/ReferenceData/Core/BoxCompositionRotateY.int.gz rename to Tests/ReferenceData/Std/BoxCompositionRotateY.int.gz diff --git a/Tests/ReferenceData/Std/BoxCompositionRotateZ.int.gz b/Tests/ReferenceData/Std/BoxCompositionRotateZ.int.gz new file mode 100644 index 0000000000000000000000000000000000000000..d6d1d04012922d7f3a3d999af3277856c6e18a1e Binary files /dev/null and b/Tests/ReferenceData/Std/BoxCompositionRotateZ.int.gz differ diff --git a/Tests/ReferenceData/Core/BoxCompositionRotateZandY.int.gz b/Tests/ReferenceData/Std/BoxCompositionRotateZandY.int.gz similarity index 94% rename from Tests/ReferenceData/Core/BoxCompositionRotateZandY.int.gz rename to Tests/ReferenceData/Std/BoxCompositionRotateZandY.int.gz index a47587e3611e0ace6eeac77263e46e068385aa52..427de8eedec0eedc7e9c7227a0d23c2fd5b27ea6 100644 Binary files a/Tests/ReferenceData/Core/BoxCompositionRotateZandY.int.gz and b/Tests/ReferenceData/Std/BoxCompositionRotateZandY.int.gz differ diff --git a/Tests/ReferenceData/Std/BoxStackComposition.int.gz b/Tests/ReferenceData/Std/BoxStackComposition.int.gz new file mode 100644 index 0000000000000000000000000000000000000000..649e418cfa84c17803754914ab722b7f8f93cb25 Binary files /dev/null and b/Tests/ReferenceData/Std/BoxStackComposition.int.gz differ diff --git a/Tests/ReferenceData/Std/BoxesWithSpecular.int.gz b/Tests/ReferenceData/Std/BoxesWithSpecular.int.gz new file mode 100644 index 0000000000000000000000000000000000000000..6ed28a9cce33dec9fcc4209abe9a9419119b7746 Binary files /dev/null and b/Tests/ReferenceData/Std/BoxesWithSpecular.int.gz differ diff --git a/Tests/ReferenceData/Std/CenteredSquareLattice.int.gz b/Tests/ReferenceData/Std/CenteredSquareLattice.int.gz new file mode 100644 index 0000000000000000000000000000000000000000..bca8cc5263aefdf9226a781d93bc9e8cc68a5163 Binary files /dev/null and b/Tests/ReferenceData/Std/CenteredSquareLattice.int.gz differ diff --git a/Tests/ReferenceData/Std/ConesWithLimitsDistribution.int.gz b/Tests/ReferenceData/Std/ConesWithLimitsDistribution.int.gz new file mode 100644 index 0000000000000000000000000000000000000000..48de86462aa3d2b5edc56102f7e3db4c3762663b Binary files /dev/null and b/Tests/ReferenceData/Std/ConesWithLimitsDistribution.int.gz differ diff --git a/Tests/ReferenceData/Core/ConstantBackground.int.gz b/Tests/ReferenceData/Std/ConstantBackground.int.gz similarity index 100% rename from Tests/ReferenceData/Core/ConstantBackground.int.gz rename to Tests/ReferenceData/Std/ConstantBackground.int.gz diff --git a/Tests/ReferenceData/Std/CoreShellBoxRotateZandY.int.gz b/Tests/ReferenceData/Std/CoreShellBoxRotateZandY.int.gz new file mode 100644 index 0000000000000000000000000000000000000000..2f947dd21add0e8897664997d2c35ff54f4f75dd Binary files /dev/null and b/Tests/ReferenceData/Std/CoreShellBoxRotateZandY.int.gz differ diff --git a/Tests/ReferenceData/Core/CoreShellParticle.int.gz b/Tests/ReferenceData/Std/CoreShellParticle.int.gz similarity index 100% rename from Tests/ReferenceData/Core/CoreShellParticle.int.gz rename to Tests/ReferenceData/Std/CoreShellParticle.int.gz diff --git a/Tests/ReferenceData/Core/CosineRipple.int.gz b/Tests/ReferenceData/Std/CosineRipple.int.gz similarity index 100% rename from Tests/ReferenceData/Core/CosineRipple.int.gz rename to Tests/ReferenceData/Std/CosineRipple.int.gz diff --git a/Tests/ReferenceData/Core/CustomMorphology.int.gz b/Tests/ReferenceData/Std/CustomMorphology.int.gz similarity index 100% rename from Tests/ReferenceData/Core/CustomMorphology.int.gz rename to Tests/ReferenceData/Std/CustomMorphology.int.gz diff --git a/Tests/ReferenceData/Std/CylindersAndPrisms.int.gz b/Tests/ReferenceData/Std/CylindersAndPrisms.int.gz new file mode 100644 index 0000000000000000000000000000000000000000..a264e1cb39f22cc71bc7737ec7d6105ab03031c2 Binary files /dev/null and b/Tests/ReferenceData/Std/CylindersAndPrisms.int.gz differ diff --git a/Tests/ReferenceData/Core/CylindersInSSCA.int.gz b/Tests/ReferenceData/Std/CylindersInSSCA.int.gz similarity index 100% rename from Tests/ReferenceData/Core/CylindersInSSCA.int.gz rename to Tests/ReferenceData/Std/CylindersInSSCA.int.gz diff --git a/Tests/ReferenceData/Std/CylindersWithSizeDistribution.int.gz b/Tests/ReferenceData/Std/CylindersWithSizeDistribution.int.gz new file mode 100644 index 0000000000000000000000000000000000000000..37b1a6008f49b46387af352568188347472f88ad Binary files /dev/null and b/Tests/ReferenceData/Std/CylindersWithSizeDistribution.int.gz differ diff --git a/Tests/ReferenceData/Core/DepthProbeTest.int.gz b/Tests/ReferenceData/Std/DepthProbeTest.int.gz similarity index 100% rename from Tests/ReferenceData/Core/DepthProbeTest.int.gz rename to Tests/ReferenceData/Std/DepthProbeTest.int.gz diff --git a/Tests/ReferenceData/Std/DetectorResolution.int.gz b/Tests/ReferenceData/Std/DetectorResolution.int.gz new file mode 100644 index 0000000000000000000000000000000000000000..0c44ddd3259afd2a7564ef1736a563279b10e383 Binary files /dev/null and b/Tests/ReferenceData/Std/DetectorResolution.int.gz differ diff --git a/Tests/ReferenceData/Core/FiniteSquareLattice.int.gz b/Tests/ReferenceData/Std/FiniteSquareLattice.int.gz similarity index 100% rename from Tests/ReferenceData/Core/FiniteSquareLattice.int.gz rename to Tests/ReferenceData/Std/FiniteSquareLattice.int.gz diff --git a/Tests/ReferenceData/Core/FormFactors_TruncatedSphere.int.gz b/Tests/ReferenceData/Std/FormFactors.int.gz similarity index 100% rename from Tests/ReferenceData/Core/FormFactors_TruncatedSphere.int.gz rename to Tests/ReferenceData/Std/FormFactors.int.gz diff --git a/Tests/ReferenceData/Core/FormFactorsWithAbsorption_TruncatedSpheroid.int.gz b/Tests/ReferenceData/Std/FormFactorsWithAbsorption.int.gz similarity index 100% rename from Tests/ReferenceData/Core/FormFactorsWithAbsorption_TruncatedSpheroid.int.gz rename to Tests/ReferenceData/Std/FormFactorsWithAbsorption.int.gz diff --git a/Tests/ReferenceData/Std/FormFactorsWithAbsorption_AnisoPyramid.int.gz b/Tests/ReferenceData/Std/FormFactorsWithAbsorption_AnisoPyramid.int.gz new file mode 100644 index 0000000000000000000000000000000000000000..514da72e39ba9d6022459380610e47d4bc6431de Binary files /dev/null and b/Tests/ReferenceData/Std/FormFactorsWithAbsorption_AnisoPyramid.int.gz differ diff --git a/Tests/ReferenceData/Core/FormFactorsWithAbsorption_Box.int.gz b/Tests/ReferenceData/Std/FormFactorsWithAbsorption_Box.int.gz similarity index 94% rename from Tests/ReferenceData/Core/FormFactorsWithAbsorption_Box.int.gz rename to Tests/ReferenceData/Std/FormFactorsWithAbsorption_Box.int.gz index 8c7c9e02d127c04f277521343fc661f48a9e6a4b..b6420ad8275a2faf63c929bfea05c806eb427881 100644 Binary files a/Tests/ReferenceData/Core/FormFactorsWithAbsorption_Box.int.gz and b/Tests/ReferenceData/Std/FormFactorsWithAbsorption_Box.int.gz differ diff --git a/Tests/ReferenceData/Std/FormFactorsWithAbsorption_Cone.int.gz b/Tests/ReferenceData/Std/FormFactorsWithAbsorption_Cone.int.gz new file mode 100644 index 0000000000000000000000000000000000000000..fed302a741eea4135b780adfd04d7dfadd04f93c Binary files /dev/null and b/Tests/ReferenceData/Std/FormFactorsWithAbsorption_Cone.int.gz differ diff --git a/Tests/ReferenceData/Core/FormFactorsWithAbsorption_Cone6.int.gz b/Tests/ReferenceData/Std/FormFactorsWithAbsorption_Cone6.int.gz similarity index 81% rename from Tests/ReferenceData/Core/FormFactorsWithAbsorption_Cone6.int.gz rename to Tests/ReferenceData/Std/FormFactorsWithAbsorption_Cone6.int.gz index 5b810de3cca3566ca72c04673a150a6e29ab2ce6..b259e23a9dc8c4c0974526620752358c80471f9c 100644 Binary files a/Tests/ReferenceData/Core/FormFactorsWithAbsorption_Cone6.int.gz and b/Tests/ReferenceData/Std/FormFactorsWithAbsorption_Cone6.int.gz differ diff --git a/Tests/ReferenceData/Core/FormFactorsWithAbsorption_Cuboctahedron.int.gz b/Tests/ReferenceData/Std/FormFactorsWithAbsorption_Cuboctahedron.int.gz similarity index 61% rename from Tests/ReferenceData/Core/FormFactorsWithAbsorption_Cuboctahedron.int.gz rename to Tests/ReferenceData/Std/FormFactorsWithAbsorption_Cuboctahedron.int.gz index e8a93a7e23ba49e5d11ae649df67c691578d4e7a..09b51689d994089e39a7423b809d8a9b7551589c 100644 Binary files a/Tests/ReferenceData/Core/FormFactorsWithAbsorption_Cuboctahedron.int.gz and b/Tests/ReferenceData/Std/FormFactorsWithAbsorption_Cuboctahedron.int.gz differ diff --git a/Tests/ReferenceData/Std/FormFactorsWithAbsorption_Cylinder.int.gz b/Tests/ReferenceData/Std/FormFactorsWithAbsorption_Cylinder.int.gz new file mode 100644 index 0000000000000000000000000000000000000000..806225bfe29e14e4eac9a3a0c16f308a88faa38b Binary files /dev/null and b/Tests/ReferenceData/Std/FormFactorsWithAbsorption_Cylinder.int.gz differ diff --git a/Tests/ReferenceData/Std/FormFactorsWithAbsorption_Dodecahedron.int.gz b/Tests/ReferenceData/Std/FormFactorsWithAbsorption_Dodecahedron.int.gz new file mode 100644 index 0000000000000000000000000000000000000000..e5c64d439eb9b7fdde5eb4748ddee3203cb03ec7 Binary files /dev/null and b/Tests/ReferenceData/Std/FormFactorsWithAbsorption_Dodecahedron.int.gz differ diff --git a/Tests/ReferenceData/Core/FormFactorsWithAbsorption_Dot.int.gz b/Tests/ReferenceData/Std/FormFactorsWithAbsorption_Dot.int.gz similarity index 100% rename from Tests/ReferenceData/Core/FormFactorsWithAbsorption_Dot.int.gz rename to Tests/ReferenceData/Std/FormFactorsWithAbsorption_Dot.int.gz diff --git a/Tests/ReferenceData/Std/FormFactorsWithAbsorption_EllipsoidalCylinder.int.gz b/Tests/ReferenceData/Std/FormFactorsWithAbsorption_EllipsoidalCylinder.int.gz new file mode 100644 index 0000000000000000000000000000000000000000..d1374d67bed01972429ad3a34103432b0fd080e1 Binary files /dev/null and b/Tests/ReferenceData/Std/FormFactorsWithAbsorption_EllipsoidalCylinder.int.gz differ diff --git a/Tests/ReferenceData/Std/FormFactorsWithAbsorption_FullSphere.int.gz b/Tests/ReferenceData/Std/FormFactorsWithAbsorption_FullSphere.int.gz new file mode 100644 index 0000000000000000000000000000000000000000..ea159d0a00e7df9a53feac5c525f251e34f67122 Binary files /dev/null and b/Tests/ReferenceData/Std/FormFactorsWithAbsorption_FullSphere.int.gz differ diff --git a/Tests/ReferenceData/Std/FormFactorsWithAbsorption_FullSpheroid.int.gz b/Tests/ReferenceData/Std/FormFactorsWithAbsorption_FullSpheroid.int.gz new file mode 100644 index 0000000000000000000000000000000000000000..6aa4d66abd3b0bf89519468623f4e00be0a9aee3 Binary files /dev/null and b/Tests/ReferenceData/Std/FormFactorsWithAbsorption_FullSpheroid.int.gz differ diff --git a/Tests/ReferenceData/Core/FormFactorsWithAbsorption_HemiEllipsoid.int.gz b/Tests/ReferenceData/Std/FormFactorsWithAbsorption_HemiEllipsoid.int.gz similarity index 52% rename from Tests/ReferenceData/Core/FormFactorsWithAbsorption_HemiEllipsoid.int.gz rename to Tests/ReferenceData/Std/FormFactorsWithAbsorption_HemiEllipsoid.int.gz index 5b27d8cb696fe4568db83af3c0215ba9a59ddfde..6fb5abd5397b9fadbf41b464f50b1a1b12efe5fa 100644 Binary files a/Tests/ReferenceData/Core/FormFactorsWithAbsorption_HemiEllipsoid.int.gz and b/Tests/ReferenceData/Std/FormFactorsWithAbsorption_HemiEllipsoid.int.gz differ diff --git a/Tests/ReferenceData/Core/FormFactorsWithAbsorption_Icosahedron.int.gz b/Tests/ReferenceData/Std/FormFactorsWithAbsorption_Icosahedron.int.gz similarity index 100% rename from Tests/ReferenceData/Core/FormFactorsWithAbsorption_Icosahedron.int.gz rename to Tests/ReferenceData/Std/FormFactorsWithAbsorption_Icosahedron.int.gz diff --git a/Tests/ReferenceData/Std/FormFactorsWithAbsorption_Prism3.int.gz b/Tests/ReferenceData/Std/FormFactorsWithAbsorption_Prism3.int.gz new file mode 100644 index 0000000000000000000000000000000000000000..7d1bf94b44ab0ee91bccdd09a9460aaf54985178 Binary files /dev/null and b/Tests/ReferenceData/Std/FormFactorsWithAbsorption_Prism3.int.gz differ diff --git a/Tests/ReferenceData/Core/FormFactorsWithAbsorption_Prism6.int.gz b/Tests/ReferenceData/Std/FormFactorsWithAbsorption_Prism6.int.gz similarity index 100% rename from Tests/ReferenceData/Core/FormFactorsWithAbsorption_Prism6.int.gz rename to Tests/ReferenceData/Std/FormFactorsWithAbsorption_Prism6.int.gz diff --git a/Tests/ReferenceData/Core/FormFactorsWithAbsorption_Pyramid.int.gz b/Tests/ReferenceData/Std/FormFactorsWithAbsorption_Pyramid.int.gz similarity index 52% rename from Tests/ReferenceData/Core/FormFactorsWithAbsorption_Pyramid.int.gz rename to Tests/ReferenceData/Std/FormFactorsWithAbsorption_Pyramid.int.gz index 85da2c3fc1739191690424045fa7de1751be2779..6f2d5c025860eb593b12610ff0f171eafdc69c79 100644 Binary files a/Tests/ReferenceData/Core/FormFactorsWithAbsorption_Pyramid.int.gz and b/Tests/ReferenceData/Std/FormFactorsWithAbsorption_Pyramid.int.gz differ diff --git a/Tests/ReferenceData/Std/FormFactorsWithAbsorption_Ripple1Box.int.gz b/Tests/ReferenceData/Std/FormFactorsWithAbsorption_Ripple1Box.int.gz new file mode 100644 index 0000000000000000000000000000000000000000..f2a2fab19ea5c4d487188b02278f85a6a3905be0 Binary files /dev/null and b/Tests/ReferenceData/Std/FormFactorsWithAbsorption_Ripple1Box.int.gz differ diff --git a/Tests/ReferenceData/Std/FormFactorsWithAbsorption_Ripple2Box.int.gz b/Tests/ReferenceData/Std/FormFactorsWithAbsorption_Ripple2Box.int.gz new file mode 100644 index 0000000000000000000000000000000000000000..e0fed012b9faeac1153e0778975a9a90e15d0550 Binary files /dev/null and b/Tests/ReferenceData/Std/FormFactorsWithAbsorption_Ripple2Box.int.gz differ diff --git a/Tests/ReferenceData/Core/FormFactorsWithAbsorption_Tetrahedron.int.gz b/Tests/ReferenceData/Std/FormFactorsWithAbsorption_Tetrahedron.int.gz similarity index 57% rename from Tests/ReferenceData/Core/FormFactorsWithAbsorption_Tetrahedron.int.gz rename to Tests/ReferenceData/Std/FormFactorsWithAbsorption_Tetrahedron.int.gz index c964d863b2694017e1bd7b00d8902b74d3eeee0e..10ab87751255ee26a26dcfa333d0a87f5abd8411 100644 Binary files a/Tests/ReferenceData/Core/FormFactorsWithAbsorption_Tetrahedron.int.gz and b/Tests/ReferenceData/Std/FormFactorsWithAbsorption_Tetrahedron.int.gz differ diff --git a/Tests/ReferenceData/Core/FormFactorsWithAbsorption_CantellatedCube.int.gz b/Tests/ReferenceData/Std/FormFactorsWithAbsorption_TruncatedCube.int.gz similarity index 100% rename from Tests/ReferenceData/Core/FormFactorsWithAbsorption_CantellatedCube.int.gz rename to Tests/ReferenceData/Std/FormFactorsWithAbsorption_TruncatedCube.int.gz diff --git a/Tests/ReferenceData/Core/FormFactorsWithAbsorption_TruncatedSphere.int.gz b/Tests/ReferenceData/Std/FormFactorsWithAbsorption_TruncatedSphere.int.gz similarity index 100% rename from Tests/ReferenceData/Core/FormFactorsWithAbsorption_TruncatedSphere.int.gz rename to Tests/ReferenceData/Std/FormFactorsWithAbsorption_TruncatedSphere.int.gz diff --git a/Tests/ReferenceData/Std/FormFactorsWithAbsorption_TruncatedSpheroid.int.gz b/Tests/ReferenceData/Std/FormFactorsWithAbsorption_TruncatedSpheroid.int.gz new file mode 100644 index 0000000000000000000000000000000000000000..d57c270eeda299db779734c1c1fbf0c883d2b756 Binary files /dev/null and b/Tests/ReferenceData/Std/FormFactorsWithAbsorption_TruncatedSpheroid.int.gz differ diff --git a/Tests/ReferenceData/Core/FormFactors_AnisoPyramid.int.gz b/Tests/ReferenceData/Std/FormFactors_AnisoPyramid.int.gz similarity index 100% rename from Tests/ReferenceData/Core/FormFactors_AnisoPyramid.int.gz rename to Tests/ReferenceData/Std/FormFactors_AnisoPyramid.int.gz diff --git a/Tests/ReferenceData/Core/FormFactors_Box.int.gz b/Tests/ReferenceData/Std/FormFactors_Box.int.gz similarity index 100% rename from Tests/ReferenceData/Core/FormFactors_Box.int.gz rename to Tests/ReferenceData/Std/FormFactors_Box.int.gz diff --git a/Tests/ReferenceData/Core/FormFactors_Cone.int.gz b/Tests/ReferenceData/Std/FormFactors_Cone.int.gz similarity index 100% rename from Tests/ReferenceData/Core/FormFactors_Cone.int.gz rename to Tests/ReferenceData/Std/FormFactors_Cone.int.gz diff --git a/Tests/ReferenceData/Core/FormFactors_Cone6.int.gz b/Tests/ReferenceData/Std/FormFactors_Cone6.int.gz similarity index 100% rename from Tests/ReferenceData/Core/FormFactors_Cone6.int.gz rename to Tests/ReferenceData/Std/FormFactors_Cone6.int.gz diff --git a/Tests/ReferenceData/Core/FormFactors_Cuboctahedron.int.gz b/Tests/ReferenceData/Std/FormFactors_Cuboctahedron.int.gz similarity index 100% rename from Tests/ReferenceData/Core/FormFactors_Cuboctahedron.int.gz rename to Tests/ReferenceData/Std/FormFactors_Cuboctahedron.int.gz diff --git a/Tests/ReferenceData/Core/FormFactors_Cylinder.int.gz b/Tests/ReferenceData/Std/FormFactors_Cylinder.int.gz similarity index 100% rename from Tests/ReferenceData/Core/FormFactors_Cylinder.int.gz rename to Tests/ReferenceData/Std/FormFactors_Cylinder.int.gz diff --git a/Tests/ReferenceData/Core/FormFactors_Dodecahedron.int.gz b/Tests/ReferenceData/Std/FormFactors_Dodecahedron.int.gz similarity index 100% rename from Tests/ReferenceData/Core/FormFactors_Dodecahedron.int.gz rename to Tests/ReferenceData/Std/FormFactors_Dodecahedron.int.gz diff --git a/Tests/ReferenceData/Core/FormFactors_Dot.int.gz b/Tests/ReferenceData/Std/FormFactors_Dot.int.gz similarity index 100% rename from Tests/ReferenceData/Core/FormFactors_Dot.int.gz rename to Tests/ReferenceData/Std/FormFactors_Dot.int.gz diff --git a/Tests/ReferenceData/Core/FormFactors_EllipsoidalCylinder.int.gz b/Tests/ReferenceData/Std/FormFactors_EllipsoidalCylinder.int.gz similarity index 100% rename from Tests/ReferenceData/Core/FormFactors_EllipsoidalCylinder.int.gz rename to Tests/ReferenceData/Std/FormFactors_EllipsoidalCylinder.int.gz diff --git a/Tests/ReferenceData/Core/FormFactors_FullSphere.int.gz b/Tests/ReferenceData/Std/FormFactors_FullSphere.int.gz similarity index 100% rename from Tests/ReferenceData/Core/FormFactors_FullSphere.int.gz rename to Tests/ReferenceData/Std/FormFactors_FullSphere.int.gz diff --git a/Tests/ReferenceData/Std/FormFactors_FullSpheroid.int.gz b/Tests/ReferenceData/Std/FormFactors_FullSpheroid.int.gz new file mode 100644 index 0000000000000000000000000000000000000000..6d6b3473909fca852c1495d17a110cb3c3bd8c38 Binary files /dev/null and b/Tests/ReferenceData/Std/FormFactors_FullSpheroid.int.gz differ diff --git a/Tests/ReferenceData/Core/FormFactors_HemiEllipsoid.int.gz b/Tests/ReferenceData/Std/FormFactors_HemiEllipsoid.int.gz similarity index 100% rename from Tests/ReferenceData/Core/FormFactors_HemiEllipsoid.int.gz rename to Tests/ReferenceData/Std/FormFactors_HemiEllipsoid.int.gz diff --git a/Tests/ReferenceData/Core/FormFactors_Icosahedron.int.gz b/Tests/ReferenceData/Std/FormFactors_Icosahedron.int.gz similarity index 100% rename from Tests/ReferenceData/Core/FormFactors_Icosahedron.int.gz rename to Tests/ReferenceData/Std/FormFactors_Icosahedron.int.gz diff --git a/Tests/ReferenceData/Core/FormFactors_Prism3.int.gz b/Tests/ReferenceData/Std/FormFactors_Prism3.int.gz similarity index 100% rename from Tests/ReferenceData/Core/FormFactors_Prism3.int.gz rename to Tests/ReferenceData/Std/FormFactors_Prism3.int.gz diff --git a/Tests/ReferenceData/Core/FormFactors_Prism6.int.gz b/Tests/ReferenceData/Std/FormFactors_Prism6.int.gz similarity index 100% rename from Tests/ReferenceData/Core/FormFactors_Prism6.int.gz rename to Tests/ReferenceData/Std/FormFactors_Prism6.int.gz diff --git a/Tests/ReferenceData/Core/FormFactors_Pyramid.int.gz b/Tests/ReferenceData/Std/FormFactors_Pyramid.int.gz similarity index 100% rename from Tests/ReferenceData/Core/FormFactors_Pyramid.int.gz rename to Tests/ReferenceData/Std/FormFactors_Pyramid.int.gz diff --git a/Tests/ReferenceData/Std/FormFactors_Ripple1Box.int.gz b/Tests/ReferenceData/Std/FormFactors_Ripple1Box.int.gz new file mode 100644 index 0000000000000000000000000000000000000000..f780abe90d7e85fd886f9df9af59a55a00b07e19 Binary files /dev/null and b/Tests/ReferenceData/Std/FormFactors_Ripple1Box.int.gz differ diff --git a/Tests/ReferenceData/Std/FormFactors_Ripple2Box.int.gz b/Tests/ReferenceData/Std/FormFactors_Ripple2Box.int.gz new file mode 100644 index 0000000000000000000000000000000000000000..94b01f947dfa67b21cb798da3119e822248e80d3 Binary files /dev/null and b/Tests/ReferenceData/Std/FormFactors_Ripple2Box.int.gz differ diff --git a/Tests/ReferenceData/Core/FormFactors_Tetrahedron.int.gz b/Tests/ReferenceData/Std/FormFactors_Tetrahedron.int.gz similarity index 100% rename from Tests/ReferenceData/Core/FormFactors_Tetrahedron.int.gz rename to Tests/ReferenceData/Std/FormFactors_Tetrahedron.int.gz diff --git a/Tests/ReferenceData/Core/FormFactors_TruncatedCube.int.gz b/Tests/ReferenceData/Std/FormFactors_TruncatedCube.int.gz similarity index 100% rename from Tests/ReferenceData/Core/FormFactors_TruncatedCube.int.gz rename to Tests/ReferenceData/Std/FormFactors_TruncatedCube.int.gz diff --git a/Tests/ReferenceData/Core/FormFactors_TruncatedSpheroid.int.gz b/Tests/ReferenceData/Std/FormFactors_TruncatedSphere.int.gz similarity index 100% rename from Tests/ReferenceData/Core/FormFactors_TruncatedSpheroid.int.gz rename to Tests/ReferenceData/Std/FormFactors_TruncatedSphere.int.gz diff --git a/Tests/ReferenceData/Std/FormFactors_TruncatedSpheroid.int.gz b/Tests/ReferenceData/Std/FormFactors_TruncatedSpheroid.int.gz new file mode 100644 index 0000000000000000000000000000000000000000..2b2f8405a2cd69512b78646d7cc585ae6a1d7f40 Binary files /dev/null and b/Tests/ReferenceData/Std/FormFactors_TruncatedSpheroid.int.gz differ diff --git a/Tests/ReferenceData/Std/GISASAbsorptiveSLDLayers.int.gz b/Tests/ReferenceData/Std/GISASAbsorptiveSLDLayers.int.gz new file mode 100644 index 0000000000000000000000000000000000000000..bbb112ef6219d335a87b8871ad7e329009146621 Binary files /dev/null and b/Tests/ReferenceData/Std/GISASAbsorptiveSLDLayers.int.gz differ diff --git a/Tests/ReferenceData/Std/GaussianBeamFootprint.int.gz b/Tests/ReferenceData/Std/GaussianBeamFootprint.int.gz new file mode 100644 index 0000000000000000000000000000000000000000..8616b6d8e516a89813d0acd05a69bc33249b8cec Binary files /dev/null and b/Tests/ReferenceData/Std/GaussianBeamFootprint.int.gz differ diff --git a/Tests/ReferenceData/Std/HardDisk.int.gz b/Tests/ReferenceData/Std/HardDisk.int.gz new file mode 100644 index 0000000000000000000000000000000000000000..b98c878511c23a33e1c8d62653ec5f7b04c37110 Binary files /dev/null and b/Tests/ReferenceData/Std/HardDisk.int.gz differ diff --git a/Tests/ReferenceData/Std/HexParaCrystal.int.gz b/Tests/ReferenceData/Std/HexParaCrystal.int.gz new file mode 100644 index 0000000000000000000000000000000000000000..ffd3dfdcc48694595c7aa34c0376636b3d212196 Binary files /dev/null and b/Tests/ReferenceData/Std/HexParaCrystal.int.gz differ diff --git a/Tests/ReferenceData/Std/HomogeneousTiNiSample.int.gz b/Tests/ReferenceData/Std/HomogeneousTiNiSample.int.gz new file mode 100644 index 0000000000000000000000000000000000000000..ce8d20041f4b567e5ec02aa546662a6778285af1 Binary files /dev/null and b/Tests/ReferenceData/Std/HomogeneousTiNiSample.int.gz differ diff --git a/Tests/ReferenceData/Std/HomogeneousTiNiSampleWithAbsorption.int.gz b/Tests/ReferenceData/Std/HomogeneousTiNiSampleWithAbsorption.int.gz new file mode 100644 index 0000000000000000000000000000000000000000..b2f16487df55dc272d22685ea73d23edec67c7ec Binary files /dev/null and b/Tests/ReferenceData/Std/HomogeneousTiNiSampleWithAbsorption.int.gz differ diff --git a/Tests/ReferenceData/Std/InstrumentDefinitionComparison_0.int.gz b/Tests/ReferenceData/Std/InstrumentDefinitionComparison_0.int.gz new file mode 100644 index 0000000000000000000000000000000000000000..b2f16487df55dc272d22685ea73d23edec67c7ec Binary files /dev/null and b/Tests/ReferenceData/Std/InstrumentDefinitionComparison_0.int.gz differ diff --git a/Tests/ReferenceData/Std/InstrumentDefinitionComparison_Q.int.gz b/Tests/ReferenceData/Std/InstrumentDefinitionComparison_Q.int.gz new file mode 100644 index 0000000000000000000000000000000000000000..bfc3be38bd780895131b22400fcf0d96f31df1e9 Binary files /dev/null and b/Tests/ReferenceData/Std/InstrumentDefinitionComparison_Q.int.gz differ diff --git a/Tests/ReferenceData/Std/LargeCylindersMonteCarlo.int.gz b/Tests/ReferenceData/Std/LargeCylindersMonteCarlo.int.gz new file mode 100644 index 0000000000000000000000000000000000000000..ceb8a8f5a7064f45788697d76228a44ff3fae877 Binary files /dev/null and b/Tests/ReferenceData/Std/LargeCylindersMonteCarlo.int.gz differ diff --git a/Tests/ReferenceData/Core/Lattice1D.int.gz b/Tests/ReferenceData/Std/Lattice1D.int.gz similarity index 96% rename from Tests/ReferenceData/Core/Lattice1D.int.gz rename to Tests/ReferenceData/Std/Lattice1D.int.gz index 1468790f18fa46c9201eab14aa3216ffa5fcdc24..1c0d968673e220dd361ce735f6e1c962809ef51f 100644 Binary files a/Tests/ReferenceData/Core/Lattice1D.int.gz and b/Tests/ReferenceData/Std/Lattice1D.int.gz differ diff --git a/Tests/ReferenceData/Std/LinkedBoxDistribution.int.gz b/Tests/ReferenceData/Std/LinkedBoxDistribution.int.gz new file mode 100644 index 0000000000000000000000000000000000000000..869bec40a1ae35762a974f03ac3926bbd0c19769 Binary files /dev/null and b/Tests/ReferenceData/Std/LinkedBoxDistribution.int.gz differ diff --git a/Tests/ReferenceData/Core/MagneticCylindersMM.int.gz b/Tests/ReferenceData/Std/MagneticCylindersMM.int.gz similarity index 100% rename from Tests/ReferenceData/Core/MagneticCylindersMM.int.gz rename to Tests/ReferenceData/Std/MagneticCylindersMM.int.gz diff --git a/Tests/ReferenceData/Core/MagneticCylindersMP.int.gz b/Tests/ReferenceData/Std/MagneticCylindersMP.int.gz similarity index 100% rename from Tests/ReferenceData/Core/MagneticCylindersMP.int.gz rename to Tests/ReferenceData/Std/MagneticCylindersMP.int.gz diff --git a/Tests/ReferenceData/Core/MagneticCylindersPM.int.gz b/Tests/ReferenceData/Std/MagneticCylindersPM.int.gz similarity index 100% rename from Tests/ReferenceData/Core/MagneticCylindersPM.int.gz rename to Tests/ReferenceData/Std/MagneticCylindersPM.int.gz diff --git a/Tests/ReferenceData/Core/MagneticCylindersPP.int.gz b/Tests/ReferenceData/Std/MagneticCylindersPP.int.gz similarity index 100% rename from Tests/ReferenceData/Core/MagneticCylindersPP.int.gz rename to Tests/ReferenceData/Std/MagneticCylindersPP.int.gz diff --git a/Tests/ReferenceData/Std/MagneticParticleZeroField.int.gz b/Tests/ReferenceData/Std/MagneticParticleZeroField.int.gz new file mode 100644 index 0000000000000000000000000000000000000000..89e01550b17948c5cc5af793de3ab017324ab14f Binary files /dev/null and b/Tests/ReferenceData/Std/MagneticParticleZeroField.int.gz differ diff --git a/Tests/ReferenceData/Core/MagneticRotation.int.gz b/Tests/ReferenceData/Std/MagneticRotation.int.gz similarity index 100% rename from Tests/ReferenceData/Core/MagneticRotation.int.gz rename to Tests/ReferenceData/Std/MagneticRotation.int.gz diff --git a/Tests/ReferenceData/Core/MagneticSpheres.int.gz b/Tests/ReferenceData/Std/MagneticSpheres.int.gz similarity index 100% rename from Tests/ReferenceData/Core/MagneticSpheres.int.gz rename to Tests/ReferenceData/Std/MagneticSpheres.int.gz diff --git a/Tests/ReferenceData/Core/MagneticSpheresInMagLayerMP.int.gz b/Tests/ReferenceData/Std/MagneticSpheresInMagLayerMP.int.gz similarity index 100% rename from Tests/ReferenceData/Core/MagneticSpheresInMagLayerMP.int.gz rename to Tests/ReferenceData/Std/MagneticSpheresInMagLayerMP.int.gz diff --git a/Tests/ReferenceData/Std/MagneticSpheresInMagLayerPP.int.gz b/Tests/ReferenceData/Std/MagneticSpheresInMagLayerPP.int.gz new file mode 100644 index 0000000000000000000000000000000000000000..8e10822ce06d25fbe39283c726efe4a8820b2f1d Binary files /dev/null and b/Tests/ReferenceData/Std/MagneticSpheresInMagLayerPP.int.gz differ diff --git a/Tests/ReferenceData/Std/MagneticSubstrateZeroField.int.gz b/Tests/ReferenceData/Std/MagneticSubstrateZeroField.int.gz new file mode 100644 index 0000000000000000000000000000000000000000..d9e075a8df29a928d1f4d9f5db893f6cacd60a87 Binary files /dev/null and b/Tests/ReferenceData/Std/MagneticSubstrateZeroField.int.gz differ diff --git a/Tests/ReferenceData/Std/MesoCrystal.int.gz b/Tests/ReferenceData/Std/MesoCrystal.int.gz new file mode 100644 index 0000000000000000000000000000000000000000..a6e555179e22022bea81138a8448ea99f291ff96 Binary files /dev/null and b/Tests/ReferenceData/Std/MesoCrystal.int.gz differ diff --git a/Tests/ReferenceData/Std/MultiLayerWithRoughness.int.gz b/Tests/ReferenceData/Std/MultiLayerWithRoughness.int.gz new file mode 100644 index 0000000000000000000000000000000000000000..ba7fd57bd48a72b671a783e4474d97fc54994964 Binary files /dev/null and b/Tests/ReferenceData/Std/MultiLayerWithRoughness.int.gz differ diff --git a/Tests/ReferenceData/Std/MultipleLayout.int.gz b/Tests/ReferenceData/Std/MultipleLayout.int.gz new file mode 100644 index 0000000000000000000000000000000000000000..3b8a10862dd1c683eacd7f367bdbc001ec4e441d Binary files /dev/null and b/Tests/ReferenceData/Std/MultipleLayout.int.gz differ diff --git a/Tests/ReferenceData/Std/NCRoughnessInSpecular.int.gz b/Tests/ReferenceData/Std/NCRoughnessInSpecular.int.gz new file mode 100644 index 0000000000000000000000000000000000000000..47c4f99175cf3e190c89e02cf9976b9731b38fcf Binary files /dev/null and b/Tests/ReferenceData/Std/NCRoughnessInSpecular.int.gz differ diff --git a/Tests/ReferenceData/Std/OffSpecularResonator.int.gz b/Tests/ReferenceData/Std/OffSpecularResonator.int.gz new file mode 100644 index 0000000000000000000000000000000000000000..c22a674bb3886eac54feb778bd9fa0f867779b5d Binary files /dev/null and b/Tests/ReferenceData/Std/OffSpecularResonator.int.gz differ diff --git a/Tests/ReferenceData/Core/ParticleComposition.int.gz b/Tests/ReferenceData/Std/ParticleComposition.int.gz similarity index 70% rename from Tests/ReferenceData/Core/ParticleComposition.int.gz rename to Tests/ReferenceData/Std/ParticleComposition.int.gz index a54d683a246cd86ee769ca68f697cff6a35ab452..8871c435e960b54c74a8d7696f875c83eeb86206 100644 Binary files a/Tests/ReferenceData/Core/ParticleComposition.int.gz and b/Tests/ReferenceData/Std/ParticleComposition.int.gz differ diff --git a/Tests/ReferenceData/Std/PolarizedQAngleReflectivityMM_0.int.gz b/Tests/ReferenceData/Std/PolarizedQAngleReflectivityMM_0.int.gz new file mode 100644 index 0000000000000000000000000000000000000000..43ff450187b304e24a225b63179dfd8d61706303 Binary files /dev/null and b/Tests/ReferenceData/Std/PolarizedQAngleReflectivityMM_0.int.gz differ diff --git a/Tests/ReferenceData/Std/PolarizedQAngleReflectivityMM_Q.int.gz b/Tests/ReferenceData/Std/PolarizedQAngleReflectivityMM_Q.int.gz new file mode 100644 index 0000000000000000000000000000000000000000..4cf7100ca7b63ca94ec1e0fd1da1c20646d799d0 Binary files /dev/null and b/Tests/ReferenceData/Std/PolarizedQAngleReflectivityMM_Q.int.gz differ diff --git a/Tests/ReferenceData/Std/PolarizedQAngleReflectivityPP_0.int.gz b/Tests/ReferenceData/Std/PolarizedQAngleReflectivityPP_0.int.gz new file mode 100644 index 0000000000000000000000000000000000000000..436b743918f042317560a4fbba81acca0dbe6a53 Binary files /dev/null and b/Tests/ReferenceData/Std/PolarizedQAngleReflectivityPP_0.int.gz differ diff --git a/Tests/ReferenceData/Std/PolarizedQAngleReflectivityPP_Q.int.gz b/Tests/ReferenceData/Std/PolarizedQAngleReflectivityPP_Q.int.gz new file mode 100644 index 0000000000000000000000000000000000000000..f92b0667843d3274a58a562134149eca9dedee95 Binary files /dev/null and b/Tests/ReferenceData/Std/PolarizedQAngleReflectivityPP_Q.int.gz differ diff --git a/Tests/ReferenceData/Std/RadialParaCrystal.int.gz b/Tests/ReferenceData/Std/RadialParaCrystal.int.gz new file mode 100644 index 0000000000000000000000000000000000000000..93b19ac356723ec46fd6d61aa4d90d8c1474bcca Binary files /dev/null and b/Tests/ReferenceData/Std/RadialParaCrystal.int.gz differ diff --git a/Tests/ReferenceData/Core/RectDetWithRoi.int.gz b/Tests/ReferenceData/Std/RectDetWithRoi.int.gz similarity index 100% rename from Tests/ReferenceData/Core/RectDetWithRoi.int.gz rename to Tests/ReferenceData/Std/RectDetWithRoi.int.gz diff --git a/Tests/ReferenceData/Core/RectDetectorGeneric.int.gz b/Tests/ReferenceData/Std/RectDetectorGeneric.int.gz similarity index 100% rename from Tests/ReferenceData/Core/RectDetectorGeneric.int.gz rename to Tests/ReferenceData/Std/RectDetectorGeneric.int.gz diff --git a/Tests/ReferenceData/Core/RectDetectorPerpToDirectBeam.int.gz b/Tests/ReferenceData/Std/RectDetectorPerpToDirectBeam.int.gz similarity index 100% rename from Tests/ReferenceData/Core/RectDetectorPerpToDirectBeam.int.gz rename to Tests/ReferenceData/Std/RectDetectorPerpToDirectBeam.int.gz diff --git a/Tests/ReferenceData/Core/RectDetectorPerpToReflectedBeam.int.gz b/Tests/ReferenceData/Std/RectDetectorPerpToReflectedBeam.int.gz similarity index 100% rename from Tests/ReferenceData/Core/RectDetectorPerpToReflectedBeam.int.gz rename to Tests/ReferenceData/Std/RectDetectorPerpToReflectedBeam.int.gz diff --git a/Tests/ReferenceData/Core/RectDetectorPerpToReflectedBeamDpos.int.gz b/Tests/ReferenceData/Std/RectDetectorPerpToReflectedBeamDpos.int.gz similarity index 100% rename from Tests/ReferenceData/Core/RectDetectorPerpToReflectedBeamDpos.int.gz rename to Tests/ReferenceData/Std/RectDetectorPerpToReflectedBeamDpos.int.gz diff --git a/Tests/ReferenceData/Core/RectDetectorPerpToSample.int.gz b/Tests/ReferenceData/Std/RectDetectorPerpToSample.int.gz similarity index 52% rename from Tests/ReferenceData/Core/RectDetectorPerpToSample.int.gz rename to Tests/ReferenceData/Std/RectDetectorPerpToSample.int.gz index 4ec403e1cb4f843056a2a076b358dabe28fbb5cd..a59fa9f16858321b43318543b7380bb07d756abe 100644 Binary files a/Tests/ReferenceData/Core/RectDetectorPerpToSample.int.gz and b/Tests/ReferenceData/Std/RectDetectorPerpToSample.int.gz differ diff --git a/Tests/ReferenceData/Std/RectParaCrystal.int.gz b/Tests/ReferenceData/Std/RectParaCrystal.int.gz new file mode 100644 index 0000000000000000000000000000000000000000..6dcf5efd311cc09bf5f44786f07764738cd866fd Binary files /dev/null and b/Tests/ReferenceData/Std/RectParaCrystal.int.gz differ diff --git a/Tests/ReferenceData/Core/RelativeResolutionTOF.int.gz b/Tests/ReferenceData/Std/RelativeResolutionTOF.int.gz similarity index 100% rename from Tests/ReferenceData/Core/RelativeResolutionTOF.int.gz rename to Tests/ReferenceData/Std/RelativeResolutionTOF.int.gz diff --git a/Tests/ReferenceData/Core/RotatedCylinder.int.gz b/Tests/ReferenceData/Std/RotatedCylinder.int.gz similarity index 88% rename from Tests/ReferenceData/Core/RotatedCylinder.int.gz rename to Tests/ReferenceData/Std/RotatedCylinder.int.gz index d3b96d8bd006464c5c9e627cd6611728a99ecfd0..6204ce3bd7d89d25afa8252b1617c1dcf606483b 100644 Binary files a/Tests/ReferenceData/Core/RotatedCylinder.int.gz and b/Tests/ReferenceData/Std/RotatedCylinder.int.gz differ diff --git a/Tests/ReferenceData/Std/RotatedPyramids.int.gz b/Tests/ReferenceData/Std/RotatedPyramids.int.gz new file mode 100644 index 0000000000000000000000000000000000000000..3a816077454813a4a686c32ebebf22c4423569fc Binary files /dev/null and b/Tests/ReferenceData/Std/RotatedPyramids.int.gz differ diff --git a/Tests/ReferenceData/Core/RotatedPyramidsDistribution.int.gz b/Tests/ReferenceData/Std/RotatedPyramidsDistribution.int.gz similarity index 100% rename from Tests/ReferenceData/Core/RotatedPyramidsDistribution.int.gz rename to Tests/ReferenceData/Std/RotatedPyramidsDistribution.int.gz diff --git a/Tests/ReferenceData/Core/RotatedSquareLattice.int.gz b/Tests/ReferenceData/Std/RotatedSquareLattice.int.gz similarity index 86% rename from Tests/ReferenceData/Core/RotatedSquareLattice.int.gz rename to Tests/ReferenceData/Std/RotatedSquareLattice.int.gz index 1607d2988fce2d877b553bcbc2e4b3a64e9f4288..75d32b32ce0985cf280ee1f1535b5715fc16835d 100644 Binary files a/Tests/ReferenceData/Core/RotatedSquareLattice.int.gz and b/Tests/ReferenceData/Std/RotatedSquareLattice.int.gz differ diff --git a/Tests/ReferenceData/Std/RoughnessInSpecular.int.gz b/Tests/ReferenceData/Std/RoughnessInSpecular.int.gz new file mode 100644 index 0000000000000000000000000000000000000000..451399c85670b66dc4b198f1856cd54b446ce3ae Binary files /dev/null and b/Tests/ReferenceData/Std/RoughnessInSpecular.int.gz differ diff --git a/Tests/ReferenceData/Core/SimulationWithMasks.int.gz b/Tests/ReferenceData/Std/SimulationWithMasks.int.gz similarity index 100% rename from Tests/ReferenceData/Core/SimulationWithMasks.int.gz rename to Tests/ReferenceData/Std/SimulationWithMasks.int.gz diff --git a/Tests/ReferenceData/Core/SlicedComposition.int.gz b/Tests/ReferenceData/Std/SlicedComposition.int.gz similarity index 100% rename from Tests/ReferenceData/Core/SlicedComposition.int.gz rename to Tests/ReferenceData/Std/SlicedComposition.int.gz diff --git a/Tests/ReferenceData/Std/SpecularDivergentBeam.int.gz b/Tests/ReferenceData/Std/SpecularDivergentBeam.int.gz new file mode 100644 index 0000000000000000000000000000000000000000..af8baf443253dd1adffd3ce7b3b930be2425dd8d Binary files /dev/null and b/Tests/ReferenceData/Std/SpecularDivergentBeam.int.gz differ diff --git a/Tests/ReferenceData/Std/SpecularWithSlicing_01.int.gz b/Tests/ReferenceData/Std/SpecularWithSlicing_01.int.gz new file mode 100644 index 0000000000000000000000000000000000000000..f6067cbe58159631760ec009f3f77ba1397ea051 Binary files /dev/null and b/Tests/ReferenceData/Std/SpecularWithSlicing_01.int.gz differ diff --git a/Tests/ReferenceData/Std/SpecularWithSlicing_02.int.gz b/Tests/ReferenceData/Std/SpecularWithSlicing_02.int.gz new file mode 100644 index 0000000000000000000000000000000000000000..e7fe9b6232b49ef61c59d914fffda10e7b4de143 Binary files /dev/null and b/Tests/ReferenceData/Std/SpecularWithSlicing_02.int.gz differ diff --git a/Tests/ReferenceData/Std/SpecularWithSlicing_03.int.gz b/Tests/ReferenceData/Std/SpecularWithSlicing_03.int.gz new file mode 100644 index 0000000000000000000000000000000000000000..e7fe9b6232b49ef61c59d914fffda10e7b4de143 Binary files /dev/null and b/Tests/ReferenceData/Std/SpecularWithSlicing_03.int.gz differ diff --git a/Tests/ReferenceData/Std/SpecularWithSlicing_Q2.int.gz b/Tests/ReferenceData/Std/SpecularWithSlicing_Q2.int.gz new file mode 100644 index 0000000000000000000000000000000000000000..4619021b613d20f95c7ffbb9253526e5c66d2024 Binary files /dev/null and b/Tests/ReferenceData/Std/SpecularWithSlicing_Q2.int.gz differ diff --git a/Tests/ReferenceData/Core/SpheresWithLimitsDistribution.int.gz b/Tests/ReferenceData/Std/SpheresWithLimitsDistribution.int.gz similarity index 100% rename from Tests/ReferenceData/Core/SpheresWithLimitsDistribution.int.gz rename to Tests/ReferenceData/Std/SpheresWithLimitsDistribution.int.gz diff --git a/Tests/ReferenceData/Core/SphericalDetWithRoi.int.gz b/Tests/ReferenceData/Std/SphericalDetWithRoi.int.gz similarity index 74% rename from Tests/ReferenceData/Core/SphericalDetWithRoi.int.gz rename to Tests/ReferenceData/Std/SphericalDetWithRoi.int.gz index 7e7ce27f2dd23bfe14e1f42cf8561bab776757bb..47bb6699beb1ba3ba8bce607badf3ba2591a6356 100644 Binary files a/Tests/ReferenceData/Core/SphericalDetWithRoi.int.gz and b/Tests/ReferenceData/Std/SphericalDetWithRoi.int.gz differ diff --git a/Tests/ReferenceData/Std/SquareBeamFootprint.int.gz b/Tests/ReferenceData/Std/SquareBeamFootprint.int.gz new file mode 100644 index 0000000000000000000000000000000000000000..3b64e40d7bfb8c5a9f7c94d9da08ba6f84c05e24 Binary files /dev/null and b/Tests/ReferenceData/Std/SquareBeamFootprint.int.gz differ diff --git a/Tests/ReferenceData/Core/SquareLattice.int.gz b/Tests/ReferenceData/Std/SquareLattice.int.gz similarity index 100% rename from Tests/ReferenceData/Core/SquareLattice.int.gz rename to Tests/ReferenceData/Std/SquareLattice.int.gz diff --git a/Tests/ReferenceData/Core/SuperLattice.int.gz b/Tests/ReferenceData/Std/SuperLattice.int.gz similarity index 100% rename from Tests/ReferenceData/Core/SuperLattice.int.gz rename to Tests/ReferenceData/Std/SuperLattice.int.gz diff --git a/Tests/ReferenceData/Std/TOFResolutionComparison_TP.int.gz b/Tests/ReferenceData/Std/TOFResolutionComparison_TP.int.gz new file mode 100644 index 0000000000000000000000000000000000000000..ea0de53423851ba717bc679a867fa6ed1d7dc3c5 Binary files /dev/null and b/Tests/ReferenceData/Std/TOFResolutionComparison_TP.int.gz differ diff --git a/Tests/ReferenceData/Std/TOFResolutionComparison_TR.int.gz b/Tests/ReferenceData/Std/TOFResolutionComparison_TR.int.gz new file mode 100644 index 0000000000000000000000000000000000000000..ea0de53423851ba717bc679a867fa6ed1d7dc3c5 Binary files /dev/null and b/Tests/ReferenceData/Std/TOFResolutionComparison_TR.int.gz differ diff --git a/Tests/ReferenceData/Std/ThickAbsorptiveSampleWithRoughness.int.gz b/Tests/ReferenceData/Std/ThickAbsorptiveSampleWithRoughness.int.gz new file mode 100644 index 0000000000000000000000000000000000000000..0add27eab385b942a2cf9b7eeeb8161221645abf Binary files /dev/null and b/Tests/ReferenceData/Std/ThickAbsorptiveSampleWithRoughness.int.gz differ diff --git a/Tests/ReferenceData/Core/TransformBox.int.gz b/Tests/ReferenceData/Std/TransformBox.int.gz similarity index 85% rename from Tests/ReferenceData/Core/TransformBox.int.gz rename to Tests/ReferenceData/Std/TransformBox.int.gz index 401a5c5f90538f0294ac7231abd0164bbfdd1b33..8b72c7fe5f4034c0812585c8c74e45ba398d525a 100644 Binary files a/Tests/ReferenceData/Core/TransformBox.int.gz and b/Tests/ReferenceData/Std/TransformBox.int.gz differ diff --git a/Tests/ReferenceData/Core/TriangularRipple.int.gz b/Tests/ReferenceData/Std/TriangularRipple.int.gz similarity index 100% rename from Tests/ReferenceData/Core/TriangularRipple.int.gz rename to Tests/ReferenceData/Std/TriangularRipple.int.gz diff --git a/Tests/ReferenceData/Core/TwoTypesCylindersDistribution.int.gz b/Tests/ReferenceData/Std/TwoTypesCylindersDistribution.int.gz similarity index 100% rename from Tests/ReferenceData/Core/TwoTypesCylindersDistribution.int.gz rename to Tests/ReferenceData/Std/TwoTypesCylindersDistribution.int.gz diff --git a/auto/Wrap/doxygen_core.i b/auto/Wrap/doxygen_core.i index d29c25b19badccf9883d894ccd99b2326fbe5c39..eaab6dc9a1c05646cf318128b736372ae6c2d150 100644 --- a/auto/Wrap/doxygen_core.i +++ b/auto/Wrap/doxygen_core.i @@ -1421,18 +1421,18 @@ C++ includes: SimpleUnitConverters.h %feature("docstring") DepthProbeConverter::DepthProbeConverter "DepthProbeConverter::DepthProbeConverter(const Beam &beam, const IAxis &alpha_axis, const IAxis &z_axis) "; -%feature("docstring") DepthProbeConverter::~DepthProbeConverter "DepthProbeConverter::~DepthProbeConverter() override +%feature("docstring") DepthProbeConverter::~DepthProbeConverter "DepthProbeConverter::~DepthProbeConverter() final "; -%feature("docstring") DepthProbeConverter::clone "DepthProbeConverter * DepthProbeConverter::clone() const override +%feature("docstring") DepthProbeConverter::clone "DepthProbeConverter * DepthProbeConverter::clone() const final "; -%feature("docstring") DepthProbeConverter::availableUnits "std::vector< AxesUnits > DepthProbeConverter::availableUnits() const override +%feature("docstring") DepthProbeConverter::availableUnits "std::vector< AxesUnits > DepthProbeConverter::availableUnits() const final Returns the list of all available units. "; -%feature("docstring") DepthProbeConverter::defaultUnits "AxesUnits DepthProbeConverter::defaultUnits() const override +%feature("docstring") DepthProbeConverter::defaultUnits "AxesUnits DepthProbeConverter::defaultUnits() const final "; @@ -6308,6 +6308,11 @@ C++ includes: ICloneable.h %feature("docstring") ICloneable::clone "virtual ICloneable* ICloneable::clone() const =0 "; +%feature("docstring") ICloneable::transferToCPP "virtual void ICloneable::transferToCPP() + +Used for Python overriding of clone (see swig/tweaks.py) +"; + // File: classIClusteredParticles.xml %feature("docstring") IClusteredParticles " @@ -7811,10 +7816,10 @@ Returns a vector of children (const). %feature("docstring") INode::setParent "void INode::setParent(const INode *newParent) "; -%feature("docstring") INode::parent "INode * INode::parent() const +%feature("docstring") INode::parent "const INode * INode::parent() const "; -%feature("docstring") INode::parent "INode* INode::parent() +%feature("docstring") INode::parent "INode * INode::parent() "; %feature("docstring") INode::copyNumber "int INode::copyNumber(const INode *node) const @@ -8289,12 +8294,12 @@ Sets the beam's polarization according to the given Bloch vector. Returns the beam's intensity. "; -%feature("docstring") Instrument::getDetector "IDetector * Instrument::getDetector() const +%feature("docstring") Instrument::getDetector "const IDetector * Instrument::getDetector() const Returns the detector data. "; -%feature("docstring") Instrument::getDetector "IDetector* Instrument::getDetector() +%feature("docstring") Instrument::getDetector "IDetector * Instrument::getDetector() "; %feature("docstring") Instrument::getDetectorMask "const DetectorMask * Instrument::getDetectorMask() const @@ -11551,13 +11556,13 @@ C++ includes: SimpleUnitConverters.h %feature("docstring") OffSpecularConverter::OffSpecularConverter "OffSpecularConverter::OffSpecularConverter(const IDetector2D &detector, const Beam &beam, const IAxis &alpha_axis) "; -%feature("docstring") OffSpecularConverter::~OffSpecularConverter "OffSpecularConverter::~OffSpecularConverter() override +%feature("docstring") OffSpecularConverter::~OffSpecularConverter "OffSpecularConverter::~OffSpecularConverter() final "; -%feature("docstring") OffSpecularConverter::clone "OffSpecularConverter * OffSpecularConverter::clone() const override +%feature("docstring") OffSpecularConverter::clone "OffSpecularConverter * OffSpecularConverter::clone() const final "; -%feature("docstring") OffSpecularConverter::defaultUnits "AxesUnits OffSpecularConverter::defaultUnits() const override +%feature("docstring") OffSpecularConverter::defaultUnits "AxesUnits OffSpecularConverter::defaultUnits() const final "; @@ -11695,12 +11700,12 @@ Returns copy of raw data vector. Returns sum of all values in the data structure. "; -%feature("docstring") OutputData::begin "OutputData< T >::const_iterator OutputData< T >::begin() +%feature("docstring") OutputData::begin "OutputData< T >::iterator OutputData< T >::begin() Returns read/write iterator that points to the first element. "; -%feature("docstring") OutputData::begin "const_iterator OutputData< T >::begin() const +%feature("docstring") OutputData::begin "OutputData< T >::const_iterator OutputData< T >::begin() const Returns read-only iterator that points to the first element. "; @@ -12135,10 +12140,10 @@ get number of samples for this distribution get the sigma factor "; -%feature("docstring") ParameterDistribution::getDistribution "IDistribution1D * ParameterDistribution::getDistribution() const +%feature("docstring") ParameterDistribution::getDistribution "const IDistribution1D * ParameterDistribution::getDistribution() const "; -%feature("docstring") ParameterDistribution::getDistribution "IDistribution1D* ParameterDistribution::getDistribution() +%feature("docstring") ParameterDistribution::getDistribution "IDistribution1D * ParameterDistribution::getDistribution() "; %feature("docstring") ParameterDistribution::generateSamples "std::vector< ParameterSample > ParameterDistribution::generateSamples() const @@ -13854,18 +13859,18 @@ C++ includes: SimpleUnitConverters.h %feature("docstring") RectangularConverter::RectangularConverter "RectangularConverter::RectangularConverter(const RectangularDetector &detector, const Beam &beam) "; -%feature("docstring") RectangularConverter::~RectangularConverter "RectangularConverter::~RectangularConverter() override +%feature("docstring") RectangularConverter::~RectangularConverter "RectangularConverter::~RectangularConverter() final "; -%feature("docstring") RectangularConverter::clone "RectangularConverter * RectangularConverter::clone() const override +%feature("docstring") RectangularConverter::clone "RectangularConverter * RectangularConverter::clone() const final "; -%feature("docstring") RectangularConverter::availableUnits "std::vector< AxesUnits > RectangularConverter::availableUnits() const override +%feature("docstring") RectangularConverter::availableUnits "std::vector< AxesUnits > RectangularConverter::availableUnits() const final Returns the list of all available units. "; -%feature("docstring") RectangularConverter::defaultUnits "AxesUnits RectangularConverter::defaultUnits() const override +%feature("docstring") RectangularConverter::defaultUnits "AxesUnits RectangularConverter::defaultUnits() const final "; @@ -16229,18 +16234,18 @@ C++ includes: SimpleUnitConverters.h %feature("docstring") SphericalConverter::SphericalConverter "SphericalConverter::SphericalConverter(const SphericalDetector &detector, const Beam &beam) "; -%feature("docstring") SphericalConverter::~SphericalConverter "SphericalConverter::~SphericalConverter() override +%feature("docstring") SphericalConverter::~SphericalConverter "SphericalConverter::~SphericalConverter() final "; -%feature("docstring") SphericalConverter::clone "SphericalConverter * SphericalConverter::clone() const override +%feature("docstring") SphericalConverter::clone "SphericalConverter * SphericalConverter::clone() const final "; -%feature("docstring") SphericalConverter::availableUnits "std::vector< AxesUnits > SphericalConverter::availableUnits() const override +%feature("docstring") SphericalConverter::availableUnits "std::vector< AxesUnits > SphericalConverter::availableUnits() const final Returns the list of all available units. "; -%feature("docstring") SphericalConverter::defaultUnits "AxesUnits SphericalConverter::defaultUnits() const override +%feature("docstring") SphericalConverter::defaultUnits "AxesUnits SphericalConverter::defaultUnits() const final "; @@ -16790,16 +16795,16 @@ C++ includes: SimpleUnitConverters.h %feature("docstring") UnitConverterSimple::~UnitConverterSimple "UnitConverterSimple::~UnitConverterSimple() override=default "; -%feature("docstring") UnitConverterSimple::dimension "size_t UnitConverterSimple::dimension() const override +%feature("docstring") UnitConverterSimple::dimension "size_t UnitConverterSimple::dimension() const final "; -%feature("docstring") UnitConverterSimple::calculateMin "double UnitConverterSimple::calculateMin(size_t i_axis, AxesUnits units_type) const override +%feature("docstring") UnitConverterSimple::calculateMin "double UnitConverterSimple::calculateMin(size_t i_axis, AxesUnits units_type) const final "; -%feature("docstring") UnitConverterSimple::calculateMax "double UnitConverterSimple::calculateMax(size_t i_axis, AxesUnits units_type) const override +%feature("docstring") UnitConverterSimple::calculateMax "double UnitConverterSimple::calculateMax(size_t i_axis, AxesUnits units_type) const final "; -%feature("docstring") UnitConverterSimple::axisSize "size_t UnitConverterSimple::axisSize(size_t i_axis) const override +%feature("docstring") UnitConverterSimple::axisSize "size_t UnitConverterSimple::axisSize(size_t i_axis) const final "; %feature("docstring") UnitConverterSimple::availableUnits "std::vector< AxesUnits > UnitConverterSimple::availableUnits() const override @@ -16807,7 +16812,7 @@ C++ includes: SimpleUnitConverters.h Returns the list of all available units. "; -%feature("docstring") UnitConverterSimple::createConvertedAxis "std::unique_ptr< IAxis > UnitConverterSimple::createConvertedAxis(size_t i_axis, AxesUnits units) const override +%feature("docstring") UnitConverterSimple::createConvertedAxis "std::unique_ptr< IAxis > UnitConverterSimple::createConvertedAxis(size_t i_axis, AxesUnits units) const final "; diff --git a/auto/Wrap/doxygen_fit.i b/auto/Wrap/doxygen_fit.i index 46a473e6e4e398291ecc67e3f672d11f471cb7b1..26ba7ec8e32252fa92dd7b41f59d33c3304e7617 100644 --- a/auto/Wrap/doxygen_fit.i +++ b/auto/Wrap/doxygen_fit.i @@ -891,16 +891,16 @@ C++ includes: Parameters.h %feature("docstring") Fit::Parameters::add "void Parameters::add(const Parameter &par) "; -%feature("docstring") Fit::Parameters::begin "Parameters::iterator Parameters::begin() const +%feature("docstring") Fit::Parameters::begin "Parameters::const_iterator Parameters::begin() const "; -%feature("docstring") Fit::Parameters::end "Parameters::iterator Parameters::end() const +%feature("docstring") Fit::Parameters::end "Parameters::const_iterator Parameters::end() const "; -%feature("docstring") Fit::Parameters::begin "iterator Fit::Parameters::begin() +%feature("docstring") Fit::Parameters::begin "Parameters::iterator Parameters::begin() "; -%feature("docstring") Fit::Parameters::end "iterator Fit::Parameters::end() +%feature("docstring") Fit::Parameters::end "Parameters::iterator Parameters::end() "; %feature("docstring") Fit::Parameters::size "size_t Parameters::size() const diff --git a/auto/Wrap/libBornAgainCore.py b/auto/Wrap/libBornAgainCore.py index 46f71ad489a4bd8699ee7543e9de0ea0c3b5be6f..20371e742a34f42a5027295ded1e4fa4f4f4d46e 100644 --- a/auto/Wrap/libBornAgainCore.py +++ b/auto/Wrap/libBornAgainCore.py @@ -1791,7 +1791,13 @@ class ICloneable(object): return _libBornAgainCore.ICloneable_clone(self) def transferToCPP(self): - r"""transferToCPP(ICloneable self)""" + r""" + transferToCPP(ICloneable self) + virtual void ICloneable::transferToCPP() + + Used for Python overriding of clone (see swig/tweaks.py) + + """ return self.__disown__() # Register ICloneable in _libBornAgainCore: @@ -2052,7 +2058,7 @@ class INode(IParameterized): r""" parent(INode self) -> INode parent(INode self) -> INode - INode* INode::parent() + INode * INode::parent() """ return _libBornAgainCore.INode_parent(self, *args) @@ -16782,7 +16788,7 @@ class Instrument(INode): r""" getDetector(Instrument self) -> IDetector getDetector(Instrument self) -> IDetector - IDetector* Instrument::getDetector() + IDetector * Instrument::getDetector() """ return _libBornAgainCore.Instrument_getDetector(self, *args) @@ -20416,7 +20422,7 @@ class IntensityData(object): r""" begin(IntensityData self) -> OutputData< double >::iterator begin(IntensityData self) -> OutputData< double >::const_iterator - const_iterator OutputData< T >::begin() const + OutputData< T >::const_iterator OutputData< T >::begin() const Returns read-only iterator that points to the first element. @@ -20767,7 +20773,7 @@ class ParameterDistribution(IParameterized): r""" getDistribution(ParameterDistribution self) -> IDistribution1D getDistribution(ParameterDistribution self) -> IDistribution1D - IDistribution1D* ParameterDistribution::getDistribution() + IDistribution1D * ParameterDistribution::getDistribution() """ return _libBornAgainCore.ParameterDistribution_getDistribution(self, *args) diff --git a/auto/Wrap/libBornAgainCore_wrap.cpp b/auto/Wrap/libBornAgainCore_wrap.cpp index e03504984b446dfb2b827499474791980a29a071..b275fa50b70d48e04103a89f0cd0a9eb76b618f3 100644 --- a/auto/Wrap/libBornAgainCore_wrap.cpp +++ b/auto/Wrap/libBornAgainCore_wrap.cpp @@ -122252,7 +122252,13 @@ static PyMethodDef SwigMethods[] = { "virtual ICloneable* ICloneable::clone() const =0\n" "\n" ""}, - { "ICloneable_transferToCPP", _wrap_ICloneable_transferToCPP, METH_O, "ICloneable_transferToCPP(ICloneable self)"}, + { "ICloneable_transferToCPP", _wrap_ICloneable_transferToCPP, METH_O, "\n" + "ICloneable_transferToCPP(ICloneable self)\n" + "virtual void ICloneable::transferToCPP()\n" + "\n" + "Used for Python overriding of clone (see swig/tweaks.py) \n" + "\n" + ""}, { "ICloneable_swigregister", ICloneable_swigregister, METH_O, NULL}, { "new_IParameterized", _wrap_new_IParameterized, METH_VARARGS, "\n" "IParameterized(std::string const & name=\"\")\n" @@ -122390,7 +122396,7 @@ static PyMethodDef SwigMethods[] = { { "INode_parent", _wrap_INode_parent, METH_VARARGS, "\n" "INode_parent(INode self) -> INode\n" "INode_parent(INode self) -> INode\n" - "INode* INode::parent()\n" + "INode * INode::parent()\n" "\n" ""}, { "INode_copyNumber", _wrap_INode_copyNumber, METH_VARARGS, "\n" @@ -130932,7 +130938,7 @@ static PyMethodDef SwigMethods[] = { { "Instrument_getDetector", _wrap_Instrument_getDetector, METH_VARARGS, "\n" "Instrument_getDetector(Instrument self) -> IDetector\n" "Instrument_getDetector(Instrument self) -> IDetector\n" - "IDetector* Instrument::getDetector()\n" + "IDetector * Instrument::getDetector()\n" "\n" ""}, { "Instrument_getDetectorMask", _wrap_Instrument_getDetectorMask, METH_O, "\n" @@ -133141,7 +133147,7 @@ static PyMethodDef SwigMethods[] = { { "IntensityData_begin", _wrap_IntensityData_begin, METH_VARARGS, "\n" "IntensityData_begin(IntensityData self) -> OutputData< double >::iterator\n" "IntensityData_begin(IntensityData self) -> OutputData< double >::const_iterator\n" - "const_iterator OutputData< T >::begin() const\n" + "OutputData< T >::const_iterator OutputData< T >::begin() const\n" "\n" "Returns read-only iterator that points to the first element. \n" "\n" @@ -133390,7 +133396,7 @@ static PyMethodDef SwigMethods[] = { { "ParameterDistribution_getDistribution", _wrap_ParameterDistribution_getDistribution, METH_VARARGS, "\n" "ParameterDistribution_getDistribution(ParameterDistribution self) -> IDistribution1D\n" "ParameterDistribution_getDistribution(ParameterDistribution self) -> IDistribution1D\n" - "IDistribution1D* ParameterDistribution::getDistribution()\n" + "IDistribution1D * ParameterDistribution::getDistribution()\n" "\n" ""}, { "ParameterDistribution_generateSamples", _wrap_ParameterDistribution_generateSamples, METH_O, "\n" diff --git a/auto/Wrap/libBornAgainFit.py b/auto/Wrap/libBornAgainFit.py index 10a838417acd0671d1bab87af610efbd385977f8..33f3addf37fc596386ec20c6e5fce354be5ca7e0 100644 --- a/auto/Wrap/libBornAgainFit.py +++ b/auto/Wrap/libBornAgainFit.py @@ -1722,7 +1722,7 @@ class Parameters(object): r""" begin(Parameters self) -> Fit::Parameters::const_iterator begin(Parameters self) -> Fit::Parameters::iterator - iterator Fit::Parameters::begin() + Parameters::iterator Parameters::begin() """ return _libBornAgainFit.Parameters_begin(self, *args) @@ -1731,7 +1731,7 @@ class Parameters(object): r""" end(Parameters self) -> Fit::Parameters::const_iterator end(Parameters self) -> Fit::Parameters::iterator - iterator Fit::Parameters::end() + Parameters::iterator Parameters::end() """ return _libBornAgainFit.Parameters_end(self, *args) diff --git a/auto/Wrap/libBornAgainFit_wrap.cpp b/auto/Wrap/libBornAgainFit_wrap.cpp index 2ba957261a8620ffe61f6f4a0e66188972de05b8..0c5a892161c9316b6c91c87c4822e677143e25ae 100644 --- a/auto/Wrap/libBornAgainFit_wrap.cpp +++ b/auto/Wrap/libBornAgainFit_wrap.cpp @@ -22417,13 +22417,13 @@ static PyMethodDef SwigMethods[] = { { "Parameters_begin", _wrap_Parameters_begin, METH_VARARGS, "\n" "Parameters_begin(Parameters self) -> Fit::Parameters::const_iterator\n" "Parameters_begin(Parameters self) -> Fit::Parameters::iterator\n" - "iterator Fit::Parameters::begin()\n" + "Parameters::iterator Parameters::begin()\n" "\n" ""}, { "Parameters_end", _wrap_Parameters_end, METH_VARARGS, "\n" "Parameters_end(Parameters self) -> Fit::Parameters::const_iterator\n" "Parameters_end(Parameters self) -> Fit::Parameters::iterator\n" - "iterator Fit::Parameters::end()\n" + "Parameters::iterator Parameters::end()\n" "\n" ""}, { "Parameters_size", _wrap_Parameters_size, METH_O, "\n" diff --git a/cmake/configurables/BATesting.h.in b/cmake/configurables/BATesting.h.in index 860d8e47323b5b32fb0f6ebc969c88de4f3b9513..57e81fccdb1e50bc6bf1bde0e571a217773000df 100644 --- a/cmake/configurables/BATesting.h.in +++ b/cmake/configurables/BATesting.h.in @@ -24,13 +24,15 @@ namespace BATesting { inline std::string ReferenceDataDir() { return "@TEST_REFERENCE_DIR@"; } +inline std::string StdReferenceDir() { return "@TEST_REFERENCE_DIR@/Std"; } inline std::string CoreReferenceDir() { return "@TEST_REFERENCE_DIR@/Core"; } inline std::string TestOutputDir() { return "@TEST_OUTPUT_DIR@"; } +inline std::string StdOutputDir() { return "@TEST_OUTPUT_DIR@/Functional/Std"; } inline std::string CoreOutputDir() { return "@TEST_OUTPUT_DIR@/Functional/Core"; } inline std::string SelfConsistenceOutputDir() { return "@TEST_OUTPUT_DIR@/Functional/SelfConsistence"; } inline std::string GUIOutputDir() { return "@TEST_OUTPUT_DIR@/Functional/GUI"; } -inline std::string PyStandardOutputDir() { return "@TEST_OUTPUT_DIR@/Functional/Python/PyStandard"; } +inline std::string PyStandardOutputDir() { return "@TEST_OUTPUT_DIR@/Functional/Python/Std"; } }