Skip to content

Commit

Permalink
Added simple unit test for parameter workspace.
Browse files Browse the repository at this point in the history
refs #9880
  • Loading branch information
stuartcampbell committed Sep 25, 2014
1 parent 10ebdc6 commit f4b627d
Showing 1 changed file with 16 additions and 57 deletions.
73 changes: 16 additions & 57 deletions Code/Mantid/Framework/Algorithms/test/ConvertUnitsTest.h
Expand Up @@ -192,89 +192,48 @@ class ConvertUnitsTest : public CxxTest::TestSuite
TS_ASSERT(myAlg.isInitialized());

const std::string workspaceName("_ws_testConvertUsingDetectorTable");
int nBins = 10;
MatrixWorkspace_sptr WS = WorkspaceCreationHelper::Create2DWorkspaceBinned(2, nBins, 0.0, 10.0);
int nBins = 1000;
MatrixWorkspace_sptr WS = WorkspaceCreationHelper::Create2DWorkspaceBinned(2, nBins, 5.0, 50.0);
WS->getAxis(0)->unit() = UnitFactory::Instance().create("TOF");

AnalysisDataService::Instance().add(workspaceName,WS);

// Create TableWorkspace with values in it

ITableWorkspace_sptr pars = WorkspaceFactory::Instance().createTable("TableWorkspace");
pars->addColumn("int", "spectra");
pars->addColumn("double", "l1");
pars->addColumn("double", "l1");
pars->addColumn("double", "l2");
pars->addColumn("double", "twotheta");
pars->addColumn("double", "efixed");
pars->addColumn("int", "emode");

API::TableRow row0 = pars->appendRow();
// row0 << 1 << 10.0 << 90.0 << 7.0 << 1;
row0 << 1 << 50.0 << 10.0 << 90.0 << 7.0 << 1;
row0 << 1 << 50.0 << 10.0 << M_PI/2.0 << 7.0 << 1;

API::TableRow row1 = pars->appendRow();
// row1 << 2 << 10.0 << 90.0 << 7.0 << 1;
row1 << 2 << 50.0 << 10.0 << 90.0 << 7.0 << 1;
row1 << 2 << 100.0 << 10.0 << 90.0 << 7.0 << 1;

// Set the properties
myAlg.setRethrows(true);
myAlg.setPropertyValue("InputWorkspace", workspaceName);
myAlg.setPropertyValue("OutputWorkspace", workspaceName);
myAlg.setPropertyValue("Target", "Wavelength");
myAlg.setPropertyValue("Target", "Energy");
myAlg.setProperty("DetectorParameters", pars);

myAlg.execute();

auto outWS = AnalysisDataService::Instance().retrieveWS<MatrixWorkspace>(workspaceName);

// TODO: test that output workspace values


AnalysisDataService::Instance().remove(workspaceName);
}

void testConvertUsingDetectorTablewithoutL1()
{
ConvertUnits myAlg;
myAlg.initialize();
TS_ASSERT(myAlg.isInitialized());

const std::string workspaceName("_ws_testConvertUsingDetectorTable");
int nBins = 10;
MatrixWorkspace_sptr WS = WorkspaceCreationHelper::Create2DWorkspaceBinned(2, nBins, 0.0, 10.0);
WS->getAxis(0)->unit() = UnitFactory::Instance().create("TOF");

AnalysisDataService::Instance().add(workspaceName,WS);

// Create TableWorkspace with values in it

ITableWorkspace_sptr pars = WorkspaceFactory::Instance().createTable("TableWorkspace");
pars->addColumn("int", "spectra");
pars->addColumn("double", "l2");
pars->addColumn("double", "twotheta");
pars->addColumn("double", "efixed");
pars->addColumn("int", "emode");

API::TableRow row0 = pars->appendRow();
row0 << 1 << 10.0 << 90.0 << 7.0 << 1;

API::TableRow row1 = pars->appendRow();
row1 << 2 << 10.0 << 90.0 << 7.0 << 1;

// Set the properties
myAlg.setRethrows(true);
myAlg.setPropertyValue("InputWorkspace", workspaceName);
myAlg.setPropertyValue("OutputWorkspace", workspaceName);
myAlg.setPropertyValue("Target", "Wavelength");
myAlg.setProperty("DetectorParameters", pars);

myAlg.execute();

auto outWS = AnalysisDataService::Instance().retrieveWS<MatrixWorkspace>(workspaceName);

// TODO: test that output workspace values


// for (int j=0; j < outWS->getNumberHistograms(); ++j) {
// for (int i=0; i < outWS->blocksize(); ++i) {
// std::cout << "dataX[" << j << "]["<< i << "] = " << outWS->dataX(j)[i] << std::endl;
// }
// }

TS_ASSERT_DELTA( outWS->dataX(1)[1], 25.3444, 0.01 );
// TODO: Add more checks.

AnalysisDataService::Instance().remove(workspaceName);
}

Expand Down

0 comments on commit f4b627d

Please sign in to comment.