Skip to content

Commit

Permalink
Completed unit test. Refs #7653.
Browse files Browse the repository at this point in the history
  • Loading branch information
wdzhou committed Sep 6, 2013
1 parent 830ec7b commit d3de072
Show file tree
Hide file tree
Showing 2 changed files with 173 additions and 26 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -522,7 +522,7 @@ namespace CurveFitting
// Calculate Lorenzian part
double omega2(0.);

cout << "Eta = " << eta << "; X = " << x << " N = " << N << ".\n";
g_log.debug() << "Eta = " << eta << "; X = " << x << " N = " << N << ".\n";

if (eta >= 1.0E-8)
{
Expand All @@ -533,17 +533,17 @@ namespace CurveFitting
double omega2b = imag(exp(q)*Mantid::API::E1(q));
omega2 = -1.0*N*eta*(omega2a + omega2b)*TWO_OVER_PI;

cout << "Exp(p) = " << exp(p) << ", Exp(q) = " << exp(q) << ".\n";
g_log.debug() << "Exp(p) = " << exp(p) << ", Exp(q) = " << exp(q) << ".\n";

if (omega2 != omega2)
{
cout << "Omega2 is not physical. Omega2a = " << omega2a
<< ", Omega2b = " << omega2b << ", p = " << p.real() << ", " << p.imag() << ".\n";
g_log.debug() << "Omega2 is not physical. Omega2a = " << omega2a
<< ", Omega2b = " << omega2b << ", p = " << p.real() << ", " << p.imag() << ".\n";
}
else
{
cout << "X = " << x << " is OK. Omega 2 = " << omega2 << ", Omega2A = " << omega2a
<< ", Omega2B = " << omega2b << "\n";
g_log.debug() << "X = " << x << " is OK. Omega 2 = " << omega2 << ", Omega2A = " << omega2a
<< ", Omega2B = " << omega2b << "\n";
}

}
Expand All @@ -563,7 +563,8 @@ namespace CurveFitting
}
}

g_log.information() << "[DB] Final Value = " << omega << endl;
g_log.debug() << "[DB] Final Value of Omega = " << omega << ".\n";

return omega;
}

Expand Down
184 changes: 165 additions & 19 deletions Code/Mantid/Framework/CurveFitting/test/NeutronBk2BkExpConvPVoigtTest.h
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ class NeutronBk2BkExpConvPVoigtTest : public CxxTest::TestSuite
//----------------------------------------------------------------------------------------------
/** Set and get parameter
*/
void Ptest_accessParameter()
void test_accessParameter()
{
NeutronBk2BkExpConvPVoigt func;
func.initialize();
Expand All @@ -40,7 +40,7 @@ class NeutronBk2BkExpConvPVoigtTest : public CxxTest::TestSuite
//----------------------------------------------------------------------------------------------
/** Calculate peak positions: data is from Fullprof's sample: arg_si
*/
void Ptest_calculatePeakPositions()
void test_calculatePeakPositions()
{
// (1,1,1)
NeutronBk2BkExpConvPVoigt func;
Expand Down Expand Up @@ -103,7 +103,7 @@ class NeutronBk2BkExpConvPVoigtTest : public CxxTest::TestSuite
//----------------------------------------------------------------------------------------------
/** Calculate peak positions: data is from Fullprof's sample: arg_si
*/
void TODOtest_calculatePeakShape()
void test_calculatePeakShape()
{
NeutronBk2BkExpConvPVoigt func;
func.initialize();
Expand Down Expand Up @@ -132,33 +132,179 @@ class NeutronBk2BkExpConvPVoigtTest : public CxxTest::TestSuite
TS_ASSERT_DELTA(tofh1, 23421.7207, 0.01);

// Peak shape
func.setParameter("Height", 1.0);
func.setParameter("Height", (24061.1-114.9)/0.0166701); // TOF=23425.

double fwhm = func.fwhm();
TS_ASSERT_DELTA(fwhm, 47.049, 0.001);

cout << "FWHM = " << fwhm << ".\n";
// Calcualte peak profile
vector<double> vec_tof;
genPeak111TOF(vec_tof);
vector<double> vecY(vec_tof.size(), 0.0);
func.function(vecY, vec_tof);
/*
for (size_t i = 0; i < vec_tof.size(); ++i)
cout << vec_tof[i] << "\t\t" << vecY[i] + 114.6 << "\n";
*/

vector<double> vecX;
double tof = tofh1 - 10*fwhm;
while (tof < tofh1 + 10*fwhm)
{
vecX.push_back(tof);
tof += fwhm*0.1;
}
vector<double> vecY(vecX.size(), 0.0);
func.function(vecY, vecX);
for (size_t i = 0; i < vecX.size(); ++i)
cout << vecX[i] << "\t\t" << vecY[i] << "\n";
return;
}

TS_ASSERT_EQUALS(1, 432);
//----------------------------------------------------------------------------------------------
/** Generate TOF values for peak (111) from Fullprof's arg_si example
*/
void genPeak111TOF(vector<double>& vec_x)
{
vec_x.clear();
vec_x.push_back(23005.0000);
vec_x.push_back(23010.0000);
vec_x.push_back(23015.0000);
vec_x.push_back(23020.0000);
vec_x.push_back(23025.0000);
vec_x.push_back(23030.0000);
vec_x.push_back(23035.0000);
vec_x.push_back(23040.0000);
vec_x.push_back(23045.0000);
vec_x.push_back(23050.0000);
vec_x.push_back(23055.0000);
vec_x.push_back(23060.0000);
vec_x.push_back(23065.0000);
vec_x.push_back(23070.0000);
vec_x.push_back(23075.0000);
vec_x.push_back(23080.0000);
vec_x.push_back(23085.0000);
vec_x.push_back(23090.0000);
vec_x.push_back(23095.0000);
vec_x.push_back(23100.0000);
vec_x.push_back(23105.0000);
vec_x.push_back(23110.0000);
vec_x.push_back(23115.0000);
vec_x.push_back(23120.0000);
vec_x.push_back(23125.0000);
vec_x.push_back(23130.0000);
vec_x.push_back(23135.0000);
vec_x.push_back(23140.0000);
vec_x.push_back(23145.0000);
vec_x.push_back(23150.0000);
vec_x.push_back(23155.0000);
vec_x.push_back(23160.0000);
vec_x.push_back(23165.0000);
vec_x.push_back(23170.0000);
vec_x.push_back(23175.0000);
vec_x.push_back(23180.0000);
vec_x.push_back(23185.0000);
vec_x.push_back(23190.0000);
vec_x.push_back(23195.0000);
vec_x.push_back(23200.0000);
vec_x.push_back(23205.0000);
vec_x.push_back(23210.0000);
vec_x.push_back(23215.0000);
vec_x.push_back(23220.0000);
vec_x.push_back(23225.0000);
vec_x.push_back(23230.0000);
vec_x.push_back(23235.0000);
vec_x.push_back(23240.0000);
vec_x.push_back(23245.0000);
vec_x.push_back(23250.0000);
vec_x.push_back(23255.0000);
vec_x.push_back(23260.0000);
vec_x.push_back(23265.0000);
vec_x.push_back(23270.0000);
vec_x.push_back(23275.0000);
vec_x.push_back(23280.0000);
vec_x.push_back(23285.0000);
vec_x.push_back(23290.0000);
vec_x.push_back(23295.0000);
vec_x.push_back(23300.0000);
vec_x.push_back(23305.0000);
vec_x.push_back(23310.0000);
vec_x.push_back(23315.0000);
vec_x.push_back(23320.0000);
vec_x.push_back(23325.0000);
vec_x.push_back(23330.0000);
vec_x.push_back(23335.0000);
vec_x.push_back(23340.0000);
vec_x.push_back(23345.0000);
vec_x.push_back(23350.0000);
vec_x.push_back(23355.0000);
vec_x.push_back(23360.0000);
vec_x.push_back(23365.0000);
vec_x.push_back(23370.0000);
vec_x.push_back(23375.0000);
vec_x.push_back(23380.0000);
vec_x.push_back(23385.0000);
vec_x.push_back(23390.0000);
vec_x.push_back(23395.0000);
vec_x.push_back(23400.0000);
vec_x.push_back(23405.0000);
vec_x.push_back(23410.0000);
vec_x.push_back(23415.0000);
vec_x.push_back(23420.0000);
vec_x.push_back(23425.0000);
vec_x.push_back(23430.0000);
vec_x.push_back(23435.0000);
vec_x.push_back(23440.0000);
vec_x.push_back(23445.0000);
vec_x.push_back(23450.0000);
vec_x.push_back(23455.0000);
vec_x.push_back(23460.0000);
vec_x.push_back(23465.0000);
vec_x.push_back(23470.0000);
vec_x.push_back(23475.0000);
vec_x.push_back(23480.0000);
vec_x.push_back(23485.0000);
vec_x.push_back(23490.0000);
vec_x.push_back(23495.0000);
vec_x.push_back(23500.0000);
vec_x.push_back(23505.0000);
vec_x.push_back(23510.0000);
vec_x.push_back(23515.0000);
vec_x.push_back(23520.0000);
vec_x.push_back(23525.0000);
vec_x.push_back(23530.0000);
vec_x.push_back(23535.0000);
vec_x.push_back(23540.0000);
vec_x.push_back(23545.0000);
vec_x.push_back(23550.0000);
vec_x.push_back(23555.0000);
vec_x.push_back(23560.0000);
vec_x.push_back(23565.0000);
vec_x.push_back(23570.0000);
vec_x.push_back(23575.0000);
vec_x.push_back(23580.0000);
vec_x.push_back(23585.0000);
vec_x.push_back(23590.0000);
vec_x.push_back(23595.0000);
vec_x.push_back(23600.0000);
vec_x.push_back(23605.0000);
vec_x.push_back(23610.0000);
vec_x.push_back(23615.0000);
vec_x.push_back(23620.0000);
vec_x.push_back(23625.0000);
vec_x.push_back(23630.0000);
vec_x.push_back(23635.0000);
vec_x.push_back(23640.0000);
vec_x.push_back(23645.0000);
vec_x.push_back(23650.0000);
vec_x.push_back(23655.0000);
vec_x.push_back(23660.0000);
vec_x.push_back(23665.0000);
vec_x.push_back(23670.0000);
vec_x.push_back(23675.0000);
vec_x.push_back(23680.0000);
vec_x.push_back(23685.0000);
vec_x.push_back(23690.0000);
vec_x.push_back(23695.0000);
vec_x.push_back(23700.0000);
}


//----------------------------------------------------------------------------------------------
/** Calculate peak positions: data is from Fullprof's sample: arg_si
*/
void Ptest_calculateVulcanPeakPositions()
void XcalculateVulcanPeakPositions()
{
// TODO - This will be left to the ticket for VULCAN
// (2, 2, 0)
NeutronBk2BkExpConvPVoigt func;
func.initialize();
Expand Down Expand Up @@ -227,7 +373,7 @@ class NeutronBk2BkExpConvPVoigtTest : public CxxTest::TestSuite
//----------------------------------------------------------------------------------------------
/** Calculate peak positions: data is from Fullprof's sample: arg_si
*/
void test_calculateVulcanProfile()
void Xtest_calculateVulcanProfile()
{
NeutronBk2BkExpConvPVoigt func;
func.initialize();
Expand Down

0 comments on commit d3de072

Please sign in to comment.