-
Campbell, Stuart authoredCampbell, Stuart authored
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
ConvertFromDistributionTest.h 1.98 KiB
#ifndef CONVERTFROMDISTRIBUTIONTEST_H_
#define CONVERTFROMDISTRIBUTIONTEST_H_
#include <cxxtest/TestSuite.h>
#include "MantidTestHelpers/WorkspaceCreationHelper.h"
#include "MantidAlgorithms/ConvertFromDistribution.h"
#include "MantidAPI/AnalysisDataService.h"
using namespace Mantid::API;
using Mantid::Algorithms::ConvertFromDistribution;
class ConvertFromDistributionTest : public CxxTest::TestSuite {
public:
static ConvertFromDistributionTest *createSuite() {
return new ConvertFromDistributionTest();
}
static void destroySuite(ConvertFromDistributionTest *suite) { delete suite; }
ConvertFromDistributionTest() : dist("dist") {
MatrixWorkspace_sptr WS =
WorkspaceCreationHelper::Create2DWorkspaceBinned(1, 10, 0, 0.5);
WS->isDistribution(true);
AnalysisDataService::Instance().add(dist, WS);
}
void testName() { TS_ASSERT_EQUALS(conv.name(), "ConvertFromDistribution") }
void testVersion() { TS_ASSERT_EQUALS(conv.version(), 1) }
void testInit() {
TS_ASSERT_THROWS_NOTHING(conv.initialize())
TS_ASSERT(conv.isInitialized())
}
void testExec() {
if (!conv.isInitialized())
conv.initialize();
TS_ASSERT_THROWS_NOTHING(conv.setPropertyValue("Workspace", dist))
TS_ASSERT_THROWS_NOTHING(conv.execute())
TS_ASSERT(conv.isExecuted())
MatrixWorkspace_const_sptr output;
TS_ASSERT_THROWS_NOTHING(
output =
AnalysisDataService::Instance().retrieveWS<MatrixWorkspace>(dist))
const Mantid::MantidVec &X = output->dataX(0);
const Mantid::MantidVec &Y = output->dataY(0);
const Mantid::MantidVec &E = output->dataE(0);
for (size_t i = 0; i < Y.size(); ++i) {
TS_ASSERT_EQUALS(X[i], static_cast<double>(i) / 2.0)
TS_ASSERT_EQUALS(Y[i], 1)
TS_ASSERT_EQUALS(E[i], sqrt(2.0) / 2.0)
}
TS_ASSERT(!output->isDistribution())
AnalysisDataService::Instance().remove(dist);
}
private:
ConvertFromDistribution conv;
std::string dist;
};
#endif /*CONVERTFROMDISTRIBUTIONTEST_H_*/