From 96bbbbe0f68daa49ef9524b5ab37ea981b201ddf Mon Sep 17 00:00:00 2001
From: Verena Reimund <reimund@ill.eu>
Date: Tue, 15 May 2018 15:12:45 +0200
Subject: [PATCH] Some cleanup and enable one failing test

I conclude that the recursive call (Stitch1DMany calls itself) does not work with processGroups: some output from gdb

Stitch1DMany-[Notice] Stitch1DMany started
GroupWorkspaces-[Notice] GroupWorkspaces successful, Duration 0.00 seconds
420	      AnalysisDataService::Instance().retrieveWS<Workspace>(groupName);
419	  m_outputWorkspace =
420	      AnalysisDataService::Instance().retrieveWS<Workspace>(groupName);
422	  this->setProperty("OutputWorkspace", m_outputWorkspace);
(gdb) p m_outputWorkspace
$22 = {
  px = 0x1894f60,
  pn = {
    pi_ = 0x1894f40
  }
}
(gdb) n
423	  this->setProperty("OutScaleFactors", m_scaleFactors);
424	  return true;  //!!! STOP HERE??
412	  IAlgorithm_sptr groupAlg = createChildAlgorithm("GroupWorkspaces");
368	  std::string outName;
367	  std::string groupName = this->getProperty("OutputWorkspace");
366	  std::vector<std::string> toGroup; // List of workspaces to be grouped
424	  return true;
425	}
Mantid::API::Algorithm::doCallProcessGroups (this=0x7fffffffd150, startTime=...) at Algorithm.cpp:1284
Mantid::API::Algorithm::execute (this=0x7fffffffd150) at Algorithm.cpp:440
Stitch1DManyTest::test_two_groups_scale_factor_from_period_history (this=0x1867380) at Stitch1DManyTest.h:1230
1230	    TS_ASSERT(alg.isExecuted());
1233	    Workspace_sptr outws = alg.getProperty("OutputWorkspace");
1234	    TS_ASSERT(outws);

In Stitch1DManyTest::test_two_groups_scale_factor_from_period_history:
Stitch1DManyTest.h:1234: Error: Assertion failed: outws

Refs #22197
---
 Framework/Algorithms/src/Stitch1DMany.cpp    |  4 +-
 Framework/Algorithms/test/Stitch1DManyTest.h | 52 ++++++++++----------
 2 files changed, 27 insertions(+), 29 deletions(-)

diff --git a/Framework/Algorithms/src/Stitch1DMany.cpp b/Framework/Algorithms/src/Stitch1DMany.cpp
index dc0b9ea0273..beca75ba0e7 100644
--- a/Framework/Algorithms/src/Stitch1DMany.cpp
+++ b/Framework/Algorithms/src/Stitch1DMany.cpp
@@ -261,8 +261,6 @@ void Stitch1DMany::exec() {
   this->setProperty("OutScaleFactors", m_scaleFactors);
 }
 
-// doStitch1D(m_inputWSMatrix[i], periodScaleFactors, outStitchedWS, outName);
-
 /** Performs the Stitch1D algorithm at a specific workspace index.
  * @param toStitch :: Vector of workspaces to be stitched
  * @param scaleRhsWS :: Scaling either with respect to left or right workspaces
@@ -421,7 +419,7 @@ bool Stitch1DMany::processGroups() {
   m_outputWorkspace =
       AnalysisDataService::Instance().retrieveWS<Workspace>(groupName);
 
-  this->setProperty("OutputWorkspace", m_outputWorkspace); // groupName
+  this->setProperty("OutputWorkspace", m_outputWorkspace);
   this->setProperty("OutScaleFactors", m_scaleFactors);
   return true;
 }
diff --git a/Framework/Algorithms/test/Stitch1DManyTest.h b/Framework/Algorithms/test/Stitch1DManyTest.h
index 3cc7fb883a3..d50aa659466 100644
--- a/Framework/Algorithms/test/Stitch1DManyTest.h
+++ b/Framework/Algorithms/test/Stitch1DManyTest.h
@@ -155,7 +155,7 @@ public:
     alg.initialize();
     alg.setProperty("InputWorkspaces", "ws1");
     alg.setProperty("Params", "0.1, 0.1, 1.8");
-    alg.setPropertyValue("OutputWorkspace", "outws");
+    alg.setProperty("OutputWorkspace", "outws");
     TS_ASSERT_THROWS(alg.execute(), std::runtime_error);
   }
 
@@ -167,7 +167,7 @@ public:
     alg.setProperty("Params", "0.1");
     alg.setProperty("StartOverlaps", "-0.5, -0.6");
     alg.setProperty("EndOverlaps", "0.5");
-    alg.setPropertyValue("OutputWorkspace", "outws");
+    alg.setProperty("OutputWorkspace", "outws");
     TS_ASSERT_THROWS(alg.execute(), std::runtime_error);
   }
 
@@ -179,7 +179,7 @@ public:
     alg.setProperty("Params", "0.1");
     alg.setProperty("StartOverlaps", "-0.5");
     alg.setProperty("EndOverlaps", "0.5, 0.6");
-    alg.setPropertyValue("OutputWorkspace", "outws");
+    alg.setProperty("OutputWorkspace", "outws");
     TS_ASSERT_THROWS(alg.execute(), std::runtime_error);
   }
 
@@ -191,7 +191,7 @@ public:
     alg.setProperty("Params", "0.1");
     alg.setProperty("UseManualScaleFactors", "1");
     alg.setProperty("ManualScaleFactors", "0.5, 0.7");
-    alg.setPropertyValue("OutputWorkspace", "outws");
+    alg.setProperty("OutputWorkspace", "outws");
     TS_ASSERT_THROWS(alg.execute(), std::runtime_error);
   }
 
@@ -206,7 +206,7 @@ public:
     alg.initialize();
     alg.setProperty("InputWorkspaces", "ws1, ws2");
     alg.setProperty("Params", "0.1");
-    alg.setPropertyValue("OutputWorkspace", "outws");
+    alg.setProperty("OutputWorkspace", "outws");
     TS_ASSERT_THROWS(alg.execute(), std::runtime_error);
   }
 
@@ -223,7 +223,7 @@ public:
     alg.initialize();
     alg.setProperty("InputWorkspaces", "group1, ws1");
     alg.setProperty("Params", "0.1");
-    alg.setPropertyValue("OutputWorkspace", "outws");
+    alg.setProperty("OutputWorkspace", "outws");
     TS_ASSERT_THROWS(alg.execute(), std::runtime_error);
   }
 
@@ -242,7 +242,7 @@ public:
     alg.initialize();
     alg.setProperty("InputWorkspaces", "group1, group2");
     alg.setProperty("Params", "0.1");
-    alg.setPropertyValue("OutputWorkspace", "outws");
+    alg.setProperty("OutputWorkspace", "outws");
     TS_ASSERT_THROWS(alg.execute(), std::runtime_error);
   }
 
@@ -265,7 +265,7 @@ public:
     alg.initialize();
     alg.setProperty("InputWorkspaces", "group1, group2");
     alg.setProperty("Params", "0.1, 0.1, 2.6");
-    alg.setPropertyValue("OutputWorkspace", "outws");
+    alg.setProperty("OutputWorkspace", "outws");
     TS_ASSERT_THROWS(alg.execute(), std::runtime_error);
   }
 
@@ -301,7 +301,7 @@ public:
     alg.setProperty("InputWorkspaces", "group1, group2, group3");
     alg.setProperty("Params", "0.1, 0.1, 2.6");
     alg.setProperty("ScaleFactorFromPeriod", 4);
-    alg.setPropertyValue("OutputWorkspace", "outws");
+    alg.setProperty("OutputWorkspace", "outws");
     TS_ASSERT_THROWS(alg.execute(), std::runtime_error);
   }
 
@@ -321,7 +321,7 @@ public:
     alg.setProperty("Params", "0.1, 0.1, 1.8");
     alg.setProperty("StartOverlaps", "0.8");
     alg.setProperty("EndOverlaps", "1.1");
-    alg.setPropertyValue("OutputWorkspace", "outws");
+    alg.setProperty("OutputWorkspace", "outws");
     alg.execute();
     TS_ASSERT(alg.isExecuted());
 
@@ -361,7 +361,7 @@ public:
     alg2.setProperty("Params", "0.1, 0.1, 1.8");
     alg2.setProperty("StartOverlap", "0.8");
     alg2.setProperty("EndOverlap", "1.1");
-    alg2.setPropertyValue("OutputWorkspace", "outws");
+    alg2.setProperty("OutputWorkspace", "outws");
     alg2.execute();
     MatrixWorkspace_sptr stitched2 = alg2.getProperty("OutputWorkspace");
 
@@ -392,7 +392,7 @@ public:
     alg.setProperty("Params", "0.1, 0.1, 2.6");
     alg.setProperty("StartOverlaps", "0.8, 1.6");
     alg.setProperty("EndOverlaps", "1.1, 1.8");
-    alg.setPropertyValue("OutputWorkspace", "outws");
+    alg.setProperty("OutputWorkspace", "outws");
     alg.execute();
     TS_ASSERT(alg.isExecuted());
 
@@ -450,7 +450,7 @@ public:
     alg.initialize();
     alg.setProperty("InputWorkspaces", "ws1, ws2, ws3");
     alg.setProperty("Params", "0.1, 0.1, 2.6");
-    alg.setPropertyValue("OutputWorkspace", "outws");
+    alg.setProperty("OutputWorkspace", "outws");
     TS_ASSERT_THROWS_NOTHING(alg.execute());
     TS_ASSERT(alg.isExecuted());
   }
@@ -473,7 +473,7 @@ public:
     alg.setProperty("Params", "0.1, 0.1, 2.6");
     alg.setProperty("StartOverlaps", "0.8, 1.6");
     alg.setProperty("EndOverlaps", "1.1, 1.8");
-    alg.setPropertyValue("OutputWorkspace", "outws");
+    alg.setProperty("OutputWorkspace", "outws");
     alg.setProperty("UseManualScaleFactors", "1");
     alg.setProperty("ManualScaleFactors", "0.5");
     alg.execute();
@@ -532,7 +532,7 @@ public:
     alg.setProperty("Params", "0.1, 0.1, 2.6");
     alg.setProperty("StartOverlaps", "0.8, 1.6");
     alg.setProperty("EndOverlaps", "1.1, 1.8");
-    alg.setPropertyValue("OutputWorkspace", "outws");
+    alg.setProperty("OutputWorkspace", "outws");
     alg.setProperty("UseManualScaleFactors", "1");
     alg.setProperty("ManualScaleFactors", "0.5, 0.7");
     alg.execute();
@@ -593,7 +593,7 @@ public:
     alg.setProperty("Params", "0.1");
     alg.setProperty("StartOverlaps", "0.8");
     alg.setProperty("EndOverlaps", "1.1");
-    alg.setPropertyValue("OutputWorkspace", "outws");
+    alg.setProperty("OutputWorkspace", "outws");
     TS_ASSERT_THROWS(alg.execute(), std::runtime_error);
 
     AnalysisDataService::Instance().clear();
@@ -624,7 +624,7 @@ public:
     alg.setProperty("Params", "0.1, 0.1, 2.6");
     alg.setProperty("StartOverlaps", "0.8, 1.6");
     alg.setProperty("EndOverlaps", "1.1, 1.8");
-    alg.setPropertyValue("OutputWorkspace", "outws");
+    alg.setProperty("OutputWorkspace", "outws");
     alg.execute();
     TS_ASSERT(alg.isExecuted())
 
@@ -703,7 +703,7 @@ public:
     alg.setProperty("Params", "0.1");
     alg.setProperty("StartOverlaps", "0.8");
     alg.setProperty("EndOverlaps", "1.1");
-    alg.setPropertyValue("OutputWorkspace", "outws");
+    alg.setProperty("OutputWorkspace", "outws");
     alg.execute();
     TS_ASSERT(alg.isExecuted());
 
@@ -799,7 +799,7 @@ public:
     alg.setProperty("EndOverlaps", "1.1");
     alg.setProperty("UseManualScaleFactors", "1");
     alg.setProperty("ManualScaleFactors", "0.5");
-    alg.setPropertyValue("OutputWorkspace", "outws");
+    alg.setProperty("OutputWorkspace", "outws");
     alg.execute();
     TS_ASSERT(alg.isExecuted());
 
@@ -906,7 +906,7 @@ public:
     alg.setProperty("EndOverlaps", "1.1, 1.9");
     alg.setProperty("UseManualScaleFactors", "1");
     alg.setProperty("ManualScaleFactors", "0.5, 0.7");
-    alg.setPropertyValue("OutputWorkspace", "outws");
+    alg.setProperty("OutputWorkspace", "outws");
     alg.execute();
     TS_ASSERT(alg.isExecuted());
 
@@ -1022,7 +1022,7 @@ public:
     alg.setProperty("EndOverlaps", "1.1, 1.9");
     alg.setProperty("UseManualScaleFactors", "1");
     alg.setProperty("ScaleFactorFromPeriod", 2);
-    alg.setPropertyValue("OutputWorkspace", "outws");
+    alg.setProperty("OutputWorkspace", "outws");
     alg.execute();
 
     // By keeping ManualScaleFactors empty (default value) it allows workspaces
@@ -1112,7 +1112,7 @@ public:
     alg.setProperty("Params", "0.1, 0.1, 1.8");
     alg.setProperty("StartOverlaps", "0.8");
     alg.setProperty("EndOverlaps", "1.1");
-    alg.setPropertyValue("OutputWorkspace", "outws");
+    alg.setProperty("OutputWorkspace", "outws");
     alg.execute();
     TS_ASSERT(alg.isExecuted());
 
@@ -1161,7 +1161,7 @@ public:
     alg.setProperty("Params", "0.1");
     alg.setProperty("StartOverlaps", "0.8");
     alg.setProperty("EndOverlaps", "1.1");
-    alg.setPropertyValue("OutputWorkspace", "outws");
+    alg.setProperty("OutputWorkspace", "outws");
     alg.execute();
     TS_ASSERT(alg.isExecuted());
 
@@ -1230,8 +1230,8 @@ public:
     TS_ASSERT(alg.isExecuted());
 
     // Test output ws
-    //Workspace_sptr outws = alg.getProperty("OutputWorkspace");
-    //TS_ASSERT(outws);
+    Workspace_sptr outws = alg.getProperty("OutputWorkspace");
+    TS_ASSERT(outws);
     auto group =
         AnalysisDataService::Instance().retrieveWS<WorkspaceGroup>("outws");
     auto stitched =
@@ -1275,7 +1275,7 @@ public:
     //alg.initialize();
     //alg.setProperty("InputWorkspaces", "ws1, ws2");
     //alg.setProperty("UseManualScaleFactors", "1");
-    //alg.setPropertyValue("OutputWorkspace", "ws");
+    //alg.setProperty("OutputWorkspace", "ws");
     //alg.execute();
     //TS_ASSERT(alg.isExecuted());
     Mantid::API::AnalysisDataService::Instance().remove("ws1");
-- 
GitLab