Skip to content

Commit

Permalink
Refs #2899 Changes made from suggestions in comments
Browse files Browse the repository at this point in the history
Removed any redundant includes from ConvertToMatrixWorkspace.h.
Changed any use of AnalysisDataService to use Mantid::API::Algorithm instead
Reformatted using Clang format
  • Loading branch information
MattKing06 committed Jul 16, 2015
1 parent 2c3bf23 commit 7e95763
Show file tree
Hide file tree
Showing 2 changed files with 98 additions and 87 deletions.
174 changes: 87 additions & 87 deletions Code/Mantid/Framework/Algorithms/test/ConvertToMatrixWorkspaceTest.h
Original file line number Diff line number Diff line change
Expand Up @@ -5,101 +5,101 @@

#include "MantidAlgorithms/CheckWorkspacesMatch.h"
#include "MantidAlgorithms/ConvertToMatrixWorkspace.h"
#include "MantidAPI/ISpectrum.h"
#include "MantidAPI/MatrixWorkspace.h"
#include "MantidDataObjects/EventWorkspace.h"
#include "MantidTestHelpers/WorkspaceCreationHelper.h"

using namespace Mantid;
using namespace Mantid::Kernel;


class ConvertToMatrixWorkspaceTest : public CxxTest::TestSuite
{
class ConvertToMatrixWorkspaceTest : public CxxTest::TestSuite {
public:
void testName()
{
Mantid::Algorithms::ConvertToMatrixWorkspace cloner;
TS_ASSERT_EQUALS( cloner.name(), "ConvertToMatrixWorkspace" )
}

void testVersion()
{
Mantid::Algorithms::ConvertToMatrixWorkspace cloner;
TS_ASSERT_EQUALS( cloner.version(), 1 )
}

void testInit()
{
Mantid::Algorithms::ConvertToMatrixWorkspace cloner;
TS_ASSERT_THROWS_NOTHING( cloner.initialize() )
TS_ASSERT( cloner.isInitialized() )
}


void testExec_2D_to_2D()
{
Mantid::Algorithms::ConvertToMatrixWorkspace cloner;
if ( !cloner.isInitialized() ) cloner.initialize();
//create 2D input workspace
Mantid::API::MatrixWorkspace_sptr in = WorkspaceCreationHelper::Create2DWorkspace(5,10);
//add instance to variable 'in'
Mantid::API::AnalysisDataService::Instance().addOrReplace("in", in);
TS_ASSERT_THROWS_NOTHING( cloner.setPropertyValue("InputWorkspace","in") )
TS_ASSERT_THROWS_NOTHING( cloner.setPropertyValue("OutputWorkspace","out") )
TS_ASSERT( cloner.execute() )

Mantid::API::MatrixWorkspace_sptr out;
//retrieve OutputWorkspace produced by execute and set it to out
TS_ASSERT_THROWS_NOTHING( out = Mantid::API::AnalysisDataService::Instance().retrieveWS<Mantid::API::MatrixWorkspace>("out") );
TS_ASSERT(out);
if (!out) return;


// Best way to test this is to use the CheckWorkspacesMatch algorithm
Mantid::Algorithms::CheckWorkspacesMatch checker;
checker.initialize();
checker.setPropertyValue("Workspace1","in");
checker.setPropertyValue("Workspace2","out");
checker.execute();

TS_ASSERT_EQUALS( checker.getPropertyValue("Result"), checker.successString() );
Mantid::API::AnalysisDataService::Instance().remove("in");
}

void testExec_Event_to_2D()
{
Mantid::Algorithms::ConvertToMatrixWorkspace cloner;
if ( !cloner.isInitialized() ) cloner.initialize();

Mantid::DataObjects::EventWorkspace_sptr in = WorkspaceCreationHelper::createEventWorkspaceWithFullInstrument(1, 10);
Mantid::API::AnalysisDataService::Instance().addOrReplace("in", in);
TS_ASSERT_THROWS_NOTHING( cloner.setPropertyValue("InputWorkspace", "in") )
TS_ASSERT_THROWS_NOTHING( cloner.setPropertyValue("OutputWorkspace","out") )
TS_ASSERT( cloner.execute() )

Mantid::API::MatrixWorkspace_sptr out;
TS_ASSERT_THROWS_NOTHING(
out = Mantid::API::AnalysisDataService::Instance().retrieveWS<Mantid::API::MatrixWorkspace>("out") );
TS_ASSERT(out);
if (!out) return;

TS_ASSERT_EQUALS( in->getNumberHistograms(), out->getNumberHistograms());
TS_ASSERT_EQUALS( in->getInstrument()->getName(), out->getInstrument()->getName());
TS_ASSERT_EQUALS( in->getInstrument()->isParametrized(), out->getInstrument()->isParametrized());
for (size_t i=0; i < out->getNumberHistograms(); i++)
{
const Mantid::API::ISpectrum * inSpec = in->getSpectrum(i);
const Mantid::API:: ISpectrum * outSpec = out->getSpectrum(i);
TS_ASSERT_EQUALS( inSpec->getSpectrumNo(), outSpec->getSpectrumNo());
TS_ASSERT_EQUALS( *inSpec->getDetectorIDs().begin(), *outSpec->getDetectorIDs().begin());
TS_ASSERT_EQUALS( in->readX(i), out->readX(i));
TS_ASSERT_EQUALS( in->readY(i), out->readY(i));
TS_ASSERT_EQUALS( in->readE(i), out->readE(i));
}

Mantid::API::AnalysisDataService::Instance().remove("in");
}
void testName() {
Mantid::Algorithms::ConvertToMatrixWorkspace cloner;
TS_ASSERT_EQUALS(cloner.name(), "ConvertToMatrixWorkspace")
}

void testVersion() {
Mantid::Algorithms::ConvertToMatrixWorkspace cloner;
TS_ASSERT_EQUALS(cloner.version(), 1)
}

void testInit() {
Mantid::Algorithms::ConvertToMatrixWorkspace cloner;
TS_ASSERT_THROWS_NOTHING(cloner.initialize())
TS_ASSERT(cloner.isInitialized())
}

void testExec_2D_to_2D() {
Mantid::Algorithms::ConvertToMatrixWorkspace cloner;
cloner.setChild(true);
cloner.initialize();
// create 2D input workspace
Mantid::API::MatrixWorkspace_sptr in =
WorkspaceCreationHelper::Create2DWorkspace(5, 10);
// add instance to variable 'in'

Mantid::API::MatrixWorkspace_sptr out;

TS_ASSERT_THROWS_NOTHING(cloner.setProperty("InputWorkspace", in))
TS_ASSERT_THROWS_NOTHING(cloner.setProperty("OutputWorkspace", "out"))
TS_ASSERT(cloner.execute())


// retrieve OutputWorkspace produced by execute and set it to out
TS_ASSERT_THROWS_NOTHING(
out = cloner.getProperty("OutputWorkspace"));
TS_ASSERT(out);
if (!out)
return;

// Best way to test this is to use the CheckWorkspacesMatch algorithm
Mantid::Algorithms::CheckWorkspacesMatch checker;
checker.initialize();
checker.setProperty("Workspace1", in);
checker.setProperty("Workspace2", out);
checker.execute();

TS_ASSERT_EQUALS(checker.getPropertyValue("Result"),
checker.successString());

}

void testExec_Event_to_2D() {
Mantid::Algorithms::ConvertToMatrixWorkspace cloner;
cloner.setChild(true);
cloner.initialize();
Mantid::DataObjects::EventWorkspace_sptr in =
WorkspaceCreationHelper::createEventWorkspaceWithFullInstrument(1, 10);

TS_ASSERT_THROWS_NOTHING(cloner.setProperty("InputWorkspace", in))
TS_ASSERT_THROWS_NOTHING(cloner.setPropertyValue("OutputWorkspace", "out"))
TS_ASSERT(cloner.execute())

Mantid::API::MatrixWorkspace_sptr out;
TS_ASSERT_THROWS_NOTHING(
out = cloner.getProperty("OutputWorkspace"));
TS_ASSERT(out);
if (!out)
return;

TS_ASSERT_EQUALS(in->getNumberHistograms(),
out->getNumberHistograms());
TS_ASSERT_EQUALS(in->getInstrument()->getName(),
out->getInstrument()->getName());
TS_ASSERT_EQUALS(in->getInstrument()->isParametrized(),
out->getInstrument()->isParametrized());
for (size_t i = 0; i < out->getNumberHistograms(); i++) {
const Mantid::API::ISpectrum *inSpec = in->getSpectrum(i);
const Mantid::API::ISpectrum *outSpec = out->getSpectrum(i);
TS_ASSERT_EQUALS(inSpec->getSpectrumNo(), outSpec->getSpectrumNo());
TS_ASSERT_EQUALS(*inSpec->getDetectorIDs().begin(),
*outSpec->getDetectorIDs().begin());
TS_ASSERT_EQUALS(in->readX(i), out->readX(i));
TS_ASSERT_EQUALS(in->readY(i), out->readY(i));
TS_ASSERT_EQUALS(in->readE(i), out->readE(i));
}
}
};

#endif /*CONVERTTOMATRIXWORKSPACETEST_H_*/
11 changes: 11 additions & 0 deletions Code/Mantid/docs/source/interfaces/TOF_Converter.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
Time of Flight Converter
========================

.. contents:: Table of Contents
:local:

Overview
--------
This is an overview

.. categories:: Interfaces

0 comments on commit 7e95763

Please sign in to comment.