Skip to content
Snippets Groups Projects
Commit 488cb3c2 authored by Matthew Andrew's avatar Matthew Andrew
Browse files

Updated IndirectFitDataTest Re #28057

parent 4e85cb8e
No related branches found
No related tags found
No related merge requests found
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
#include <cxxtest/TestSuite.h> #include <cxxtest/TestSuite.h>
#include "IndirectFitDataLegacy.h" #include "IndirectFitData.h"
#include "MantidAPI/MatrixWorkspace.h" #include "MantidAPI/MatrixWorkspace.h"
#include "MantidDataObjects/Workspace2D.h" #include "MantidDataObjects/Workspace2D.h"
#include "MantidTestHelpers/IndirectFitDataCreationHelper.h" #include "MantidTestHelpers/IndirectFitDataCreationHelper.h"
...@@ -18,16 +18,19 @@ using namespace Mantid::API; ...@@ -18,16 +18,19 @@ using namespace Mantid::API;
using namespace Mantid::DataObjects; using namespace Mantid::DataObjects;
using namespace MantidQt::CustomInterfaces::IDA; using namespace MantidQt::CustomInterfaces::IDA;
using namespace Mantid::IndirectFitDataCreationHelper; using namespace Mantid::IndirectFitDataCreationHelper;
using namespace MantidQt::CustomInterfaces;
namespace { namespace {
std::unique_ptr<IndirectFitDataLegacy> std::unique_ptr<IndirectFitData>
getIndirectFitData(int const &numberOfSpectra) { getIndirectFitData(int const &numberOfSpectra) {
auto const workspace = createWorkspace(numberOfSpectra); auto const workspace = createWorkspace(numberOfSpectra);
SpectraLegacy const spec = Spectra const spec =
std::make_pair(0u, workspace->getNumberHistograms() - 1); Spectra(MantidQt::CustomInterfaces::IDA::WorkspaceIndex{0},
IndirectFitDataLegacy data(workspace, spec); MantidQt::CustomInterfaces::IDA::WorkspaceIndex{
return std::make_unique<IndirectFitDataLegacy>(data); static_cast<int>(workspace->getNumberHistograms() - 1)});
IndirectFitData data(workspace, spec);
return std::make_unique<IndirectFitData>(data);
} }
} // namespace } // namespace
...@@ -44,11 +47,13 @@ public: ...@@ -44,11 +47,13 @@ public:
void test_data_is_instantiated() { void test_data_is_instantiated() {
auto const workspace = createWorkspace(1); auto const workspace = createWorkspace(1);
SpectraLegacy const spec = Spectra const spec =
std::make_pair(0u, workspace->getNumberHistograms() - 1); Spectra(MantidQt::CustomInterfaces::IDA::WorkspaceIndex{0},
MantidQt::CustomInterfaces::IDA::WorkspaceIndex{
static_cast<int>(workspace->getNumberHistograms() - 1)});
workspace->setTitle("Test Title"); workspace->setTitle("Test Title");
IndirectFitDataLegacy const data(workspace, spec); IndirectFitData const data(workspace, spec);
TS_ASSERT_EQUALS(data.workspace(), workspace); TS_ASSERT_EQUALS(data.workspace(), workspace);
TS_ASSERT_EQUALS(data.workspace()->getTitle(), "Test Title"); TS_ASSERT_EQUALS(data.workspace()->getTitle(), "Test Title");
...@@ -56,11 +61,10 @@ public: ...@@ -56,11 +61,10 @@ public:
} }
void test_that_DiscontinuousSpectra_is_set_up_correctly() { void test_that_DiscontinuousSpectra_is_set_up_correctly() {
DiscontinuousSpectra<std::size_t> const spectra = Spectra const spectra = Spectra("0-5,8,10");
DiscontinuousSpectra<std::size_t>("0-5,8,10");
std::string const spectraString = "0-5,8,10"; std::string const spectraString = "0-5,8,10";
std::vector<std::size_t> const spectraVec{0, 1, 2, 3, 4, 5, 8, 10}; std::vector<IDA::WorkspaceIndex> const spectraVec{0, 1, 2, 3, 4, 5, 8, 10};
TS_ASSERT_EQUALS(spectra.getString(), spectraString); TS_ASSERT_EQUALS(spectra.getString(), spectraString);
for (auto it = spectra.begin(); it < spectra.end(); ++it) for (auto it = spectra.begin(); it < spectra.end(); ++it)
...@@ -72,11 +76,10 @@ public: ...@@ -72,11 +76,10 @@ public:
auto data = getIndirectFitData(11); auto data = getIndirectFitData(11);
std::string const inputString = "8,0-7,6,10"; std::string const inputString = "8,0-7,6,10";
SpectraLegacy const spectra = DiscontinuousSpectra<std::size_t>("0-8,10"); Spectra const spectra = Spectra("0-8,10");
data->setSpectra(inputString); data->setSpectra(inputString);
TS_ASSERT( TS_ASSERT_EQUALS(data->spectra(), spectra);
boost::apply_visitor(AreSpectraEqual(), data->spectra(), spectra));
} }
void void
...@@ -84,11 +87,10 @@ public: ...@@ -84,11 +87,10 @@ public:
auto data = getIndirectFitData(11); auto data = getIndirectFitData(11);
std::string const inputString = "1,2,4-3,10"; std::string const inputString = "1,2,4-3,10";
SpectraLegacy const spectra = DiscontinuousSpectra<std::size_t>("1-4,10"); Spectra const spectra = Spectra("1-4,10");
data->setSpectra(inputString); data->setSpectra(inputString);
TS_ASSERT( TS_ASSERT_EQUALS(data->spectra(), spectra);
boost::apply_visitor(AreSpectraEqual(), data->spectra(), spectra));
} }
void void
...@@ -96,11 +98,10 @@ public: ...@@ -96,11 +98,10 @@ public:
auto data = getIndirectFitData(11); auto data = getIndirectFitData(11);
std::string const inputString = " 8,10, 7"; std::string const inputString = " 8,10, 7";
SpectraLegacy const spectra = DiscontinuousSpectra<std::size_t>("7-8,10"); Spectra const spectra = Spectra("7-8,10");
data->setSpectra(inputString); data->setSpectra(inputString);
TS_ASSERT( TS_ASSERT_EQUALS(data->spectra(), spectra);
boost::apply_visitor(AreSpectraEqual(), data->spectra(), spectra));
} }
void test_data_is_stored_in_the_ADS() { void test_data_is_stored_in_the_ADS() {
...@@ -119,7 +120,7 @@ public: ...@@ -119,7 +120,7 @@ public:
std::vector<std::string> const formatStrings{ std::vector<std::string> const formatStrings{
"%1%_s%2%_Result", "%1%_f%2%,s%2%_Parameter", "%1%_s%2%_Parameter"}; "%1%_s%2%_Result", "%1%_f%2%,s%2%_Parameter", "%1%_s%2%_Parameter"};
std::string const rangeDelimiter = "_to_"; std::string const rangeDelimiter = "_to_";
std::size_t const spectrum = 1; IDA::WorkspaceIndex const spectrum = IDA::WorkspaceIndex{1};
TS_ASSERT_EQUALS(data->displayName(formatStrings[0], rangeDelimiter), TS_ASSERT_EQUALS(data->displayName(formatStrings[0], rangeDelimiter),
"_s0_Result"); "_s0_Result");
...@@ -143,23 +144,26 @@ public: ...@@ -143,23 +144,26 @@ public:
void void
test_that_the_number_of_spectra_returned_matches_the_instantiated_value() { test_that_the_number_of_spectra_returned_matches_the_instantiated_value() {
auto const data = getIndirectFitData(10); auto const data = getIndirectFitData(10);
TS_ASSERT_EQUALS(data->numberOfSpectra(), 10); TS_ASSERT_EQUALS(data->numberOfSpectra(), TableRowIndex{10});
} }
void test_that_getSpectrum_returns_the_expected_spectrum_numbers() { void test_that_getSpectrum_returns_the_expected_spectrum_numbers() {
auto const data = getIndirectFitData(4); auto const data = getIndirectFitData(4);
for (auto i = 0u; i < data->numberOfSpectra(); ++i) { for (auto i = TableRowIndex{0}; i < data->numberOfSpectra(); ++i) {
std::size_t const spectrumNum = data->getSpectrum(i); MantidQt::CustomInterfaces::IDA::WorkspaceIndex const spectrumNum =
TS_ASSERT_EQUALS(spectrumNum, i); data->getSpectrum(i);
TS_ASSERT_EQUALS(spectrumNum.value, i.value);
} }
} }
void void
test_that_true_is_returned_from_zeroSpectra_if_data_contains_empty_workspace() { test_that_true_is_returned_from_zeroSpectra_if_data_contains_empty_workspace() {
auto workspace = std::make_shared<Workspace2D>(); auto workspace = std::make_shared<Workspace2D>();
SpectraLegacy const spec = std::make_pair(0u, 0u); Spectra const spec =
IndirectFitDataLegacy const data(workspace, spec); Spectra(MantidQt::CustomInterfaces::IDA::WorkspaceIndex{0},
MantidQt::CustomInterfaces::IDA::WorkspaceIndex{0});
IndirectFitData const data(workspace, spec);
TS_ASSERT_EQUALS(data.zeroSpectra(), true); TS_ASSERT_EQUALS(data.zeroSpectra(), true);
} }
...@@ -167,8 +171,8 @@ public: ...@@ -167,8 +171,8 @@ public:
void void
test_that_true_is_returned_from_zeroSpectra_if_data_contains_empty_spectra() { test_that_true_is_returned_from_zeroSpectra_if_data_contains_empty_spectra() {
auto const workspace = createWorkspace(1); auto const workspace = createWorkspace(1);
DiscontinuousSpectra<std::size_t> const spec(""); Spectra const spec("");
IndirectFitDataLegacy const data(workspace, spec); IndirectFitData const data(workspace, spec);
TS_ASSERT_EQUALS(data.zeroSpectra(), true); TS_ASSERT_EQUALS(data.zeroSpectra(), true);
} }
...@@ -187,15 +191,25 @@ public: ...@@ -187,15 +191,25 @@ public:
/// string is in the correct order(unordered: 10,11 9,7 ordered:10,11,7,9) /// string is in the correct order(unordered: 10,11 9,7 ordered:10,11,7,9)
auto data = getIndirectFitData(4); auto data = getIndirectFitData(4);
data->setExcludeRegionString("1,8", 0); data->setExcludeRegionString(
data->setExcludeRegionString("2,5", 1); "1,8", MantidQt::CustomInterfaces::IDA::WorkspaceIndex{0});
data->setExcludeRegionString("1,2,5,6,3,4", 2); data->setExcludeRegionString(
"2,5", MantidQt::CustomInterfaces::IDA::WorkspaceIndex{1});
TS_ASSERT_EQUALS(data->getExcludeRegion(0), "1.000,8.000"); data->setExcludeRegionString(
TS_ASSERT_EQUALS(data->getExcludeRegion(1), "2.000,5.000"); "1,2,5,6,3,4", MantidQt::CustomInterfaces::IDA::WorkspaceIndex{2});
TS_ASSERT_EQUALS(data->getExcludeRegion(2),
TS_ASSERT_EQUALS(data->getExcludeRegion(
MantidQt::CustomInterfaces::IDA::WorkspaceIndex{0}),
"1.000,8.000");
TS_ASSERT_EQUALS(data->getExcludeRegion(
MantidQt::CustomInterfaces::IDA::WorkspaceIndex{1}),
"2.000,5.000");
TS_ASSERT_EQUALS(data->getExcludeRegion(
MantidQt::CustomInterfaces::IDA::WorkspaceIndex{2}),
"1.000,2.000,5.000,6.000,3.000,4.000"); "1.000,2.000,5.000,6.000,3.000,4.000");
TS_ASSERT_EQUALS(data->getExcludeRegion(3), ""); TS_ASSERT_EQUALS(data->getExcludeRegion(
MantidQt::CustomInterfaces::IDA::WorkspaceIndex{3}),
"");
} }
void void
...@@ -204,48 +218,72 @@ public: ...@@ -204,48 +218,72 @@ public:
/// string is in the correct order(unordered: 10,11 9,7 ordered:10,11,7,9) /// string is in the correct order(unordered: 10,11 9,7 ordered:10,11,7,9)
auto data = getIndirectFitData(4); auto data = getIndirectFitData(4);
data->setExcludeRegionString("1,8", 0); data->setExcludeRegionString(
data->setExcludeRegionString("2,5", 1); "1,8", MantidQt::CustomInterfaces::IDA::WorkspaceIndex{0});
data->setExcludeRegionString(
"2,5", MantidQt::CustomInterfaces::IDA::WorkspaceIndex{1});
std::vector<double> const regionVector1{1.0, 8.0}; std::vector<double> const regionVector1{1.0, 8.0};
std::vector<double> const regionVector2{2.0, 5.0}; std::vector<double> const regionVector2{2.0, 5.0};
TS_ASSERT_EQUALS(data->excludeRegionsVector(0), regionVector1); TS_ASSERT_EQUALS(data->excludeRegionsVector(IDA::WorkspaceIndex{0}),
TS_ASSERT_EQUALS(data->excludeRegionsVector(1), regionVector2); regionVector1);
TS_ASSERT_EQUALS(data->excludeRegionsVector(3).empty(), true); TS_ASSERT_EQUALS(data->excludeRegionsVector(IDA::WorkspaceIndex{1}),
regionVector2);
TS_ASSERT_EQUALS(data->excludeRegionsVector(IDA::WorkspaceIndex{3}).empty(),
true);
} }
void test_that_excludeRegion_pairs_are_stored_in_an_order_of_low_to_high() { void test_that_excludeRegion_pairs_are_stored_in_an_order_of_low_to_high() {
/// Example: unordered: 10,11 9,7 ordered: 10,11,7,9 /// Example: unordered: 10,11 9,7 ordered: 10,11,7,9
auto data = getIndirectFitData(3); auto data = getIndirectFitData(3);
data->setExcludeRegionString("6,2", 0); data->setExcludeRegionString(
data->setExcludeRegionString("6,2,1,2,3,4,7,6", 1); "6,2", MantidQt::CustomInterfaces::IDA::WorkspaceIndex{0});
data->setExcludeRegionString("1,2,2,3,20,18,21,22,7,8", 2); data->setExcludeRegionString(
"6,2,1,2,3,4,7,6", MantidQt::CustomInterfaces::IDA::WorkspaceIndex{1});
data->setExcludeRegionString(
"1,2,2,3,20,18,21,22,7,8",
MantidQt::CustomInterfaces::IDA::WorkspaceIndex{2});
std::vector<double> const regionVector{2.0, 6.0}; std::vector<double> const regionVector{2.0, 6.0};
TS_ASSERT_EQUALS(data->getExcludeRegion(0), "2.000,6.000"); TS_ASSERT_EQUALS(data->getExcludeRegion(
TS_ASSERT_EQUALS(data->getExcludeRegion(1), MantidQt::CustomInterfaces::IDA::WorkspaceIndex{0}),
"2.000,6.000");
TS_ASSERT_EQUALS(data->getExcludeRegion(
MantidQt::CustomInterfaces::IDA::WorkspaceIndex{1}),
"2.000,6.000,1.000,2.000,3.000,4.000,6.000,7.000"); "2.000,6.000,1.000,2.000,3.000,4.000,6.000,7.000");
TS_ASSERT_EQUALS( TS_ASSERT_EQUALS(
data->getExcludeRegion(2), data->getExcludeRegion(
MantidQt::CustomInterfaces::IDA::WorkspaceIndex{2}),
"1.000,2.000,2.000,3.000,18.000,20.000,21.000,22.000,7.000,8.000"); "1.000,2.000,2.000,3.000,18.000,20.000,21.000,22.000,7.000,8.000");
TS_ASSERT_EQUALS(data->excludeRegionsVector(0), regionVector); TS_ASSERT_EQUALS(data->excludeRegionsVector(
MantidQt::CustomInterfaces::IDA::WorkspaceIndex{0}),
regionVector);
} }
void void
test_that_excludeRegion_is_stored_without_spaces_when_there_are_many_spaces_in_input_string() { test_that_excludeRegion_is_stored_without_spaces_when_there_are_many_spaces_in_input_string() {
auto data = getIndirectFitData(3); auto data = getIndirectFitData(3);
data->setExcludeRegionString(" 6, 2", 0); data->setExcludeRegionString(
data->setExcludeRegionString("6, 2,1 ,2, 3,4 ,7,6", 1); " 6, 2", MantidQt::CustomInterfaces::IDA::WorkspaceIndex{0});
data->setExcludeRegionString("1,2 ,2,3, 20, 18,21,22,7, 8 ", 2); data->setExcludeRegionString(
"6, 2,1 ,2, 3,4 ,7,6",
TS_ASSERT_EQUALS(data->getExcludeRegion(0), "2.000,6.000"); MantidQt::CustomInterfaces::IDA::WorkspaceIndex{1});
TS_ASSERT_EQUALS(data->getExcludeRegion(1), data->setExcludeRegionString(
"1,2 ,2,3, 20, 18,21,22,7, 8 ",
MantidQt::CustomInterfaces::IDA::WorkspaceIndex{2});
TS_ASSERT_EQUALS(data->getExcludeRegion(
MantidQt::CustomInterfaces::IDA::WorkspaceIndex{0}),
"2.000,6.000");
TS_ASSERT_EQUALS(data->getExcludeRegion(
MantidQt::CustomInterfaces::IDA::WorkspaceIndex{1}),
"2.000,6.000,1.000,2.000,3.000,4.000,6.000,7.000"); "2.000,6.000,1.000,2.000,3.000,4.000,6.000,7.000");
TS_ASSERT_EQUALS( TS_ASSERT_EQUALS(
data->getExcludeRegion(2), data->getExcludeRegion(
MantidQt::CustomInterfaces::IDA::WorkspaceIndex{2}),
"1.000,2.000,2.000,3.000,18.000,20.000,21.000,22.000,7.000,8.000"); "1.000,2.000,2.000,3.000,18.000,20.000,21.000,22.000,7.000,8.000");
} }
...@@ -253,21 +291,32 @@ public: ...@@ -253,21 +291,32 @@ public:
test_that_setExcludeRegion_rounds_the_numbers_in_the_input_string_to_the_appropriate_decimal_place() { test_that_setExcludeRegion_rounds_the_numbers_in_the_input_string_to_the_appropriate_decimal_place() {
auto data = getIndirectFitData(2); auto data = getIndirectFitData(2);
data->setExcludeRegionString("6.29445,2.93343", 0); data->setExcludeRegionString(
data->setExcludeRegionString("2.6,2.3,1.9999,3.0125", 1); "6.29445,2.93343", MantidQt::CustomInterfaces::IDA::WorkspaceIndex{0});
data->setExcludeRegionString(
"2.6,2.3,1.9999,3.0125",
MantidQt::CustomInterfaces::IDA::WorkspaceIndex{1});
TS_ASSERT_EQUALS(data->getExcludeRegion(0), "2.933,6.294"); TS_ASSERT_EQUALS(data->getExcludeRegion(
TS_ASSERT_EQUALS(data->getExcludeRegion(1), "2.300,2.600,2.000,3.013"); MantidQt::CustomInterfaces::IDA::WorkspaceIndex{0}),
"2.933,6.294");
TS_ASSERT_EQUALS(data->getExcludeRegion(
MantidQt::CustomInterfaces::IDA::WorkspaceIndex{1}),
"2.300,2.600,2.000,3.013");
} }
void test_throws_when_setSpectra_is_provided_an_out_of_range_spectra() { void test_throws_when_setSpectra_is_provided_an_out_of_range_spectra() {
auto data = getIndirectFitData(10); auto data = getIndirectFitData(10);
std::vector<SpectraLegacy> const spectraPairs{ std::vector<Spectra> const spectraPairs{
std::make_pair(0u, 11u), std::make_pair(0u, 1000000000000000000u), Spectra(MantidQt::CustomInterfaces::IDA::WorkspaceIndex{0},
std::make_pair(10u, 10u)}; MantidQt::CustomInterfaces::IDA::WorkspaceIndex{11}),
std::vector<std::string> const spectraStrings{ Spectra(MantidQt::CustomInterfaces::IDA::WorkspaceIndex{0},
"10", "100000000000000000000000000000", "1,5,10", "1,2,3,4,5,6,22"}; MantidQt::CustomInterfaces::IDA::WorkspaceIndex{1000000000}),
Spectra(MantidQt::CustomInterfaces::IDA::WorkspaceIndex{10},
MantidQt::CustomInterfaces::IDA::WorkspaceIndex{10})};
std::vector<std::string> const spectraStrings{"10", "1000000000", "1,5,10",
"1,2,3,4,5,6,22"};
for (auto i = 0u; i < spectraPairs.size(); ++i) for (auto i = 0u; i < spectraPairs.size(); ++i)
TS_ASSERT_THROWS(data->setSpectra(spectraPairs[i]), TS_ASSERT_THROWS(data->setSpectra(spectraPairs[i]),
...@@ -280,8 +329,10 @@ public: ...@@ -280,8 +329,10 @@ public:
void test_no_throw_when_setSpectra_is_provided_a_valid_spectra() { void test_no_throw_when_setSpectra_is_provided_a_valid_spectra() {
auto data = getIndirectFitData(10); auto data = getIndirectFitData(10);
std::vector<SpectraLegacy> const spectraPairs{ std::vector<Spectra> const spectraPairs{
std::make_pair(0u, 9u), std::make_pair(4u, 4u), std::make_pair(7u, 4u)}; Spectra(IDA::WorkspaceIndex{0}, IDA::WorkspaceIndex{9}),
Spectra(IDA::WorkspaceIndex{4}, IDA::WorkspaceIndex{4}),
Spectra(IDA::WorkspaceIndex{7}, IDA::WorkspaceIndex{4})};
std::vector<std::string> const spectraStrings{"0", "9", "0,9,6,4,5", std::vector<std::string> const spectraStrings{"0", "9", "0,9,6,4,5",
"1,2,3,4,5,6"}; "1,2,3,4,5,6"};
...@@ -295,42 +346,44 @@ public: ...@@ -295,42 +346,44 @@ public:
test_no_throw_when_setStartX_is_provided_a_valid_xValue_and_spectrum_number() { test_no_throw_when_setStartX_is_provided_a_valid_xValue_and_spectrum_number() {
auto data = getIndirectFitData(10); auto data = getIndirectFitData(10);
TS_ASSERT_THROWS_NOTHING(data->setStartX(0.0, 0)); TS_ASSERT_THROWS_NOTHING(data->setStartX(0.0, IDA::WorkspaceIndex{0}));
TS_ASSERT_THROWS_NOTHING(data->setStartX(-5.0, 0)); TS_ASSERT_THROWS_NOTHING(data->setStartX(-5.0, IDA::WorkspaceIndex{0}));
TS_ASSERT_THROWS_NOTHING(data->setStartX(5000000, 10)); TS_ASSERT_THROWS_NOTHING(data->setStartX(5000000, IDA::WorkspaceIndex{10}));
} }
void test_the_provided_startX_is_stored_in_range_after_using_setStartX() { void test_the_provided_startX_is_stored_in_range_after_using_setStartX() {
auto data = getIndirectFitData(3); auto data = getIndirectFitData(3);
data->setStartX(-5.0, 0); data->setStartX(-5.0, IDA::WorkspaceIndex{0});
data->setStartX(6.53, 1); data->setStartX(6.53, IDA::WorkspaceIndex{1});
data->setStartX(100000000000000.0, 2); data->setStartX(100000000000000.0, IDA::WorkspaceIndex{2});
TS_ASSERT_EQUALS(data->getRange(0).first, -5.0); TS_ASSERT_EQUALS(data->getRange(IDA::WorkspaceIndex{0}).first, -5.0);
TS_ASSERT_EQUALS(data->getRange(1).first, 6.53); TS_ASSERT_EQUALS(data->getRange(IDA::WorkspaceIndex{1}).first, 6.53);
TS_ASSERT_EQUALS(data->getRange(2).first, 100000000000000.0); TS_ASSERT_EQUALS(data->getRange(IDA::WorkspaceIndex{2}).first,
100000000000000.0);
} }
void void
test_no_throw_when_setEndX_is_provided_a_valid_xValue_and_spectrum_number() { test_no_throw_when_setEndX_is_provided_a_valid_xValue_and_spectrum_number() {
auto data = getIndirectFitData(10); auto data = getIndirectFitData(10);
TS_ASSERT_THROWS_NOTHING(data->setStartX(0.0, 0)); TS_ASSERT_THROWS_NOTHING(data->setStartX(0.0, IDA::WorkspaceIndex{0}));
TS_ASSERT_THROWS_NOTHING(data->setStartX(-5.0, 0)); TS_ASSERT_THROWS_NOTHING(data->setStartX(-5.0, IDA::WorkspaceIndex{0}));
TS_ASSERT_THROWS_NOTHING(data->setStartX(5000000, 10)); TS_ASSERT_THROWS_NOTHING(data->setStartX(5000000, IDA::WorkspaceIndex{10}));
} }
void test_the_provided_endX_is_stored_in_range_after_using_setEndX() { void test_the_provided_endX_is_stored_in_range_after_using_setEndX() {
auto data = getIndirectFitData(3); auto data = getIndirectFitData(3);
data->setEndX(-5.0, 0); data->setEndX(-5.0, IDA::WorkspaceIndex{0});
data->setEndX(6.53, 1); data->setEndX(6.53, IDA::WorkspaceIndex{1});
data->setEndX(100000000000000.0, 2); data->setEndX(100000000000000.0, IDA::WorkspaceIndex{2});
TS_ASSERT_EQUALS(data->getRange(0).second, -5.0); TS_ASSERT_EQUALS(data->getRange(IDA::WorkspaceIndex{0}).second, -5.0);
TS_ASSERT_EQUALS(data->getRange(1).second, 6.53); TS_ASSERT_EQUALS(data->getRange(IDA::WorkspaceIndex{1}).second, 6.53);
TS_ASSERT_EQUALS(data->getRange(2).second, 100000000000000.0); TS_ASSERT_EQUALS(data->getRange(IDA::WorkspaceIndex{2}).second,
100000000000000.0);
} }
void void
...@@ -338,12 +391,12 @@ public: ...@@ -338,12 +391,12 @@ public:
auto data1 = getIndirectFitData(2); auto data1 = getIndirectFitData(2);
auto data2 = getIndirectFitData(2); auto data2 = getIndirectFitData(2);
data1->setStartX(6.53, 0); data1->setStartX(6.53, IDA::WorkspaceIndex{0});
data2->setStartX(5.0, 1); data2->setStartX(5.0, IDA::WorkspaceIndex{1});
auto const combinedData = data2->combine(*data1); auto const combinedData = data2->combine(*data1);
TS_ASSERT_EQUALS(combinedData.getRange(0).first, 6.53); TS_ASSERT_EQUALS(combinedData.getRange(IDA::WorkspaceIndex{0}).first, 6.53);
TS_ASSERT_EQUALS(combinedData.getRange(1).first, 5.0); TS_ASSERT_EQUALS(combinedData.getRange(IDA::WorkspaceIndex{1}).first, 5.0);
} }
void void
...@@ -351,12 +404,13 @@ public: ...@@ -351,12 +404,13 @@ public:
auto data1 = getIndirectFitData(2); auto data1 = getIndirectFitData(2);
auto data2 = getIndirectFitData(2); auto data2 = getIndirectFitData(2);
data1->setEndX(2.34, 0); data1->setEndX(2.34, IDA::WorkspaceIndex{0});
data2->setEndX(5.9, 1); data2->setEndX(5.9, IDA::WorkspaceIndex{1});
auto const combinedData = data2->combine(*data1); auto const combinedData = data2->combine(*data1);
TS_ASSERT_EQUALS(combinedData.getRange(0).second, 2.34); TS_ASSERT_EQUALS(combinedData.getRange(IDA::WorkspaceIndex{0}).second,
TS_ASSERT_EQUALS(combinedData.getRange(1).second, 5.9); 2.34);
TS_ASSERT_EQUALS(combinedData.getRange(IDA::WorkspaceIndex{1}).second, 5.9);
} }
void void
...@@ -364,13 +418,14 @@ public: ...@@ -364,13 +418,14 @@ public:
auto data1 = getIndirectFitData(2); auto data1 = getIndirectFitData(2);
auto data2 = getIndirectFitData(2); auto data2 = getIndirectFitData(2);
data1->setExcludeRegionString("1,2,6,5", 0); data1->setExcludeRegionString("1,2,6,5", IDA::WorkspaceIndex{0});
data1->setExcludeRegionString("6,2", 1); data1->setExcludeRegionString("6,2", IDA::WorkspaceIndex{1});
auto const combinedData = data2->combine(*data1); auto const combinedData = data2->combine(*data1);
TS_ASSERT_EQUALS(combinedData.getExcludeRegion(0), TS_ASSERT_EQUALS(combinedData.getExcludeRegion(IDA::WorkspaceIndex{0}),
"1.000,2.000,5.000,6.000"); std::string("1.000,2.000,5.000,6.000"));
TS_ASSERT_EQUALS(combinedData.getExcludeRegion(1), "2.000,6.000"); TS_ASSERT_EQUALS(combinedData.getExcludeRegion(IDA::WorkspaceIndex{1}),
std::string("2.000,6.000"));
} }
void void
...@@ -378,13 +433,12 @@ public: ...@@ -378,13 +433,12 @@ public:
auto data1 = getIndirectFitData(10); auto data1 = getIndirectFitData(10);
auto data2 = getIndirectFitData(10); auto data2 = getIndirectFitData(10);
data1->setSpectra(std::make_pair(0u, 4u)); data1->setSpectra(Spectra(IDA::WorkspaceIndex{0}, IDA::WorkspaceIndex{4}));
data2->setSpectra(std::make_pair(5u, 9u)); data2->setSpectra(Spectra(IDA::WorkspaceIndex{5}, IDA::WorkspaceIndex{9}));
auto const combinedData = data2->combine(*data1); auto const combinedData = data2->combine(*data1);
SpectraLegacy const spec(std::make_pair(0u, 9u)); Spectra const spec(Spectra(IDA::WorkspaceIndex{0}, IDA::WorkspaceIndex{9}));
TS_ASSERT( TS_ASSERT_EQUALS(combinedData.spectra(), spec);
boost::apply_visitor(AreSpectraEqual(), combinedData.spectra(), spec));
} }
void void
...@@ -392,13 +446,12 @@ public: ...@@ -392,13 +446,12 @@ public:
auto data1 = getIndirectFitData(10); auto data1 = getIndirectFitData(10);
auto data2 = getIndirectFitData(10); auto data2 = getIndirectFitData(10);
data1->setSpectra(std::make_pair(0u, 4u)); data1->setSpectra(Spectra(IDA::WorkspaceIndex{0}, IDA::WorkspaceIndex{4}));
data2->setSpectra(std::make_pair(8u, 9u)); data2->setSpectra(Spectra(IDA::WorkspaceIndex{8}, IDA::WorkspaceIndex{9}));
auto const combinedData = data2->combine(*data1); auto const combinedData = data2->combine(*data1);
SpectraLegacy const spec(DiscontinuousSpectra<std::size_t>("0-4,8-9")); Spectra const spec(Spectra("0-4,8-9"));
TS_ASSERT( TS_ASSERT_EQUALS(combinedData.spectra(), spec);
boost::apply_visitor(AreSpectraEqual(), combinedData.spectra(), spec));
} }
void void
...@@ -406,13 +459,12 @@ public: ...@@ -406,13 +459,12 @@ public:
auto data1 = getIndirectFitData(10); auto data1 = getIndirectFitData(10);
auto data2 = getIndirectFitData(10); auto data2 = getIndirectFitData(10);
data1->setSpectra(std::make_pair(0u, 8u)); data1->setSpectra(Spectra(IDA::WorkspaceIndex{0}, IDA::WorkspaceIndex{8}));
data2->setSpectra(std::make_pair(4u, 9u)); data2->setSpectra(Spectra(IDA::WorkspaceIndex{4}, IDA::WorkspaceIndex{9}));
auto const combinedData = data2->combine(*data1); auto const combinedData = data2->combine(*data1);
SpectraLegacy const spec(DiscontinuousSpectra<std::size_t>("0-9")); Spectra const spec(Spectra("0-9"));
TS_ASSERT( TS_ASSERT_EQUALS(combinedData.spectra(), spec);
boost::apply_visitor(AreSpectraEqual(), combinedData.spectra(), spec));
} }
void void
...@@ -420,13 +472,12 @@ public: ...@@ -420,13 +472,12 @@ public:
auto data1 = getIndirectFitData(10); auto data1 = getIndirectFitData(10);
auto data2 = getIndirectFitData(10); auto data2 = getIndirectFitData(10);
data1->setSpectra(DiscontinuousSpectra<std::size_t>("0-4")); data1->setSpectra(Spectra("0-4"));
data2->setSpectra(DiscontinuousSpectra<std::size_t>("5-9")); data2->setSpectra(Spectra("5-9"));
auto const combinedData = data2->combine(*data1); auto const combinedData = data2->combine(*data1);
SpectraLegacy const spec(DiscontinuousSpectra<std::size_t>("0-9")); Spectra const spec(Spectra("0-9"));
TS_ASSERT( TS_ASSERT_EQUALS(combinedData.spectra(), spec);
boost::apply_visitor(AreSpectraEqual(), combinedData.spectra(), spec));
} }
void void
...@@ -434,13 +485,12 @@ public: ...@@ -434,13 +485,12 @@ public:
auto data1 = getIndirectFitData(10); auto data1 = getIndirectFitData(10);
auto data2 = getIndirectFitData(10); auto data2 = getIndirectFitData(10);
data1->setSpectra(DiscontinuousSpectra<std::size_t>("0-7")); data1->setSpectra(Spectra("0-7"));
data2->setSpectra(DiscontinuousSpectra<std::size_t>("2-9")); data2->setSpectra(Spectra("2-9"));
auto const combinedData = data2->combine(*data1); auto const combinedData = data2->combine(*data1);
SpectraLegacy const spec(DiscontinuousSpectra<std::size_t>("0-9")); Spectra const spec(Spectra("0-9"));
TS_ASSERT( TS_ASSERT_EQUALS(combinedData.spectra(), spec);
boost::apply_visitor(AreSpectraEqual(), combinedData.spectra(), spec));
} }
void void
...@@ -448,13 +498,12 @@ public: ...@@ -448,13 +498,12 @@ public:
auto data1 = getIndirectFitData(10); auto data1 = getIndirectFitData(10);
auto data2 = getIndirectFitData(10); auto data2 = getIndirectFitData(10);
data1->setSpectra(DiscontinuousSpectra<std::size_t>("0-4")); data1->setSpectra(Spectra("0-4"));
data2->setSpectra(std::make_pair(5u, 9u)); data2->setSpectra(Spectra(IDA::WorkspaceIndex{5}, IDA::WorkspaceIndex{9}));
auto const combinedData = data2->combine(*data1); auto const combinedData = data2->combine(*data1);
SpectraLegacy const spec(DiscontinuousSpectra<std::size_t>("0-9")); Spectra const spec(Spectra("0-9"));
TS_ASSERT( TS_ASSERT_EQUALS(combinedData.spectra(), spec);
boost::apply_visitor(AreSpectraEqual(), combinedData.spectra(), spec));
} }
void void
...@@ -462,12 +511,11 @@ public: ...@@ -462,12 +511,11 @@ public:
auto data1 = getIndirectFitData(10); auto data1 = getIndirectFitData(10);
auto data2 = getIndirectFitData(10); auto data2 = getIndirectFitData(10);
data1->setSpectra(DiscontinuousSpectra<std::size_t>("0-7")); data1->setSpectra(Spectra("0-7"));
data2->setSpectra(std::make_pair(4u, 9u)); data2->setSpectra(Spectra(IDA::WorkspaceIndex{4}, IDA::WorkspaceIndex{9}));
auto const combinedData = data2->combine(*data1); auto const combinedData = data2->combine(*data1);
SpectraLegacy const spec(DiscontinuousSpectra<std::size_t>("0-9")); Spectra const spec(Spectra("0-9"));
TS_ASSERT( TS_ASSERT_EQUALS(combinedData.spectra(), spec);
boost::apply_visitor(AreSpectraEqual(), combinedData.spectra(), spec));
} }
}; };
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment