Skip to content
Snippets Groups Projects
Commit fbb89073 authored by Roman Tolchenov's avatar Roman Tolchenov
Browse files

Fixing the builds. Re #7369.

parent d135d02c
No related branches found
No related tags found
No related merge requests found
......@@ -407,73 +407,72 @@ public:
void testConvolution_fit_resolution()
{
boost::shared_ptr<WorkspaceTester> data(new WorkspaceTester());
data->init(1,100,100);
for(size_t i = 0; i < data->blocksize(); i++)
{
data->dataX(0)[i] = -10.0 + 0.2 * double( i );
}
boost::shared_ptr<WorkspaceTester> data(new WorkspaceTester());
data->init(1,100,100);
for(size_t i = 0; i < data->blocksize(); i++)
{
data->dataX(0)[i] = -10.0 + 0.2 * double( i );
}
Convolution conv;
boost::shared_ptr<Convolution> conv( new Convolution );
boost::shared_ptr<ConvolutionTest_Gauss> res( new ConvolutionTest_Gauss );
res->setParameter("c",0);
res->setParameter("h",1);
res->setParameter("s",0.3);
res->setParameter("s",2);
conv.addFunction(res);
conv->addFunction(res);
boost::shared_ptr<ConvolutionTest_Lorentz> fun( new ConvolutionTest_Lorentz );
fun->setParameter("c",0);
fun->setParameter("h",2);
fun->setParameter("w",0.5);
conv.addFunction(fun);
conv->addFunction(fun);
auto &x = data->dataX(0);
auto &y = data->dataY(0);
FunctionDomain1DView xView( &x[0], x.size() );
FunctionValues voigt( xView );
conv.function( xView, voigt );
conv->function( xView, voigt );
for(size_t i = 0; i < x.size(); i++)
{
y[i] = voigt.getCalculated(i);
}
conv.setParameter("f0.h", 0.5);
conv.setParameter("f0.s", 0.5);
conv.setParameter("f1.h", 1);
conv.setParameter("f1.w", 1);
conv->setParameter("f0.h", 0.5);
conv->setParameter("f0.s", 0.5);
conv->setParameter("f1.h", 1);
conv->setParameter("f1.w", 1);
Fit fit;
fit.initialize();
fit.setPropertyValue("Function",conv.asString());
fit.setPropertyValue("Function",conv->asString());
fit.setProperty("InputWorkspace",data);
fit.setProperty("WorkspaceIndex",0);
fit.execute();
IFunction_sptr out = fit.getProperty("Function");
// by default convolution keeps parameters of the resolution (function #0) fixed
TS_ASSERT_EQUALS( out->getParameter("f0.h"), conv.getParameter("f0.h") );
TS_ASSERT_EQUALS( out->getParameter("f0.s"), conv.getParameter("f0.s") );
TS_ASSERT_EQUALS( out->getParameter("f0.h"), conv->getParameter("f0.h") );
TS_ASSERT_EQUALS( out->getParameter("f0.s"), conv->getParameter("f0.s") );
// fit is not very good
TS_ASSERT_LESS_THAN( 0.1, fabs(out->getParameter("f1.w") - conv.getParameter("f1.w")) );
TS_ASSERT_LESS_THAN( 0.1, fabs(out->getParameter("f1.w") - conv->getParameter("f1.w")) );
conv.setAttributeValue("FixResolution",false);
conv->setAttributeValue("FixResolution",false);
Fit fit1;
fit1.initialize();
fit1.setPropertyValue("Function",conv.asString());
fit1.setProperty("Function",boost::dynamic_pointer_cast<IFunction>( conv ));
fit1.setProperty("InputWorkspace",data);
fit1.setProperty("WorkspaceIndex",0);
fit1.execute();
out = fit1.getProperty("Function");
// resolution parameters change and close to the initial values
TS_ASSERT_DELTA( out->getParameter("f0.s"), 0.3, 0.00001 );
TS_ASSERT_DELTA( out->getParameter("f0.s"), 2.0, 0.00001 );
TS_ASSERT_DELTA( out->getParameter("f1.w"), 0.5, 0.00001 );
}
......
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