Skip to content

Commit

Permalink
refs #4328. Unit test Properties.
Browse files Browse the repository at this point in the history
 Also fix file path errors and ensure that python errors make it back up to the logs.
  • Loading branch information
OwenArnold committed Jan 13, 2012
1 parent e324334 commit 7363bf6
Show file tree
Hide file tree
Showing 2 changed files with 53 additions and 8 deletions.
40 changes: 40 additions & 0 deletions Code/Mantid/Framework/MDAlgorithms/test/ConvertToMDEventsTest.h
Original file line number Diff line number Diff line change
Expand Up @@ -632,6 +632,46 @@ void testExecQ3D()
AnalysisDataService::Instance().remove("OutputWorkspace");
}

//DO NOT DISABLE THIS TEST
void testAlgorithmProperties()
{
/*
The Create MD Workspace GUI runs this algorithm internally.
If property names and property allowed values here change, that interface will break.
This unit test is designed to flag up changes here. If property values and names here do need to be changed,
1) They must also be updated in CreateMDWorkspaceAlgDialog.cpp.
2) It should then be confirmed that that the Create MD Workspace custom interface still works!
3) Finally this unit test should be updated so that the tests pass.
*/

ConvertToMDEvents alg;
alg.initialize();

Mantid::Kernel::Property *QDimProperty;
TSM_ASSERT_THROWS_NOTHING("Property name has changed. This has broken Create MD Workspace GUI. Fix CreateMDWorkspaceGUI!", QDimProperty = alg.getProperty("QDimensions"));
TSM_ASSERT_THROWS_NOTHING("Property name has changed. This has broken Create MD Workspace GUI. Fix CreateMDWorkspaceGUI!", QDimProperty = alg.getProperty("dEAnalysisMode"));
TSM_ASSERT_THROWS_NOTHING("Property name has changed. This has broken Create MD Workspace GUI. Fix CreateMDWorkspaceGUI!", QDimProperty = alg.getProperty("OtherDimensions"));
TSM_ASSERT_THROWS_NOTHING("Property name has changed. This has broken Create MD Workspace GUI. Fix CreateMDWorkspaceGUI!", QDimProperty = alg.getProperty("MinValues"));
TSM_ASSERT_THROWS_NOTHING("Property name has changed. This has broken Create MD Workspace GUI. Fix CreateMDWorkspaceGUI!", QDimProperty = alg.getProperty("MaxValues"));

typedef std::set<std::string> PropertyAllowedValues;
QDimProperty =alg.getProperty("QDimensions");
PropertyAllowedValues QDimValues = QDimProperty->allowedValues();
TSM_ASSERT_EQUALS("QDimensions property values have changed. This has broken Create MD Workspace GUI. Fix CreateMDWorkspaceGUI!", 3, QDimValues.size());
TSM_ASSERT("QDimensions property values have changed. This has broken Create MD Workspace GUI. Fix CreateMDWorkspaceGUI!", QDimValues.find("") != QDimValues.end());
TSM_ASSERT("QDimensions property values have changed. This has broken Create MD Workspace GUI. Fix CreateMDWorkspaceGUI!", QDimValues.find("|Q|") != QDimValues.end());
TSM_ASSERT("QDimensions property values have changed. This has broken Create MD Workspace GUI. Fix CreateMDWorkspaceGUI!", QDimValues.find("QhQkQl") != QDimValues.end());

Mantid::Kernel::Property *dEAnalysisMode =alg.getProperty("dEAnalysisMode");
PropertyAllowedValues dEAnalysisModeValues = dEAnalysisMode->allowedValues();
TSM_ASSERT_EQUALS("QDimensions property values have changed. This has broken Create MD Workspace GUI. Fix CreateMDWorkspaceGUI!", 4, dEAnalysisModeValues.size());
TSM_ASSERT("dEAnalysisMode property values have changed. This has broken Create MD Workspace GUI. Fix CreateMDWorkspaceGUI!", dEAnalysisModeValues.find("") != dEAnalysisModeValues.end());
TSM_ASSERT("dEAnalysisMode property values have changed. This has broken Create MD Workspace GUI. Fix CreateMDWorkspaceGUI!", dEAnalysisModeValues.find("Direct") != dEAnalysisModeValues.end());
TSM_ASSERT("dEAnalysisMode property values have changed. This has broken Create MD Workspace GUI. Fix CreateMDWorkspaceGUI!", dEAnalysisModeValues.find("Indirect") != dEAnalysisModeValues.end());
TSM_ASSERT("dEAnalysisMode property values have changed. This has broken Create MD Workspace GUI. Fix CreateMDWorkspaceGUI!", dEAnalysisModeValues.find("Elastic") != dEAnalysisModeValues.end());
}


ConvertToMDEventsTest(){
pAlg = std::auto_ptr<Convert2AnyTestHelper>(new Convert2AnyTestHelper());
Expand Down
21 changes: 13 additions & 8 deletions Code/Mantid/MantidQt/CustomInterfaces/src/CreateMDWorkspace.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -143,7 +143,8 @@ void CreateMDWorkspace::findUBMatrixClicked()
" FindSXPeaksDialog(InputWorkspace='%1', OutputWorkspace='%1_peaks')\n"
" print 'SUCCESS'\n"
"except:\n"
" print 'FAIL'";
" print 'FAIL'\n"
" raise\n";
args = QString(memento->getId().c_str());
command = command.arg(args);
result = runPythonCode(command).trimmed();
Expand All @@ -165,7 +166,8 @@ void CreateMDWorkspace::findUBMatrixClicked()
" CopySample(InputWorkspace='%1_peaks',OutputWorkspace='%1',CopyName='0',CopyMaterial='0',CopyEnvironment='0',CopyShape='0',CopyLattice='1')\n"
" print '%(a)s, %(b)s, %(c)s, %(alpha)s, %(beta)s, %(gamma)s' % {'a': a, 'b' : b, 'c' : c, 'alpha' : alpha, 'beta' : beta, 'gamma' : gamma}\n"
"except:\n"
" print 'FAIL'";
" print 'FAIL'\n"
" raise\n";

command = command.arg(args);
result = runPythonCode(command).trimmed();
Expand Down Expand Up @@ -378,7 +380,8 @@ void CreateMDWorkspace::setGoniometerClicked()
" SetGoniometerDialog(Workspace=wsName)\n"
" print 'SUCCESS'\n"
"except:\n"
" print 'FAIL'\n";
" print 'FAIL'\n"
" raise\n";

pyInput = pyInput.arg(id);
QString pyOutput = runPythonCode(pyInput).trimmed();
Expand Down Expand Up @@ -484,10 +487,11 @@ void CreateMDWorkspace::createMDWorkspaceClicked()

QString command = "try:\n"
" ConvertToMDEvents(InputWorkspace='%1',OutputWorkspace='%1_md',OtherDimensions='%2',dEAnalysisMode='%3',QDimensions='%4',MinValues='%5',MaxValues='%6',UsePreprocessedDetectors='%7')\n"
" SaveMD(InputWorkspace='%1_md', Filename='%8/%1_md.nxs',MakeFileBacked='1')\n"
" mtd.deleteWorkspace('%1_md')\n"
" SaveMD(InputWorkspace='%1_md', Filename=r'%8/%1_md.nxs',MakeFileBacked='1')\n"
" DeleteWorkspace(Workspace='%1_md')\n"
"except:\n"
" print 'FAIL'";
" print 'FAIL'\n"
" raise\n";

QString id(currentMemento->getId().c_str());
command = command.arg(id, otherDimensions, analysisMode, qDimension, minExtents, maxExtents, preProcessedDetectors, location);
Expand All @@ -511,9 +515,10 @@ void CreateMDWorkspace::createMDWorkspaceClicked()
if(m_uiForm.ck_merge->isChecked())
{
QString command = "try:"
" MergeMD(Filenames='%1',OutputFilename='%2/%3.nxs',OutputWorkspace='%3')\n"
" MergeMD(Filenames=r'%1',OutputFilename=r'%2/%3.nxs',OutputWorkspace='%3')\n"
"except:\n"
" print 'FAIL'";
" print 'FAIL'\n"
" raise\n";

command = command.arg(fileNames, location, mergedWorkspaceName);
QString pyOutput = runPythonCode(command).trimmed();
Expand Down

0 comments on commit 7363bf6

Please sign in to comment.