diff --git a/qt/scientific_interfaces/ISISReflectometry/GUI/Experiment/ExperimentPresenter.cpp b/qt/scientific_interfaces/ISISReflectometry/GUI/Experiment/ExperimentPresenter.cpp index cbf38d3a5a2a887a4a0cbcbd6e00a617391e2735..c0be0045acef677d687165f7963a9cf4df28169c 100644 --- a/qt/scientific_interfaces/ISISReflectometry/GUI/Experiment/ExperimentPresenter.cpp +++ b/qt/scientific_interfaces/ISISReflectometry/GUI/Experiment/ExperimentPresenter.cpp @@ -78,6 +78,19 @@ PolarizationCorrections ExperimentPresenter::polarizationCorrectionsFromView() { return PolarizationCorrections(correctionType); } +FloodCorrections ExperimentPresenter::floodCorrectionsFromView() { + auto const correctionType = + floodCorrectionTypeFromString(m_view->getFloodCorrectionType()); + + if (floodCorrectionRequiresInputs(correctionType)) { + m_view->enableFloodCorrectionInputs(); + return FloodCorrections(correctionType, m_view->getFloodWorkspace()); + } + + m_view->disableFloodCorrectionInputs(); + return FloodCorrections(correctionType); +} + boost::optional<RangeInLambda> ExperimentPresenter::transmissionRunRangeFromView() { auto const range = RangeInLambda(m_view->getTransmissionStartOverlap(), @@ -117,13 +130,17 @@ ExperimentValidationResult ExperimentPresenter::validateExperimentFromView() { reductionTypeFromString(m_view->getReductionType()); auto const summationType = summationTypeFromString(m_view->getSummationType()); + auto const includePartialBins = m_view->getIncludePartialBins(); + auto const debugOption = m_view->getDebugOption(); auto transmissionRunRange = transmissionRunRangeFromView(); auto polarizationCorrections = polarizationCorrectionsFromView(); + auto floodCorrections = floodCorrectionsFromView(); auto stitchParameters = stitchParametersFromView(); return ExperimentValidationResult( Experiment(analysisMode, reductionType, summationType, - polarizationCorrections, transmissionRunRange, - stitchParameters, perThetaValidationResult.assertValid())); + includePartialBins, debugOption, polarizationCorrections, + floodCorrections, transmissionRunRange, stitchParameters, + perThetaValidationResult.assertValid())); } else { return ExperimentValidationResult( ExperimentValidationErrors(perThetaValidationResult.assertError())); diff --git a/qt/scientific_interfaces/ISISReflectometry/GUI/Experiment/ExperimentPresenter.h b/qt/scientific_interfaces/ISISReflectometry/GUI/Experiment/ExperimentPresenter.h index a7d60e5606ce9b7e1e36c5f09ed4a165d132ffce..4e4ac02d37df3cdb79831995fcbed3c6b9ebb845 100644 --- a/qt/scientific_interfaces/ISISReflectometry/GUI/Experiment/ExperimentPresenter.h +++ b/qt/scientific_interfaces/ISISReflectometry/GUI/Experiment/ExperimentPresenter.h @@ -64,6 +64,7 @@ public: private: ExperimentValidationResult validateExperimentFromView(); PolarizationCorrections polarizationCorrectionsFromView(); + FloodCorrections floodCorrectionsFromView(); boost::optional<RangeInLambda> transmissionRunRangeFromView(); std::map<std::string, std::string> stitchParametersFromView(); diff --git a/qt/scientific_interfaces/ISISReflectometry/GUI/Experiment/ExperimentPresenterFactory.h b/qt/scientific_interfaces/ISISReflectometry/GUI/Experiment/ExperimentPresenterFactory.h index 4e5d359608660533171c8f258ab40452e1388361..dc1fa88eb82713b7f4ea3880e8aa08a33c30f4d6 100644 --- a/qt/scientific_interfaces/ISISReflectometry/GUI/Experiment/ExperimentPresenterFactory.h +++ b/qt/scientific_interfaces/ISISReflectometry/GUI/Experiment/ExperimentPresenterFactory.h @@ -32,15 +32,16 @@ private: Experiment makeModel() { // TODO get defaults from algorithm auto polarizationCorrections = - PolarizationCorrections(PolarizationCorrectionType::None, boost::none, - boost::none, boost::none, boost::none); + PolarizationCorrections(PolarizationCorrectionType::None); + auto floodCorrections(FloodCorrectionType::Workspace); auto stitchParameters = std::map<std::string, std::string>(); auto perThetaDefaults = std::vector<PerThetaDefaults>( {PerThetaDefaults(boost::none, std::pair<std::string, std::string>(), RangeInQ(), boost::none, ProcessingInstructions())}); return Experiment(AnalysisMode::PointDetector, ReductionType::Normal, - SummationType::SumInLambda, - std::move(polarizationCorrections), boost::none, + SummationType::SumInLambda, false, false, + std::move(polarizationCorrections), + std::move(floodCorrections), boost::none, std::move(stitchParameters), std::move(perThetaDefaults)); } }; diff --git a/qt/scientific_interfaces/ISISReflectometry/GUI/Experiment/ExperimentView.cpp b/qt/scientific_interfaces/ISISReflectometry/GUI/Experiment/ExperimentView.cpp index 44b7741f22bcf52f357880ee7a7531624ac6a9d1..5e45526934bc03e7ac4167815a1ccc893d2645ac 100644 --- a/qt/scientific_interfaces/ISISReflectometry/GUI/Experiment/ExperimentView.cpp +++ b/qt/scientific_interfaces/ISISReflectometry/GUI/Experiment/ExperimentView.cpp @@ -110,8 +110,6 @@ void ExperimentView::initLayout() { SLOT(summationTypeChanged(int))); connect(m_ui.addPerAngleOptionsButton, SIGNAL(clicked()), this, SLOT(onNewPerThetaDefaultsRowRequested())); - connect(m_ui.floodCorComboBox, SIGNAL(currentIndexChanged(const QString &)), - this, SLOT(floodCorComboBoxChanged(const QString &))); } void ExperimentView::initializeTableItems(QTableWidget &table) { @@ -368,6 +366,16 @@ void ExperimentView::disablePolarizationCorrectionInputs() { m_ui.CPpEdit->setEnabled(false); } +void ExperimentView::enableFloodCorrectionInputs() { + m_ui.floodWorkspaceWsSelector->setVisible(true); + m_ui.floodWorkspaceWsSelectorLabel->setVisible(true); +} + +void ExperimentView::disableFloodCorrectionInputs() { + m_ui.floodWorkspaceWsSelector->setVisible(false); + m_ui.floodWorkspaceWsSelectorLabel->setVisible(false); +} + void ExperimentView::onPerAngleDefaultsChanged(int row, int column) { m_notifyee->notifyPerAngleDefaultsChanged(row, column); } @@ -389,12 +397,6 @@ void ExperimentView::removePerThetaDefaultsRow(int rowIndex) { m_ui.optionsTable->removeRow(rowIndex); } -void ExperimentView::floodCorComboBoxChanged(const QString &text) { - auto const showWorkspaceSelector = text == "Workspace"; - m_ui.floodWorkspaceWsSelector->setVisible(showWorkspaceSelector); - m_ui.floodWorkspaceWsSelectorLabel->setVisible(showWorkspaceSelector); -} - std::string ExperimentView::getText(QLineEdit const &lineEdit) const { return lineEdit.text().toStdString(); } diff --git a/qt/scientific_interfaces/ISISReflectometry/GUI/Experiment/ExperimentView.h b/qt/scientific_interfaces/ISISReflectometry/GUI/Experiment/ExperimentView.h index 1eddcbad51a15e00dbd1884c310f0d5b82c7dd55..0e19e06e365bacd6ceac89c8f754bf8cabead23b 100644 --- a/qt/scientific_interfaces/ISISReflectometry/GUI/Experiment/ExperimentView.h +++ b/qt/scientific_interfaces/ISISReflectometry/GUI/Experiment/ExperimentView.h @@ -99,6 +99,9 @@ public: void enablePolarizationCorrectionInputs() override; void disablePolarizationCorrectionInputs() override; + void enableFloodCorrectionInputs() override; + void disableFloodCorrectionInputs() override; + void addPerThetaDefaultsRow() override; void removePerThetaDefaultsRow(int rowIndex) override; @@ -110,9 +113,6 @@ public slots: void onSettingsChanged(); void onPerAngleDefaultsChanged(int row, int column); -private slots: - void floodCorComboBoxChanged(const QString &text); - private: void initializeTableItems(QTableWidget &table); void initializeTableRow(QTableWidget &table, int row); diff --git a/qt/scientific_interfaces/ISISReflectometry/GUI/Experiment/IExperimentView.h b/qt/scientific_interfaces/ISISReflectometry/GUI/Experiment/IExperimentView.h index 9e0df97574b5f1ab8cd4a14867c8e1aa5f6bcc8d..8bcf7c5f504b64258cdf522baa110098bc35bb2f 100644 --- a/qt/scientific_interfaces/ISISReflectometry/GUI/Experiment/IExperimentView.h +++ b/qt/scientific_interfaces/ISISReflectometry/GUI/Experiment/IExperimentView.h @@ -73,6 +73,9 @@ public: virtual void enablePolarizationCorrectionInputs() = 0; virtual void disablePolarizationCorrectionInputs() = 0; + virtual void enableFloodCorrectionInputs() = 0; + virtual void disableFloodCorrectionInputs() = 0; + virtual double getTransmissionStartOverlap() const = 0; virtual void setTransmissionStartOverlap(double start) = 0; virtual double getTransmissionEndOverlap() const = 0; diff --git a/qt/scientific_interfaces/ISISReflectometry/Reduction/CMakeLists.txt b/qt/scientific_interfaces/ISISReflectometry/Reduction/CMakeLists.txt index 1b46abca8e2996f3f238506efa1186ea4c33be28..19a7f4d958b5c9f67c9f2ad8629a992342fff08f 100644 --- a/qt/scientific_interfaces/ISISReflectometry/Reduction/CMakeLists.txt +++ b/qt/scientific_interfaces/ISISReflectometry/Reduction/CMakeLists.txt @@ -10,6 +10,7 @@ set ( REDUCTION_SRC_FILES DetectorCorrections.cpp Experiment.cpp + FloodCorrections.cpp Instrument.cpp MonitorCorrections.cpp PolarizationCorrections.cpp @@ -35,6 +36,7 @@ set ( REDUCTION_INC_FILES AnalysisMode.h DetectorCorrections.h Experiment.h + FloodCorrections.h Instrument.h MonitorCorrections.h PolarizationCorrections.h diff --git a/qt/scientific_interfaces/ISISReflectometry/Reduction/Experiment.cpp b/qt/scientific_interfaces/ISISReflectometry/Reduction/Experiment.cpp index a2a343d1d6dd065efe5117a80858d4d23a09b2fd..25e93a8348eccb047946c77b5eccec4f8f9521ca 100644 --- a/qt/scientific_interfaces/ISISReflectometry/Reduction/Experiment.cpp +++ b/qt/scientific_interfaces/ISISReflectometry/Reduction/Experiment.cpp @@ -12,14 +12,18 @@ namespace MantidQt { namespace CustomInterfaces { Experiment::Experiment(AnalysisMode analysisMode, ReductionType reductionType, - SummationType summationType, + SummationType summationType, bool includePartialBins, + bool debug, PolarizationCorrections polarizationCorrections, + FloodCorrections floodCorrections, boost::optional<RangeInLambda> transmissionRunRange, std::map<std::string, std::string> stitchParameters, std::vector<PerThetaDefaults> perThetaDefaults) : m_analysisMode(analysisMode), m_reductionType(reductionType), - m_summationType(summationType), + m_summationType(summationType), m_includePartialBins(includePartialBins), + m_debug(debug), m_polarizationCorrections(std::move(polarizationCorrections)), + m_floodCorrections(std::move(floodCorrections)), m_transmissionRunRange(std::move(transmissionRunRange)), m_stitchParameters(std::move(stitchParameters)), m_perThetaDefaults(std::move(perThetaDefaults)) {} @@ -27,9 +31,14 @@ Experiment::Experiment(AnalysisMode analysisMode, ReductionType reductionType, AnalysisMode Experiment::analysisMode() const { return m_analysisMode; } ReductionType Experiment::reductionType() const { return m_reductionType; } SummationType Experiment::summationType() const { return m_summationType; } +bool Experiment::includePartialBins() const { return m_includePartialBins; } +bool Experiment::debug() const { return m_debug; } PolarizationCorrections const &Experiment::polarizationCorrections() const { return m_polarizationCorrections; } +FloodCorrections const &Experiment::floodCorrections() const { + return m_floodCorrections; +} boost::optional<RangeInLambda> Experiment::transmissionRunRange() const { return m_transmissionRunRange; diff --git a/qt/scientific_interfaces/ISISReflectometry/Reduction/Experiment.h b/qt/scientific_interfaces/ISISReflectometry/Reduction/Experiment.h index 4d06f63f11fd9ca4adc3578cffecbbe496f33b18..447188156617f27126196640051a653f17185c59 100644 --- a/qt/scientific_interfaces/ISISReflectometry/Reduction/Experiment.h +++ b/qt/scientific_interfaces/ISISReflectometry/Reduction/Experiment.h @@ -9,6 +9,7 @@ #include "../DllConfig.h" #include "AnalysisMode.h" +#include "FloodCorrections.h" #include "PerThetaDefaults.h" #include "PolarizationCorrections.h" #include "RangeInLambda.h" @@ -24,8 +25,9 @@ namespace CustomInterfaces { class MANTIDQT_ISISREFLECTOMETRY_DLL Experiment { public: Experiment(AnalysisMode analysisMode, ReductionType reductionType, - SummationType summationType, + SummationType summationType, bool includePartialBins, bool debug, PolarizationCorrections polarizationCorrections, + FloodCorrections floodCorrections, boost::optional<RangeInLambda> transmissionRunRange, std::map<std::string, std::string> stitchParameters, std::vector<PerThetaDefaults> perThetaDefaults); @@ -33,7 +35,10 @@ public: AnalysisMode analysisMode() const; ReductionType reductionType() const; SummationType summationType() const; + bool includePartialBins() const; + bool debug() const; PolarizationCorrections const &polarizationCorrections() const; + FloodCorrections const &floodCorrections() const; boost::optional<RangeInLambda> transmissionRunRange() const; std::map<std::string, std::string> stitchParameters() const; std::vector<PerThetaDefaults> const &perThetaDefaults() const; @@ -45,8 +50,11 @@ private: AnalysisMode m_analysisMode; ReductionType m_reductionType; SummationType m_summationType; + bool m_includePartialBins; + bool m_debug; PolarizationCorrections m_polarizationCorrections; + FloodCorrections m_floodCorrections; boost::optional<RangeInLambda> m_transmissionRunRange; std::map<std::string, std::string> m_stitchParameters; diff --git a/qt/scientific_interfaces/ISISReflectometry/Reduction/FloodCorrections.cpp b/qt/scientific_interfaces/ISISReflectometry/Reduction/FloodCorrections.cpp new file mode 100644 index 0000000000000000000000000000000000000000..fc3f1ce92b6c36be49206fa53c48e2fd75823c39 --- /dev/null +++ b/qt/scientific_interfaces/ISISReflectometry/Reduction/FloodCorrections.cpp @@ -0,0 +1,32 @@ +// Mantid Repository : https://github.com/mantidproject/mantid +// +// Copyright © 2018 ISIS Rutherford Appleton Laboratory UKRI, +// NScD Oak Ridge National Laboratory, European Spallation Source +// & Institut Laue - Langevin +// SPDX - License - Identifier: GPL - 3.0 + +#include "FloodCorrections.h" +namespace MantidQt { +namespace CustomInterfaces { + +FloodCorrections::FloodCorrections(FloodCorrectionType correctionType, + boost::optional<std::string> workspace) + : m_correctionType(correctionType), m_workspace(workspace) {} + +FloodCorrectionType FloodCorrections::correctionType() const { + return m_correctionType; +} + +boost::optional<std::string> FloodCorrections::workspace() const { + return m_workspace; +} + +bool operator!=(FloodCorrections const &lhs, FloodCorrections const &rhs) { + return !(lhs == rhs); +} + +bool operator==(FloodCorrections const &lhs, FloodCorrections const &rhs) { + return lhs.correctionType() == rhs.correctionType() && + lhs.workspace() == rhs.workspace(); +} +} // namespace CustomInterfaces +} // namespace MantidQt diff --git a/qt/scientific_interfaces/ISISReflectometry/Reduction/FloodCorrections.h b/qt/scientific_interfaces/ISISReflectometry/Reduction/FloodCorrections.h new file mode 100644 index 0000000000000000000000000000000000000000..6b6e3c4e6733fb3d8906f65e399f4ac4ab5a39f4 --- /dev/null +++ b/qt/scientific_interfaces/ISISReflectometry/Reduction/FloodCorrections.h @@ -0,0 +1,49 @@ +// Mantid Repository : https://github.com/mantidproject/mantid +// +// Copyright © 2018 ISIS Rutherford Appleton Laboratory UKRI, +// NScD Oak Ridge National Laboratory, European Spallation Source +// & Institut Laue - Langevin +// SPDX - License - Identifier: GPL - 3.0 + +#ifndef MANTID_CUSTOMINTERFACES_FLOODCORRECTIONS_H_ +#define MANTID_CUSTOMINTERFACES_FLOODCORRECTIONS_H_ +#include "../DllConfig.h" +#include <boost/optional.hpp> +#include <string> +namespace MantidQt { +namespace CustomInterfaces { +enum class FloodCorrectionType { Workspace, ParameterFile }; + +inline FloodCorrectionType +floodCorrectionTypeFromString(std::string const &correctionType) { + if (correctionType == "Workspace") + return FloodCorrectionType::Workspace; + else if (correctionType == "ParameterFile") + return FloodCorrectionType::ParameterFile; + else + throw std::runtime_error("Unexpected flood correction type."); +} + +inline bool floodCorrectionRequiresInputs(FloodCorrectionType correctionType) { + return (correctionType == FloodCorrectionType::Workspace); +} + +class MANTIDQT_ISISREFLECTOMETRY_DLL FloodCorrections { +public: + FloodCorrections(FloodCorrectionType correctionType, + boost::optional<std::string> workspace = boost::none); + + FloodCorrectionType correctionType() const; + boost::optional<std::string> workspace() const; + +private: + FloodCorrectionType m_correctionType; + boost::optional<std::string> m_workspace; +}; + +MANTIDQT_ISISREFLECTOMETRY_DLL bool operator==(FloodCorrections const &lhs, + FloodCorrections const &rhs); +MANTIDQT_ISISREFLECTOMETRY_DLL bool operator!=(FloodCorrections const &lhs, + FloodCorrections const &rhs); +} // namespace CustomInterfaces +} // namespace MantidQt +#endif // MANTID_CUSTOMINTERFACES_FLOODCORRECTIONS_H_ diff --git a/qt/scientific_interfaces/test/ISISReflectometry/Experiment/ExperimentPresenterTest.h b/qt/scientific_interfaces/test/ISISReflectometry/Experiment/ExperimentPresenterTest.h index d7b38df06840d962f017012d32a8af0f8861b24f..df3539494a061011bc9ffce0f55251e690ebe28a 100644 --- a/qt/scientific_interfaces/test/ISISReflectometry/Experiment/ExperimentPresenterTest.h +++ b/qt/scientific_interfaces/test/ISISReflectometry/Experiment/ExperimentPresenterTest.h @@ -89,7 +89,7 @@ public: verifyAndClear(); } - void testSumInQWidgetsEnbledWhenChangeToSumInQ() { + void testSumInQWidgetsEnabledWhenChangeToSumInQ() { auto presenter = makePresenter(); expectViewReturnsSumInQDefaults(); @@ -100,6 +100,28 @@ public: verifyAndClear(); } + void testChangingIncludePartialBinsUpdatesModel() { + auto presenter = makePresenter(); + + expectViewReturnsSumInQDefaults(); + EXPECT_CALL(m_view, getIncludePartialBins()).WillOnce(Return(true)); + presenter.notifySettingsChanged(); + + TS_ASSERT(presenter.experiment().includePartialBins()); + verifyAndClear(); + } + + void testChangingDebugOptionUpdatesModel() { + auto presenter = makePresenter(); + + expectViewReturnsSumInQDefaults(); + EXPECT_CALL(m_view, getDebugOption()).WillOnce(Return(true)); + presenter.notifySettingsChanged(); + + TS_ASSERT(presenter.experiment().debug()); + verifyAndClear(); + } + void testSetPolarizationCorrectionsUpdatesModel() { auto presenter = makePresenter(); PolarizationCorrections polCorr(PolarizationCorrectionType::PA, 1.2, 1.3, @@ -132,6 +154,28 @@ public: runWithPolarizationCorrectionInputsEnabled("PNR"); } + void testSetFloodCorrectionsUpdatesModel() { + auto presenter = makePresenter(); + FloodCorrections floodCorr(FloodCorrectionType::Workspace, + std::string{"testWS"}); + + EXPECT_CALL(m_view, getFloodCorrectionType()).WillOnce(Return("Workspace")); + EXPECT_CALL(m_view, getFloodWorkspace()) + .WillOnce(Return(floodCorr.workspace().get())); + presenter.notifySettingsChanged(); + + TS_ASSERT_EQUALS(presenter.experiment().floodCorrections(), floodCorr); + verifyAndClear(); + } + + void testSetFloodCorrectionsToWorkspaceEnablesInputs() { + runWithFloodCorrectionInputsEnabled("Workspace"); + } + + void testSetFloodCorrectionsToParameterFileDisablesInputs() { + runWithFloodCorrectionInputsDisabled("ParameterFile"); + } + void testSetValidTransmissionRunRange() { RangeInLambda range(7.2, 10); runTestForValidTransmissionRunRange(range, range); @@ -345,14 +389,15 @@ private: Experiment makeModel() { auto polarizationCorrections = - PolarizationCorrections(PolarizationCorrectionType::None, boost::none, - boost::none, boost::none, boost::none); + PolarizationCorrections(PolarizationCorrectionType::None); + auto floodCorrections = FloodCorrections(FloodCorrectionType::Workspace); auto transmissionRunRange = boost::none; auto stitchParameters = std::map<std::string, std::string>(); auto perThetaDefaults = std::vector<PerThetaDefaults>(); return Experiment(AnalysisMode::PointDetector, ReductionType::Normal, - SummationType::SumInLambda, + SummationType::SumInLambda, false, false, std::move(polarizationCorrections), + std::move(floodCorrections), std::move(transmissionRunRange), std::move(stitchParameters), std::move(perThetaDefaults)); } @@ -405,6 +450,28 @@ private: verifyAndClear(); } + void runWithFloodCorrectionInputsDisabled(std::string const &type) { + auto presenter = makePresenter(); + + EXPECT_CALL(m_view, getFloodCorrectionType()).WillOnce(Return(type)); + EXPECT_CALL(m_view, disableFloodCorrectionInputs()).Times(1); + EXPECT_CALL(m_view, getFloodWorkspace()).Times(0); + presenter.notifySettingsChanged(); + + verifyAndClear(); + } + + void runWithFloodCorrectionInputsEnabled(std::string const &type) { + auto presenter = makePresenter(); + + EXPECT_CALL(m_view, getFloodCorrectionType()).WillOnce(Return(type)); + EXPECT_CALL(m_view, enableFloodCorrectionInputs()).Times(1); + EXPECT_CALL(m_view, getFloodWorkspace()).Times(1); + presenter.notifySettingsChanged(); + + verifyAndClear(); + } + void runTestForValidTransmissionRunRange( RangeInLambda const &range, boost::optional<RangeInLambda> const &result) { diff --git a/qt/scientific_interfaces/test/ISISReflectometry/Experiment/MockExperimentView.h b/qt/scientific_interfaces/test/ISISReflectometry/Experiment/MockExperimentView.h index dcfb788fd756ea6e091800a797a5c0783dde24bf..933e27e2effeae4cec690269fec40a61a3e0dcef 100644 --- a/qt/scientific_interfaces/test/ISISReflectometry/Experiment/MockExperimentView.h +++ b/qt/scientific_interfaces/test/ISISReflectometry/Experiment/MockExperimentView.h @@ -23,6 +23,11 @@ public: ON_CALL(*this, getReductionType()).WillByDefault(testing::Return("Normal")); ON_CALL(*this, getPolarizationCorrectionType()) .WillByDefault(testing::Return("None")); + ON_CALL(*this, getFloodCorrectionType()) + .WillByDefault(testing::Return("Workspace")); + ON_CALL(*this, getDebugOption()).WillByDefault(testing::Return(false)); + ON_CALL(*this, getIncludePartialBins()) + .WillByDefault(testing::Return(false)); } MOCK_METHOD1(subscribe, void(ExperimentViewSubscriber *)); MOCK_METHOD1(createStitchHints, @@ -52,6 +57,8 @@ public: MOCK_METHOD0(disablePolarizationCorrections, void()); MOCK_METHOD0(enablePolarizationCorrectionInputs, void()); MOCK_METHOD0(disablePolarizationCorrectionInputs, void()); + MOCK_METHOD0(enableFloodCorrectionInputs, void()); + MOCK_METHOD0(disableFloodCorrectionInputs, void()); MOCK_CONST_METHOD0(getTransmissionStartOverlap, double()); MOCK_METHOD1(setTransmissionStartOverlap, void(double)); MOCK_CONST_METHOD0(getTransmissionEndOverlap, double());