Skip to content
Snippets Groups Projects
Commit 06fe5e08 authored by Janik Zikovsky's avatar Janik Zikovsky
Browse files

Refs #4733 fix test and add argument to setTo()

parent e8571f06
No related merge requests found
......@@ -47,7 +47,7 @@ namespace API
virtual coord_t getInverseVolume() const = 0;
virtual signal_t * getSignalArray() = 0;
virtual signal_t * getErrorSquaredArray() = 0;
virtual void setTo(signal_t signal, signal_t errorSquared) = 0;
virtual void setTo(signal_t signal, signal_t errorSquared, signal_t numEvents) = 0;
virtual Mantid::Kernel::VMD getCenter(size_t linearIndex) const = 0;
virtual void setSignalAt(size_t index, signal_t value) = 0;
virtual void setErrorSquaredAt(size_t index, signal_t value) = 0;
......
......@@ -146,7 +146,7 @@ namespace MDEvents
return m_numEvents;
}
void setTo(signal_t signal, signal_t errorSquared);
void setTo(signal_t signal, signal_t errorSquared, signal_t numEvents);
void applyImplicitFunction(Mantid::Geometry::MDImplicitFunction * function, signal_t signal, signal_t errorSquared);
......
......@@ -323,9 +323,6 @@ namespace MDEvents
{
BoxController_sptr bc = ws->getBoxController();
// Start with signal at 0.0
outWS->setTo(0.0, 0.0);
// Cache some data to speed up accessing them a bit
indexMultiplier = new size_t[m_outD];
for (size_t d=0; d<m_outD; d++)
......@@ -339,6 +336,9 @@ namespace MDEvents
errors = outWS->getErrorSquaredArray();
numEvents = outWS->getNumEventsArray();
// Start with signal/error/numEvents at 0.0
outWS->setTo(0.0, 0.0, 0.0);
// The dimension (in the output workspace) along which we chunk for parallel processing
// TODO: Find the smartest dimension to chunk against
size_t chunkDimension = 0;
......
......@@ -113,7 +113,7 @@ namespace MDEvents
// Initialize them to NAN (quickly)
signal_t nan = std::numeric_limits<signal_t>::quiet_NaN();
this->setTo(nan, nan);
this->setTo(nan, nan, nan);
}
//----------------------------------------------------------------------------------------------
......@@ -159,13 +159,15 @@ namespace MDEvents
*
* @param signal :: signal value to set
* @param errorSquared :: error (squared) value to set
* @param numEvents :: the number of events in each bin.
*/
void MDHistoWorkspace::setTo(signal_t signal, signal_t errorSquared)
void MDHistoWorkspace::setTo(signal_t signal, signal_t errorSquared, signal_t numEvents)
{
for (size_t i=0; i < m_length; i++)
{
m_signals[i] = signal;
m_errorsSquared[i] = errorSquared;
m_numEvents[i] = numEvents;
m_masks[i] = false; //Not masked by default;
}
}
......
......@@ -149,6 +149,7 @@ public:
{
// Nothing rejected
TS_ASSERT_DELTA(out->getSignalAt(i), expected_signal, 1e-5);
TS_ASSERT_DELTA(out->getNumEventsAt(i), expected_signal, 1e-5);
TS_ASSERT_DELTA(out->getErrorAt(i), sqrt(expected_signal), 1e-5);
}
else
......
......@@ -183,7 +183,7 @@ public:
MDHistoDimension_sptr(new MDHistoDimension("x","x","m", 0.0, 10.0, 50)),
MDHistoDimension_sptr(new MDHistoDimension("y","y","m", 0.0, 10.0, 100)) );
Mantid::MDEvents::MDHistoWorkspace_sptr ws1(ws);
ws1->setTo(1.234, 5.678);
ws1->setTo(1.234, 5.678, 1.0);
do_test_MDHisto(ws1);
}
......
......@@ -840,21 +840,21 @@ public:
a->setUsingMask(*mask, *c);
checkWorkspace(a, 1.23, 3.0);
mask->setTo(1.0, 0.0);
mask->setTo(1.0, 0.0, 0.0);
a->setUsingMask(*mask, *c);
checkWorkspace(a, 4.56, 2.0);
a->setUsingMask(*mask, 7.89, 11);
checkWorkspace(a, 7.89, 11*11 );
mask->setTo(0.0, 0.0);
mask->setTo(0.0, 0.0, 0.0);
a->setUsingMask(*mask, 6.66, 7.77);
checkWorkspace(a, 7.89, 11*11 );
// Now a partial mask
mask->setSignalAt(0, 1.0);
mask->setSignalAt(2, 1.0);
a->setTo(1.23, 4.56);
a->setTo(1.23, 4.56, 0.0);
a->setUsingMask(*mask, 6.78, 7.89);
TS_ASSERT_DELTA( a->getSignalAt(0), 6.78, 1e-5);
TS_ASSERT_DELTA( a->getSignalAt(1), 1.23, 1e-5);
......
......@@ -239,9 +239,7 @@ namespace MDEventsTestHelper
);
}
Mantid::MDEvents::MDHistoWorkspace_sptr ws_sptr(ws);
ws_sptr->setTo(signal, errorSquared);
for (size_t i=0; i<ws_sptr->getNPoints(); i++)
ws_sptr->setNumEventsAt(i, numEvents);
ws_sptr->setTo(signal, errorSquared, numEvents);
if (!name.empty())
AnalysisDataService::Instance().addOrReplace(name, ws_sptr);
return ws_sptr;
......@@ -279,7 +277,7 @@ namespace MDEventsTestHelper
Mantid::MDEvents::MDHistoWorkspace * ws = NULL;
ws = new Mantid::MDEvents::MDHistoWorkspace(dimensions);
Mantid::MDEvents::MDHistoWorkspace_sptr ws_sptr(ws);
ws_sptr->setTo(signal, errorSquared);
ws_sptr->setTo(signal, errorSquared, 1.0 /* num events */);
if (!name.empty())
AnalysisDataService::Instance().addOrReplace(name, ws_sptr);
return ws_sptr;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment