diff --git a/Framework/API/CMakeLists.txt b/Framework/API/CMakeLists.txt index 80bcc1c561a97aca449ed73b99da932fca470345..c93e7e953395f722c4241e012f0a038ff476f654 100644 --- a/Framework/API/CMakeLists.txt +++ b/Framework/API/CMakeLists.txt @@ -10,7 +10,6 @@ set ( SRC_FILES src/AnalysisDataService.cpp src/ArchiveSearchFactory.cpp src/Axis.cpp - src/GeometryInfoFactory.cpp src/BinEdgeAxis.cpp src/BoxController.cpp src/CatalogFactory.cpp @@ -45,6 +44,7 @@ set ( SRC_FILES src/FunctionParameterDecorator.cpp src/FunctionProperty.cpp src/FunctionValues.cpp + src/GeometryInfoFactory.cpp src/GeometryInfo.cpp src/GridDomain.cpp src/GridDomain1D.cpp @@ -161,7 +161,6 @@ set ( INC_FILES inc/MantidAPI/AnalysisDataService.h inc/MantidAPI/ArchiveSearchFactory.h inc/MantidAPI/Axis.h - inc/MantidAPI/GeometryInfoFactory.h inc/MantidAPI/BinEdgeAxis.h inc/MantidAPI/BoxController.h inc/MantidAPI/CatalogFactory.h @@ -200,6 +199,7 @@ set ( INC_FILES inc/MantidAPI/FunctionParameterDecorator.h inc/MantidAPI/FunctionProperty.h inc/MantidAPI/FunctionValues.h + inc/MantidAPI/GeometryInfoFactory.h inc/MantidAPI/GeometryInfo.h inc/MantidAPI/GridDomain.h inc/MantidAPI/GridDomain1D.h @@ -339,7 +339,6 @@ set ( TEST_FILES AlgorithmTest.h AnalysisDataServiceTest.h AsynchronousTest.h - GeometryInfoFactoryTest.h BinEdgeAxisTest.h BoxControllerTest.h CommonBinsValidatorTest.h @@ -363,6 +362,7 @@ set ( TEST_FILES FunctionPropertyTest.h FunctionTest.h FunctionValuesTest.h + GeometryInfoFactoryTest.h GeometryInfoTest.h GroupingLoaderTest.h HistogramValidatorTest.h diff --git a/Framework/API/test/CMakeLists.txt b/Framework/API/test/CMakeLists.txt index 5bc227eabfa3c7855aca7e98bf62aabf1ab47ad9..597646c3bc5117d23f18fc0edd8b91d1379289e3 100644 --- a/Framework/API/test/CMakeLists.txt +++ b/Framework/API/test/CMakeLists.txt @@ -7,6 +7,7 @@ if ( CXXTEST_FOUND ) set ( TESTHELPER_SRCS ../../TestHelpers/src/TearDownWorld.cpp ../../TestHelpers/src/ComponentCreationHelper.cpp ../../TestHelpers/src/BoxControllerDummyIO.cpp + ../../TestHelpers/src/InstrumentCreationHelper.cpp ../../TestHelpers/src/NexusTestHelper.cpp ) cxxtest_add_test ( APITest ${TEST_FILES} ${GMOCK_TEST_FILES}) diff --git a/Framework/API/test/GeometryInfoFactoryTest.h b/Framework/API/test/GeometryInfoFactoryTest.h index 0a386d661facb1236358e8288e5930ca927fd181..c7eb98f64bf3ba148eb51a7e34f1fe9597a64d29 100644 --- a/Framework/API/test/GeometryInfoFactoryTest.h +++ b/Framework/API/test/GeometryInfoFactoryTest.h @@ -3,12 +3,12 @@ #include <cxxtest/TestSuite.h> -#include "MantidTestHelpers/WorkspaceCreationHelper.h" -#include "MantidAlgorithms/GeometryInfoFactory.h" +#include "MantidTestHelpers/FakeObjects.h" +#include "MantidTestHelpers/InstrumentCreationHelper.h" +#include "MantidAPI/GeometryInfoFactory.h" using namespace Mantid; using namespace Mantid::API; -using namespace Mantid::DataObjects; class GeometryInfoFactoryTest : public CxxTest::TestSuite { public: @@ -17,17 +17,23 @@ public: } static void destroySuite(GeometryInfoFactoryTest *suite) { delete suite; } - GeometryInfoFactoryTest() { - workspace = WorkspaceCreationHelper::create2DWorkspaceWithFullInstrument( - 1, 1, false); + GeometryInfoFactoryTest() : m_workspace(nullptr) { + size_t numberOfHistograms = 1; + size_t numberOfBins = 1; + m_workspace.init(numberOfHistograms, numberOfBins, numberOfBins - 1); + bool includeMonitors = false; + bool startYNegative = true; + const std::string instrumentName("SimpleFakeInstrument"); + InstrumentCreationHelper::addFullInstrumentToWorkspace( + m_workspace, includeMonitors, startYNegative, instrumentName); } void test_constructor() { - TS_ASSERT_THROWS_NOTHING(GeometryInfoFactory info(*workspace)); + TS_ASSERT_THROWS_NOTHING(GeometryInfoFactory info(m_workspace)); } void test_getInstrument() { - auto info = GeometryInfoFactory(*workspace); + auto info = GeometryInfoFactory(m_workspace); // This might fail if we get a null instrument, so we test for throw. Since // workspace->getInstrument() creates a copy of the instrument there is no // point in attempting to verify that the pointer is "correct". @@ -35,32 +41,32 @@ public: } void test_getSource() { - auto info = GeometryInfoFactory(*workspace); + auto info = GeometryInfoFactory(m_workspace); TS_ASSERT_THROWS_NOTHING(info.getSource()); } void test_getSample() { - auto info = GeometryInfoFactory(*workspace); + auto info = GeometryInfoFactory(m_workspace); TS_ASSERT_THROWS_NOTHING(info.getSample()); } void test_getSourcePos() { - auto info = GeometryInfoFactory(*workspace); + auto info = GeometryInfoFactory(m_workspace); TS_ASSERT_EQUALS(info.getSourcePos(), Kernel::V3D(-20.0, 0.0, 0.0)); } void test_getSamplePos() { - auto info = GeometryInfoFactory(*workspace); + auto info = GeometryInfoFactory(m_workspace); TS_ASSERT_EQUALS(info.getSamplePos(), Kernel::V3D(0.0, 0.0, 0.0)); } void test_getL1() { - auto info = GeometryInfoFactory(*workspace); + auto info = GeometryInfoFactory(m_workspace); TS_ASSERT_EQUALS(info.getL1(), 20.0); } private: - Workspace2D_sptr workspace; + WorkspaceTester m_workspace; }; #endif /* MANTID_API_GEOMETRYINFOFACTORY_TEST_H_ */ diff --git a/Framework/API/test/GeometryInfoTest.h b/Framework/API/test/GeometryInfoTest.h index adf07bf10071dd7ae3c39d2e985a196e3d456365..2236da7ec3cdea509f58a016f05551ba600c3f5a 100644 --- a/Framework/API/test/GeometryInfoTest.h +++ b/Framework/API/test/GeometryInfoTest.h @@ -3,63 +3,89 @@ #include <cxxtest/TestSuite.h> -#include "MantidTestHelpers/WorkspaceCreationHelper.h" +#include "MantidKernel/make_unique.h" +#include "MantidGeometry/Instrument/ParameterMap.h" #include "MantidAPI/GeometryInfo.h" +#include "MantidTestHelpers/FakeObjects.h" +#include "MantidTestHelpers/InstrumentCreationHelper.h" + using namespace Mantid; +using namespace Mantid::Geometry; using namespace Mantid::API; -using namespace Mantid::DataObjects; class GeometryInfoTest : public CxxTest::TestSuite { public: static GeometryInfoTest *createSuite() { return new GeometryInfoTest(); } static void destroySuite(GeometryInfoTest *suite) { delete suite; } - GeometryInfoTest() - : workspace(WorkspaceCreationHelper::create2DWorkspaceWithFullInstrument( - 5, 1, true, true)), - m_instrument_info(*workspace) {} + GeometryInfoTest() : m_workspace(nullptr) { + size_t numberOfHistograms = 5; + size_t numberOfBins = 1; + m_workspace.init(numberOfHistograms, numberOfBins, numberOfBins - 1); + + bool includeMonitors = true; + bool startYNegative = true; + const std::string instrumentName("SimpleFakeInstrument"); + InstrumentCreationHelper::addFullInstrumentToWorkspace( + m_workspace, includeMonitors, startYNegative, instrumentName); + + std::set<int64_t> toMask{0, 3}; + ParameterMap &pmap = m_workspace.instrumentParameters(); + for (size_t i = 0; i < m_workspace.getNumberHistograms(); ++i) { + if (toMask.find(i) != toMask.end()) { + IDetector_const_sptr det = m_workspace.getDetector(i); + pmap.addBool(det.get(), "masked", true); + } + } + + m_instrument_info = Kernel::make_unique<GeometryInfoFactory>(m_workspace); + } void test_constructor() { TS_ASSERT_THROWS_NOTHING( - GeometryInfo(m_instrument_info, *(workspace->getSpectrum(0)))); + GeometryInfo(*m_instrument_info, *(m_workspace.getSpectrum(0)))); } void test_isMonitor() { - TS_ASSERT_EQUALS(GeometryInfo(m_instrument_info, - *(workspace->getSpectrum(0))).isMonitor(), + TS_ASSERT_EQUALS(GeometryInfo(*m_instrument_info, + *(m_workspace.getSpectrum(0))).isMonitor(), false); - TS_ASSERT_EQUALS(GeometryInfo(m_instrument_info, - *(workspace->getSpectrum(1))).isMonitor(), + TS_ASSERT_EQUALS(GeometryInfo(*m_instrument_info, + *(m_workspace.getSpectrum(1))).isMonitor(), false); - TS_ASSERT_EQUALS(GeometryInfo(m_instrument_info, - *(workspace->getSpectrum(2))).isMonitor(), + TS_ASSERT_EQUALS(GeometryInfo(*m_instrument_info, + *(m_workspace.getSpectrum(2))).isMonitor(), false); - TS_ASSERT_EQUALS(GeometryInfo(m_instrument_info, - *(workspace->getSpectrum(3))).isMonitor(), + TS_ASSERT_EQUALS(GeometryInfo(*m_instrument_info, + *(m_workspace.getSpectrum(3))).isMonitor(), true); - TS_ASSERT_EQUALS(GeometryInfo(m_instrument_info, - *(workspace->getSpectrum(4))).isMonitor(), + TS_ASSERT_EQUALS(GeometryInfo(*m_instrument_info, + *(m_workspace.getSpectrum(4))).isMonitor(), true); } void test_isMasked() { - auto ws = WorkspaceCreationHelper::maskSpectra(workspace, {0, 3}); - auto instrument_info = GeometryInfoFactory(*ws); - TS_ASSERT_EQUALS( - GeometryInfo(instrument_info, *(ws->getSpectrum(0))).isMasked(), true); - TS_ASSERT_EQUALS( - GeometryInfo(instrument_info, *(ws->getSpectrum(1))).isMasked(), false); - TS_ASSERT_EQUALS( - GeometryInfo(instrument_info, *(ws->getSpectrum(2))).isMasked(), false); - TS_ASSERT_EQUALS( - GeometryInfo(instrument_info, *(ws->getSpectrum(3))).isMasked(), true); - TS_ASSERT_EQUALS( - GeometryInfo(instrument_info, *(ws->getSpectrum(4))).isMasked(), false); + auto instrument_info = GeometryInfoFactory(m_workspace); + TS_ASSERT_EQUALS(GeometryInfo(*m_instrument_info, + *(m_workspace.getSpectrum(0))).isMasked(), + true); + TS_ASSERT_EQUALS(GeometryInfo(*m_instrument_info, + *(m_workspace.getSpectrum(1))).isMasked(), + false); + TS_ASSERT_EQUALS(GeometryInfo(*m_instrument_info, + *(m_workspace.getSpectrum(2))).isMasked(), + false); + TS_ASSERT_EQUALS(GeometryInfo(*m_instrument_info, + *(m_workspace.getSpectrum(3))).isMasked(), + true); + TS_ASSERT_EQUALS(GeometryInfo(*m_instrument_info, + *(m_workspace.getSpectrum(4))).isMasked(), + false); } void test_getL1() { - auto info = GeometryInfo(m_instrument_info, *(workspace->getSpectrum(0))); + auto info = GeometryInfo(*m_instrument_info, *(m_workspace.getSpectrum(0))); TS_ASSERT_EQUALS(info.getL1(), 20.0); } @@ -67,53 +93,53 @@ public: double x2 = 5.0 * 5.0; double y2 = 2.0 * 2.0 * 0.05 * 0.05; TS_ASSERT_EQUALS( - GeometryInfo(m_instrument_info, *(workspace->getSpectrum(0))).getL2(), + GeometryInfo(*m_instrument_info, *(m_workspace.getSpectrum(0))).getL2(), sqrt(x2 + 1 * 1 * y2)); TS_ASSERT_EQUALS( - GeometryInfo(m_instrument_info, *(workspace->getSpectrum(1))).getL2(), + GeometryInfo(*m_instrument_info, *(m_workspace.getSpectrum(1))).getL2(), sqrt(x2 + 0 * 0 * y2)); TS_ASSERT_EQUALS( - GeometryInfo(m_instrument_info, *(workspace->getSpectrum(2))).getL2(), + GeometryInfo(*m_instrument_info, *(m_workspace.getSpectrum(2))).getL2(), sqrt(x2 + 1 * 1 * y2)); TS_ASSERT_EQUALS( - GeometryInfo(m_instrument_info, *(workspace->getSpectrum(3))).getL2(), + GeometryInfo(*m_instrument_info, *(m_workspace.getSpectrum(3))).getL2(), -9.0); TS_ASSERT_EQUALS( - GeometryInfo(m_instrument_info, *(workspace->getSpectrum(4))).getL2(), + GeometryInfo(*m_instrument_info, *(m_workspace.getSpectrum(4))).getL2(), -2.0); } void test_getTwoTheta() { - TS_ASSERT_DELTA(GeometryInfo(m_instrument_info, - *(workspace->getSpectrum(0))).getTwoTheta(), + TS_ASSERT_DELTA(GeometryInfo(*m_instrument_info, + *(m_workspace.getSpectrum(0))).getTwoTheta(), 0.0199973, 1e-6); - TS_ASSERT_DELTA(GeometryInfo(m_instrument_info, - *(workspace->getSpectrum(1))).getTwoTheta(), + TS_ASSERT_DELTA(GeometryInfo(*m_instrument_info, + *(m_workspace.getSpectrum(1))).getTwoTheta(), 0.0, 1e-6); - TS_ASSERT_DELTA(GeometryInfo(m_instrument_info, - *(workspace->getSpectrum(2))).getTwoTheta(), + TS_ASSERT_DELTA(GeometryInfo(*m_instrument_info, + *(m_workspace.getSpectrum(2))).getTwoTheta(), 0.0199973, 1e-6); } // Legacy test via the workspace method detectorTwoTheta(), which might be // removed at some point. void test_getTwoThetaLegacy() { - auto info = GeometryInfo(m_instrument_info, *(workspace->getSpectrum(2))); + auto info = GeometryInfo(*m_instrument_info, *(m_workspace.getSpectrum(2))); TS_ASSERT_EQUALS(info.getTwoTheta(), - workspace->detectorTwoTheta(info.getDetector())); + m_workspace.detectorTwoTheta(info.getDetector())); } void test_getSignedTwoTheta() { TS_ASSERT_DELTA( - GeometryInfo(m_instrument_info, *(workspace->getSpectrum(0))) + GeometryInfo(*m_instrument_info, *(m_workspace.getSpectrum(0))) .getSignedTwoTheta(), -0.0199973, 1e-6); TS_ASSERT_DELTA( - GeometryInfo(m_instrument_info, *(workspace->getSpectrum(1))) + GeometryInfo(*m_instrument_info, *(m_workspace.getSpectrum(1))) .getSignedTwoTheta(), 0.0, 1e-6); TS_ASSERT_DELTA( - GeometryInfo(m_instrument_info, *(workspace->getSpectrum(2))) + GeometryInfo(*m_instrument_info, *(m_workspace.getSpectrum(2))) .getSignedTwoTheta(), 0.0199973, 1e-6); } @@ -121,14 +147,14 @@ public: // Legacy test via the workspace method detectorSignedTwoTheta(), which might // be removed at some point. void test_getSignedTwoThetaLegacy() { - auto info = GeometryInfo(m_instrument_info, *(workspace->getSpectrum(2))); + auto info = GeometryInfo(*m_instrument_info, *(m_workspace.getSpectrum(2))); TS_ASSERT_EQUALS(info.getSignedTwoTheta(), - workspace->detectorSignedTwoTheta(info.getDetector())); + m_workspace.detectorSignedTwoTheta(info.getDetector())); } private: - Workspace2D_sptr workspace; - GeometryInfoFactory m_instrument_info; + WorkspaceTester m_workspace; + std::unique_ptr<GeometryInfoFactory> m_instrument_info; }; #endif /* MANTID_API_GEOMETRYINFOTEST_H_ */ diff --git a/Framework/Algorithms/test/CMakeLists.txt b/Framework/Algorithms/test/CMakeLists.txt index 73b5fef2307b7b9b2e46d66078cd5d2a5625a39c..8ebd1e2abed95ba899c68f3f15522de3b5a22015 100644 --- a/Framework/Algorithms/test/CMakeLists.txt +++ b/Framework/Algorithms/test/CMakeLists.txt @@ -32,6 +32,7 @@ if ( CXXTEST_FOUND ) # It will go out of scope at the end of this file so doesn't need un-setting set ( TESTHELPER_SRCS ../../TestHelpers/src/TearDownWorld.cpp ../../TestHelpers/src/ComponentCreationHelper.cpp + ../../TestHelpers/src/InstrumentCreationHelper.cpp ../../TestHelpers/src/WorkspaceCreationHelper.cpp ../../TestHelpers/src/SANSInstrumentCreationHelper.cpp ../../TestHelpers/src/MDEventsTestHelper.cpp diff --git a/Framework/Crystal/test/CMakeLists.txt b/Framework/Crystal/test/CMakeLists.txt index 5751dfdd1b55daa3d4cf939cfbc508df051c36cd..ce752b4b987b804a09a5bd8653e0e5c111956959 100644 --- a/Framework/Crystal/test/CMakeLists.txt +++ b/Framework/Crystal/test/CMakeLists.txt @@ -6,6 +6,7 @@ if ( CXXTEST_FOUND ) # It will go out of scope at the end of this file so doesn't need un-setting set ( TESTHELPER_SRCS ../../TestHelpers/src/TearDownWorld.cpp ../../TestHelpers/src/ComponentCreationHelper.cpp + ../../TestHelpers/src/InstrumentCreationHelper.cpp ../../TestHelpers/src/WorkspaceCreationHelper.cpp ../../TestHelpers/src/MDEventsTestHelper.cpp ) cxxtest_add_test ( CrystalTest ${TEST_FILES} ) diff --git a/Framework/CurveFitting/test/CMakeLists.txt b/Framework/CurveFitting/test/CMakeLists.txt index 556f2cc55dba65886476dc9c0cc42a7025e9256f..c9c9735697701f91031f67987b6c8f4ba4d3744c 100644 --- a/Framework/CurveFitting/test/CMakeLists.txt +++ b/Framework/CurveFitting/test/CMakeLists.txt @@ -5,6 +5,7 @@ if ( CXXTEST_FOUND ) # This variable is used within the cxxtest_add_test macro to build these helper classes into the test executable. # It will go out of scope at the end of this file so doesn't need un-setting set ( TESTHELPER_SRCS ../../TestHelpers/src/TearDownWorld.cpp + ../../TestHelpers/src/InstrumentCreationHelper.cpp ../../TestHelpers/src/WorkspaceCreationHelper.cpp ../../TestHelpers/src/ComponentCreationHelper.cpp ../../TestHelpers/src/StartFrameworkManager.cpp diff --git a/Framework/DataHandling/test/CMakeLists.txt b/Framework/DataHandling/test/CMakeLists.txt index 47b4dde26c2e3a658294d047f662308a1002a778..0447c97f4d9b943caae1f05778a83a77a145b117 100644 --- a/Framework/DataHandling/test/CMakeLists.txt +++ b/Framework/DataHandling/test/CMakeLists.txt @@ -8,6 +8,7 @@ if ( CXXTEST_FOUND ) ../../TestHelpers/src/ComponentCreationHelper.cpp ../../TestHelpers/src/ScopedFileHelper.cpp ../../TestHelpers/src/StartFrameworkManager.cpp + ../../TestHelpers/src/InstrumentCreationHelper.cpp ../../TestHelpers/src/WorkspaceCreationHelper.cpp ) diff --git a/Framework/DataObjects/test/CMakeLists.txt b/Framework/DataObjects/test/CMakeLists.txt index b6209a9fe7f7def52116c9ac66c582be1ab3d4b8..cf3bd0f3cbad0fa1b44e41b9a5b8c9ed3bf284e0 100644 --- a/Framework/DataObjects/test/CMakeLists.txt +++ b/Framework/DataObjects/test/CMakeLists.txt @@ -6,6 +6,7 @@ if ( CXXTEST_FOUND ) # It will go out of scope at the end of this file so doesn't need un-setting set ( TESTHELPER_SRCS ../../TestHelpers/src/TearDownWorld.cpp ../../TestHelpers/src/ComponentCreationHelper.cpp + ../../TestHelpers/src/InstrumentCreationHelper.cpp ../../TestHelpers/src/WorkspaceCreationHelper.cpp ../../TestHelpers/src/NexusTestHelper.cpp ../../TestHelpers/src/MDEventsTestHelper.cpp diff --git a/Framework/ISISLiveData/test/CMakeLists.txt b/Framework/ISISLiveData/test/CMakeLists.txt index 922418ca8e0ed5aa58a546a0178e84eff2f1ae69..3514ffafaee646624b96df874e75589d993809ec 100644 --- a/Framework/ISISLiveData/test/CMakeLists.txt +++ b/Framework/ISISLiveData/test/CMakeLists.txt @@ -6,6 +6,7 @@ if ( CXXTEST_FOUND ) # It will go out of scope at the end of this file so doesn't need un-setting set ( TESTHELPER_SRCS ../../TestHelpers/src/TearDownWorld.cpp ../../TestHelpers/src/ComponentCreationHelper.cpp + ../../TestHelpers/src/InstrumentCreationHelper.cpp ../../TestHelpers/src/WorkspaceCreationHelper.cpp ) diff --git a/Framework/LiveData/test/CMakeLists.txt b/Framework/LiveData/test/CMakeLists.txt index 2854ce66f5793ac1c2c2d64cdf8d288fd97333df..f21580ced25c9c620bd0332a3d80770163123ea7 100644 --- a/Framework/LiveData/test/CMakeLists.txt +++ b/Framework/LiveData/test/CMakeLists.txt @@ -8,6 +8,7 @@ if ( CXXTEST_FOUND ) TestGroupDataListener.cpp ../../TestHelpers/src/TearDownWorld.cpp ../../TestHelpers/src/ComponentCreationHelper.cpp + ../../TestHelpers/src/InstrumentCreationHelper.cpp ../../TestHelpers/src/WorkspaceCreationHelper.cpp ../../TestHelpers/src/StartFrameworkManager.cpp ) diff --git a/Framework/MDAlgorithms/test/CMakeLists.txt b/Framework/MDAlgorithms/test/CMakeLists.txt index 694c59da7e2f049d5c5bd84af4f00226cd4ba569..d5718355ac3d6bfa5b1ed32bee2c0441d1c2e0e7 100644 --- a/Framework/MDAlgorithms/test/CMakeLists.txt +++ b/Framework/MDAlgorithms/test/CMakeLists.txt @@ -10,6 +10,7 @@ if ( CXXTEST_FOUND ) ../../TestHelpers/src/MDAlgorithmsTestHelper.cpp ../../TestHelpers/src/MDEventsTestHelper.cpp ../../TestHelpers/src/ScopedFileHelper.cpp + ../../TestHelpers/src/InstrumentCreationHelper.cpp ../../TestHelpers/src/WorkspaceCreationHelper.cpp ) diff --git a/Framework/MPIAlgorithms/test/CMakeLists.txt b/Framework/MPIAlgorithms/test/CMakeLists.txt index 2dfe09a9efba6cdbba0995f5d5fd11612d7b5900..fd7cd24ed92a369390246f8f7f111115fc59b761 100644 --- a/Framework/MPIAlgorithms/test/CMakeLists.txt +++ b/Framework/MPIAlgorithms/test/CMakeLists.txt @@ -5,6 +5,7 @@ if ( CXXTEST_FOUND ) set ( TESTHELPER_SRCS ../../TestHelpers/src/TearDownWorld.cpp ../../TestHelpers/src/ComponentCreationHelper.cpp + ../../TestHelpers/src/InstrumentCreationHelper.cpp ../../TestHelpers/src/WorkspaceCreationHelper.cpp ) diff --git a/Framework/PythonInterface/test/testhelpers/CMakeLists.txt b/Framework/PythonInterface/test/testhelpers/CMakeLists.txt index 1aacbe5d6bb30e1ff414e4a37c45484c75c32581..3e07b7e18d23ccd2c9eab39cf121da6709cda132 100644 --- a/Framework/PythonInterface/test/testhelpers/CMakeLists.txt +++ b/Framework/PythonInterface/test/testhelpers/CMakeLists.txt @@ -26,6 +26,7 @@ set ( SRC_FILES WorkspaceCreationHelperModule.cpp ${FRAMEWORK_DIR}/TestHelpers/src/ComponentCreationHelper.cpp ${FRAMEWORK_DIR}/TestHelpers/src/MDEventsTestHelper.cpp + ${FRAMEWORK_DIR}/TestHelpers/src/InstrumentCreationHelper.cpp ${FRAMEWORK_DIR}/TestHelpers/src/WorkspaceCreationHelper.cpp ) add_library ( PythonWorkspaceCreationHelper ${SRC_FILES} ${INC_FILES} ${PYTHON_INSTALL_FILES} ) diff --git a/Framework/SINQ/test/CMakeLists.txt b/Framework/SINQ/test/CMakeLists.txt index 5a868a37ee7ef635562650960ad61b32cd5224f5..93f379e2edde652c1be1290b486be727546c0b06 100644 --- a/Framework/SINQ/test/CMakeLists.txt +++ b/Framework/SINQ/test/CMakeLists.txt @@ -5,6 +5,7 @@ if ( CXXTEST_FOUND ) set ( TESTHELPER_SRCS ../../TestHelpers/src/TearDownWorld.cpp ../../TestHelpers/src/ComponentCreationHelper.cpp + ../../TestHelpers/src/InstrumentCreationHelper.cpp ../../TestHelpers/src/WorkspaceCreationHelper.cpp ) cxxtest_add_test ( PSISINQTest ${TEST_FILES} ${GMOCK_TEST_FILES}) diff --git a/Framework/TestHelpers/inc/MantidTestHelpers/InstrumentCreationHelper.h b/Framework/TestHelpers/inc/MantidTestHelpers/InstrumentCreationHelper.h index d9f5a4524e06aa00138ac0a45a4fda086e57e077..3ef6ca88f0d21a5cf9862a6d520dc08055a197f5 100644 --- a/Framework/TestHelpers/inc/MantidTestHelpers/InstrumentCreationHelper.h +++ b/Framework/TestHelpers/inc/MantidTestHelpers/InstrumentCreationHelper.h @@ -1,90 +1,19 @@ #ifndef INSTRUMENTCREATIONHELPER_H_ #define INSTRUMENTCREATIONHELPER_H_ -#include "MantidAPI/MatrixWorkspace.h" -#include "MantidGeometry/Instrument.h" -#include "MantidGeometry/Instrument/Detector.h" -#include "MantidGeometry/Instrument/ReferenceFrame.h" +#include "MantidTestHelpers/ComponentCreationHelper.h" + +namespace Mantid { +namespace API { +class MatrixWorkspace; +} +} namespace InstrumentCreationHelper { -using namespace Mantid; -using namespace Mantid::Kernel; -using namespace Mantid::Geometry; -using namespace Mantid::API; -void addFullInstrumentToWorkspace(MatrixWorkspace &workspace, +void addFullInstrumentToWorkspace(Mantid::API::MatrixWorkspace &workspace, bool includeMonitors, bool startYNegative, - const std::string &instrumentName) { - auto instrument = boost::make_shared<Instrument>(instrumentName); - instrument->setReferenceFrame( - boost::make_shared<ReferenceFrame>(Y, Z, Left, "")); - workspace.setInstrument(instrument); - - const double pixelRadius(0.05); - Object_sptr pixelShape = ComponentCreationHelper::createCappedCylinder( - pixelRadius, 0.02, V3D(0.0, 0.0, 0.0), V3D(0., 1.0, 0.), "tube"); - - const double detXPos(5.0); - auto ndets = workspace.getNumberHistograms(); - if (includeMonitors) - ndets -= 2; - for (size_t i = 0; i < ndets; ++i) { - std::ostringstream lexer; - lexer << "pixel-" << i << ")"; - Detector *physicalPixel = - new Detector(lexer.str(), workspace.getAxis(1)->spectraNo(i), pixelShape, - instrument.get()); - auto ycount(i); - if (startYNegative) - ycount -= 1; - const double ypos = static_cast<double>(ycount) * 2.0 * pixelRadius; - physicalPixel->setPos(detXPos, ypos, 0.0); - instrument->add(physicalPixel); - instrument->markAsDetector(physicalPixel); - workspace.getSpectrum(i)->addDetectorID(physicalPixel->getID()); - } - - // Monitors last - if (includeMonitors) // These occupy the last 2 spectra - { - Detector *monitor1 = - new Detector("mon1", workspace.getAxis(1)->spectraNo(ndets), Object_sptr(), - instrument.get()); - monitor1->setPos(-9.0, 0.0, 0.0); - instrument->add(monitor1); - instrument->markAsMonitor(monitor1); - - Detector *monitor2 = - new Detector("mon2", workspace.getAxis(1)->spectraNo(ndets) + 1, - Object_sptr(), instrument.get()); - monitor2->setPos(-2.0, 0.0, 0.0); - instrument->add(monitor2); - instrument->markAsMonitor(monitor2); - } - - // Define a source and sample position - // Define a source component - ObjComponent *source = new ObjComponent( - "moderator", - ComponentCreationHelper::createSphere(0.1, V3D(0, 0, 0), "1"), - instrument.get()); - source->setPos(V3D(-20, 0.0, 0.0)); - instrument->add(source); - instrument->markAsSource(source); - - // Define a sample as a simple sphere - ObjComponent *sample = new ObjComponent( - "samplePos", - ComponentCreationHelper::createSphere(0.1, V3D(0, 0, 0), "1"), - instrument.get()); - instrument->setPos(0.0, 0.0, 0.0); - instrument->add(sample); - instrument->markAsSamplePos(sample); - // chopper position - Component *chop_pos = - new Component("chopper-position", Kernel::V3D(-10, 0, 0), instrument.get()); - instrument->add(chop_pos); -} + const std::string &instrumentName); } #endif /* INSTRUMENTCREATIONHELPER_H_ */ diff --git a/Framework/TestHelpers/src/InstrumentCreationHelper.cpp b/Framework/TestHelpers/src/InstrumentCreationHelper.cpp new file mode 100644 index 0000000000000000000000000000000000000000..1e4df540b2700cb7d451319f1132233eefbb0af0 --- /dev/null +++ b/Framework/TestHelpers/src/InstrumentCreationHelper.cpp @@ -0,0 +1,90 @@ +#include "MantidTestHelpers/InstrumentCreationHelper.h" + +#include "MantidAPI/MatrixWorkspace.h" +#include "MantidGeometry/Instrument.h" +#include "MantidGeometry/Instrument/Detector.h" +#include "MantidGeometry/Instrument/ReferenceFrame.h" + +using namespace Mantid; +using namespace Mantid::Kernel; +using namespace Mantid::Geometry; +using namespace Mantid::API; +namespace InstrumentCreationHelper { + +void addFullInstrumentToWorkspace(MatrixWorkspace &workspace, + bool includeMonitors, bool startYNegative, + const std::string &instrumentName) { + auto instrument = boost::make_shared<Instrument>(instrumentName); + instrument->setReferenceFrame( + boost::make_shared<ReferenceFrame>(Y, Z, Left, "")); + workspace.setInstrument(instrument); + + const double pixelRadius(0.05); + Object_sptr pixelShape = ComponentCreationHelper::createCappedCylinder( + pixelRadius, 0.02, V3D(0.0, 0.0, 0.0), V3D(0., 1.0, 0.), "tube"); + + const double detXPos(5.0); + // Careful! Do not use size_t or auto, the unisgned will break the -=2 below. + int ndets = static_cast<int>(workspace.getNumberHistograms()); + if (includeMonitors) + ndets -= 2; + for (int i = 0; i < ndets; ++i) { + std::ostringstream lexer; + lexer << "pixel-" << i << ")"; + Detector *physicalPixel = + new Detector(lexer.str(), workspace.getAxis(1)->spectraNo(i), pixelShape, + instrument.get()); + int ycount(i); + if (startYNegative) + ycount -= 1; + const double ypos = ycount * 2.0 * pixelRadius; + physicalPixel->setPos(detXPos, ypos, 0.0); + instrument->add(physicalPixel); + instrument->markAsDetector(physicalPixel); + workspace.getSpectrum(i)->setDetectorID(physicalPixel->getID()); + } + + // Monitors last + if (includeMonitors) // These occupy the last 2 spectra + { + Detector *monitor1 = + new Detector("mon1", workspace.getAxis(1)->spectraNo(ndets), Object_sptr(), + instrument.get()); + monitor1->setPos(-9.0, 0.0, 0.0); + instrument->add(monitor1); + instrument->markAsMonitor(monitor1); + workspace.getSpectrum(ndets)->setDetectorID(ndets + 1); + + Detector *monitor2 = + new Detector("mon2", workspace.getAxis(1)->spectraNo(ndets) + 1, + Object_sptr(), instrument.get()); + monitor2->setPos(-2.0, 0.0, 0.0); + instrument->add(monitor2); + instrument->markAsMonitor(monitor2); + workspace.getSpectrum(ndets + 1)->setDetectorID(ndets + 2); + } + + // Define a source and sample position + // Define a source component + ObjComponent *source = new ObjComponent( + "moderator", + ComponentCreationHelper::createSphere(0.1, V3D(0, 0, 0), "1"), + instrument.get()); + source->setPos(V3D(-20, 0.0, 0.0)); + instrument->add(source); + instrument->markAsSource(source); + + // Define a sample as a simple sphere + ObjComponent *sample = new ObjComponent( + "samplePos", + ComponentCreationHelper::createSphere(0.1, V3D(0, 0, 0), "1"), + instrument.get()); + instrument->setPos(0.0, 0.0, 0.0); + instrument->add(sample); + instrument->markAsSamplePos(sample); + // chopper position + Component *chop_pos = + new Component("chopper-position", Kernel::V3D(-10, 0, 0), instrument.get()); + instrument->add(chop_pos); +} +} diff --git a/Framework/WorkflowAlgorithms/test/CMakeLists.txt b/Framework/WorkflowAlgorithms/test/CMakeLists.txt index 4992d610d377a9d5274cdd14c53c1b9e787ddadc..3e9182162b1f414d60394674e474095d57224a29 100644 --- a/Framework/WorkflowAlgorithms/test/CMakeLists.txt +++ b/Framework/WorkflowAlgorithms/test/CMakeLists.txt @@ -7,6 +7,7 @@ if ( CXXTEST_FOUND ) # It will go out of scope at the end of this file so doesn't need un-setting set ( TESTHELPER_SRCS ../../TestHelpers/src/TearDownWorld.cpp ../../TestHelpers/src/ComponentCreationHelper.cpp + ../../TestHelpers/src/InstrumentCreationHelper.cpp ../../TestHelpers/src/WorkspaceCreationHelper.cpp ) cxxtest_add_test ( WorkflowAlgorithmsTest ${TEST_FILES} ) target_link_libraries ( WorkflowAlgorithmsTest LINK_PRIVATE ${TCMALLOC_LIBRARIES_LINKTIME} diff --git a/MantidQt/API/test/CMakeLists.txt b/MantidQt/API/test/CMakeLists.txt index e524aaa6ae3d16f9565a9cec900e36cbe18bbc77..7722cd0f6c1f1b7ada0de935113d7640a89f09a7 100644 --- a/MantidQt/API/test/CMakeLists.txt +++ b/MantidQt/API/test/CMakeLists.txt @@ -8,6 +8,7 @@ if ( CXXTEST_FOUND ) # It will go out of scope at the end of this file so doesn't need un-setting set ( TESTHELPER_SRCS ../../../Framework/TestHelpers/src/TearDownWorld.cpp ../../../Framework/TestHelpers/src/ComponentCreationHelper.cpp + ../../../Framework/TestHelpers/src/InstrumentCreationHelper.cpp ../../../Framework/TestHelpers/src/WorkspaceCreationHelper.cpp ) diff --git a/MantidQt/CustomInterfaces/test/CMakeLists.txt b/MantidQt/CustomInterfaces/test/CMakeLists.txt index 90a9052d4ad7a8d395b05b89573a29a00b3dd24d..f593d538ead2833dd11651a78febceb87ffbef3d 100644 --- a/MantidQt/CustomInterfaces/test/CMakeLists.txt +++ b/MantidQt/CustomInterfaces/test/CMakeLists.txt @@ -4,6 +4,7 @@ if ( CXXTEST_FOUND ) include_directories( ../../../Framework/TestHelpers/inc ../../../Framework/DataObjects/inc ) set ( TESTHELPER_SRCS ../../../Framework/TestHelpers/src/ComponentCreationHelper.cpp + ../../../Framework/TestHelpers/src/InstrumentCreationHelper.cpp ../../../Framework/TestHelpers/src/WorkspaceCreationHelper.cpp ../../../Framework/TestHelpers/src/ScopedFileHelper.cpp ../../../Framework/TestHelpers/src/TearDownWorld.cpp diff --git a/MantidQt/SliceViewer/CMakeLists.txt b/MantidQt/SliceViewer/CMakeLists.txt index 686cb9b5b3813cb45806bb74c8083c5ad4614cc8..e2fbbf0254fd450c003a32332236d74928866dbe 100644 --- a/MantidQt/SliceViewer/CMakeLists.txt +++ b/MantidQt/SliceViewer/CMakeLists.txt @@ -175,8 +175,10 @@ if ( CXXTEST_FOUND ) include_directories( ../../Framework/TestHelpers/inc ../../Framework/DataObjects/inc ../../Framework/Crystal/inc ) - set ( TESTHELPER_SRCS ../../Framework/TestHelpers/src/WorkspaceCreationHelper.cpp - ../../Framework/TestHelpers/src/ComponentCreationHelper.cpp + set ( TESTHELPER_SRCS + ../../Framework/TestHelpers/src/InstrumentCreationHelper.cpp + ../../Framework/TestHelpers/src/WorkspaceCreationHelper.cpp + ../../Framework/TestHelpers/src/ComponentCreationHelper.cpp ) cxxtest_add_test ( SliceViewerTest ${TEST_FILES} ${GMOCK_TEST_FILES} ) diff --git a/Vates/VatesAPI/CMakeLists.txt b/Vates/VatesAPI/CMakeLists.txt index ecc53db40aa04538d99abfb8c9f496198ba45cb4..05a3f3c32462cc1c393c997f0220687c003c654d 100644 --- a/Vates/VatesAPI/CMakeLists.txt +++ b/Vates/VatesAPI/CMakeLists.txt @@ -246,6 +246,7 @@ if( CXXTEST_FOUND AND GMOCK_FOUND AND GTEST_FOUND ) include_directories( inc ../../Framework/TestHelpers/inc ../../Framework/DataHandling/inc ../../Framework/DataObjects/inc ../../Framework/MDAlgorithms/inc) set ( TESTHELPER_SRCS ../../Framework/TestHelpers/src/ComponentCreationHelper.cpp + ../../Framework/TestHelpers/src/InstrumentCreationHelper.cpp ../../Framework/TestHelpers/src/WorkspaceCreationHelper.cpp ../../Framework/TestHelpers/src/MDEventsTestHelper.cpp ../../Framework/TestHelpers/src/StartFrameworkManager.cpp ) diff --git a/Vates/VatesSimpleGui/ViewWidgets/CMakeLists.txt b/Vates/VatesSimpleGui/ViewWidgets/CMakeLists.txt index dd587576537f786f627f14a99186d2d4adf06294..b566f8461133884b92b672102e36d547b6fc3411 100644 --- a/Vates/VatesSimpleGui/ViewWidgets/CMakeLists.txt +++ b/Vates/VatesSimpleGui/ViewWidgets/CMakeLists.txt @@ -164,6 +164,7 @@ if( CXXTEST_FOUND AND GMOCK_FOUND AND GTEST_FOUND ) include_directories( inc ../../../Framework/TestHelpers/inc ../../../Framework/DataHandling/inc ../../../Framework/DataObjects/inc) set ( TESTHELPER_SRCS ../../../Framework/TestHelpers/src/ComponentCreationHelper.cpp + ../../../Framework/TestHelpers/src/InstrumentCreationHelper.cpp ../../../Framework/TestHelpers/src/WorkspaceCreationHelper.cpp ../../../Framework/TestHelpers/src/MDEventsTestHelper.cpp ../../../Framework/TestHelpers/src/StartFrameworkManager.cpp )