Commit 067598eb authored by Guillaume Pasero's avatar Guillaume Pasero

ENH: support tolerance ratio in test kernel, small refac

parent 87904a08
......@@ -60,38 +60,45 @@ public:
typedef std::vector<std::string> StringList;
typedef StringList::const_iterator StringListIt;
typedef std::vector<double> EpsilonList;
typedef EpsilonList::const_iterator EpsilonListIt;
TestHelper();
~TestHelper() override;
int RegressionTestAllImages(const StringList& baselineFilenamesImage,
const StringList& testFilenamesImage);
const StringList& testFilenamesImage,
const EpsilonList& epsilons);
int RegressionTestAllMetaData(const StringList& baselineFilenamesMetaData,
const StringList& testFilenamesMetaData);
const StringList& testFilenamesMetaData,
const EpsilonList& epsilons);
int RegressionTestAllAscii(const StringList& baselineFilenamesAscii,
const StringList& testFilenamesAscii,
const EpsilonList& epsilons,
const StringList& ignoredLines);
int RegressionTestAllDiff(const StringList& baselineFilenamesAscii,
const StringList& testFilenamesAscii,
const EpsilonList& epsilons,
const StringList& ignoredLines);
int RegressionTestAllBinary(const StringList& baselineFilenamesBinary,
const StringList& testFilenamesBinary);
int RegressionTestAllOgr(const StringList& baselineFilenamesOgr,
const StringList& testFilenamesOgr);
const StringList& testFilenamesOgr,
const EpsilonList& epsilons);
itkSetMacro(ReportErrors, bool);
itkBooleanMacro(ReportErrors);
itkSetMacro(IgnoreLineOrder, bool);
itkBooleanMacro(IgnoreLineOrder);
itkSetMacro(ToleranceDiffValue, double);
itkSetMacro(Epsilon, double);
itkSetMacro(EpsilonBoundaryChecking, double);
itkSetMacro(ToleranceRatio, double);
private:
......@@ -157,8 +164,7 @@ private:
static void DumpOGRFeature(FILE* fileid, OGRFeature* feature, char** papszOptions = nullptr);
static void DumpOGRGeometry(FILE* fileid, OGRGeometry* geometry, const char * pszPrefix, char** papszOptions = nullptr);
double m_ToleranceDiffValue;
double m_Epsilon;
double m_ToleranceRatio;
double m_EpsilonBoundaryChecking;
bool m_ReportErrors;
bool m_IgnoreLineOrder;
......
......@@ -69,6 +69,25 @@ void LoadTestEnv()
itk::Statistics::MersenneTwisterRandomVariateGenerator::GetInstance()->SetSeed(121212);
}
/** CheckOption, utility function to test the presence of a given token
* in the argument list. The function also checks if there are at least 'min'
* arguments left to parse the token (token included) */
bool CheckOption(char* arg,const char* token,int ac, int min)
{
if( strcmp(arg, token) == 0 )
{
if (min < ac)
{
return true;
}
else
{
std::cerr << "Can't parse token '"<<token<< "', need at least "<<min-1<<" arguments after.\n";
}
}
return false;
}
int main(int ac, char* av[])
{
#ifdef OTB_USE_MPI
......@@ -76,10 +95,13 @@ int main(int ac, char* av[])
#endif
bool lFlagRegression(false);
double lToleranceDiffValue(0);
double lEpsilon(0);
std::vector<double> toleranceDiffValues;
std::vector<double> toleranceOgrValues;
std::vector<double> toleranceMetaValues;
std::vector<double> toleranceAsciiValues;
bool lIgnoreOrder(false);
double epsilonBoundary(0.0);
double lToleranceRatio(0.0);
typedef otb::TestHelper::StringList StringList;
StringList baselineFilenamesBinary;
......@@ -125,168 +147,159 @@ int main(int ac, char* av[])
}
else
{
if (strcmp(av[1], "--with-threads") == 0)
{
int numThreads = atoi(av[2]);
itk::MultiThreader::SetGlobalDefaultNumberOfThreads(numThreads);
av += 2;
ac -= 2;
}
else if (strcmp(av[1], "--without-threads") == 0)
int ac0 = ac+1;
while (strncmp(av[1], "--", 2) == 0 && ac0 > ac)
{
itk::MultiThreader::SetGlobalDefaultNumberOfThreads(1);
av += 1;
ac -= 1;
}
if (strcmp(av[1], "--ignore-order") == 0)
{
lIgnoreOrder = true;
av += 1;
ac -= 1;
}
if (strcmp(av[1], "--epsilon-boundary") == 0)
{
epsilonBoundary = atof(av[2]);
av += 2;
ac -= 2;
}
if (strcmp(av[1], "--compare-image") == 0)
{
lFlagRegression = true;
lToleranceDiffValue = (double) (::atof(av[2]));
baselineFilenamesImage.reserve(1);
testFilenamesImage.reserve(1);
baselineFilenamesImage.push_back(av[3]);
testFilenamesImage.push_back(av[4]);
av += 4;
ac -= 4;
}
else if (strcmp(av[1], "--compare-n-images") == 0)
{
lFlagRegression = true;
lToleranceDiffValue = (double) (::atof(av[2]));
// Number of comparisons to do
unsigned int nbComparisons = (unsigned int) (::atoi(av[3]));
baselineFilenamesImage.reserve(nbComparisons);
testFilenamesImage.reserve(nbComparisons);
// Retrieve all the file names
for (unsigned int i = 0; i < nbComparisons; ++i)
ac0 = ac;
if (CheckOption(av[1],"--with-threads", ac, 2))
{
baselineFilenamesImage.push_back(av[4 + 2 * i]);
testFilenamesImage.push_back(av[5 + 2 * i]);
int numThreads = atoi(av[2]);
itk::MultiThreader::SetGlobalDefaultNumberOfThreads(numThreads);
av += 2;
ac -= 2;
}
av += 3 + 2 * nbComparisons;
ac -= 3 + 2 * nbComparisons;
}
else if (strcmp(av[1], "--compare-binary") == 0)
{
lFlagRegression = true;
baselineFilenamesBinary.reserve(1);
testFilenamesBinary.reserve(1);
baselineFilenamesBinary.push_back(av[2]);
testFilenamesBinary.push_back(av[3]);
av += 3;
ac -= 3;
}
else if (strcmp(av[1], "--compare-n-binary") == 0)
{
lFlagRegression = true;
unsigned int nbComparisons = (unsigned int) (::atoi(av[2]));
baselineFilenamesBinary.reserve(nbComparisons);
testFilenamesBinary.reserve(nbComparisons);
// Retrieve all the file names
for (unsigned int i = 0; i < nbComparisons; ++i)
else if (CheckOption(av[1], "--without-threads",ac, 1))
{
baselineFilenamesBinary.push_back(av[3 + 2 * i]);
testFilenamesBinary.push_back(av[4 + 2 * i]);
itk::MultiThreader::SetGlobalDefaultNumberOfThreads(1);
av += 1;
ac -= 1;
}
av += 2 + 2 * nbComparisons;
ac -= 2 + 2 * nbComparisons;
}
/************************************************************************/
// COMPARE ASCII
else if (strcmp(av[1], "--compare-ascii") == 0)
{
lFlagRegression = true;
lEpsilon = (double) (::atof(av[2]));
baselineFilenamesAscii.reserve(1);
testFilenamesAscii.reserve(1);
baselineFilenamesAscii.push_back(av[3]);
testFilenamesAscii.push_back(av[4]);
av += 4;
ac -= 4;
if (ac > 1)
else if (CheckOption(av[1], "--ignore-order", ac, 1))
{
lIgnoreOrder = true;
av += 1;
ac -= 1;
}
else if (CheckOption(av[1], "--epsilon-boundary", ac, 2))
{
if (strcmp(av[1], "--ignore-lines-with") == 0)
epsilonBoundary = atof(av[2]);
av += 2;
ac -= 2;
}
else if (CheckOption(av[1], "--compare-image", ac, 4))
{
lFlagRegression = true;
toleranceDiffValues.push_back((double) (::atof(av[2])));
baselineFilenamesImage.push_back(av[3]);
testFilenamesImage.push_back(av[4]);
av += 4;
ac -= 4;
}
else if (CheckOption(av[1], "--compare-n-images", ac, 3))
{
lFlagRegression = true;
// Number of comparisons to do
unsigned int nbComparisons = (unsigned int) (::atoi(av[3]));
double tol = (double) (::atof(av[2]));
toleranceDiffValues.reserve(toleranceDiffValues.size() + nbComparisons);
baselineFilenamesImage.reserve(baselineFilenamesImage.size() + nbComparisons);
testFilenamesImage.reserve(testFilenamesImage.size() + nbComparisons);
// Retrieve all the file names
for (unsigned int i = 0; i < nbComparisons; ++i)
{
unsigned int nbIgnoredLines = (unsigned int) (::atoi(av[2]));
for (unsigned int i = 0; i < nbIgnoredLines; ++i)
{
ignoredLines.push_back(av[3 + i]);
}
av += 2 + nbIgnoredLines;
ac -= 2 + nbIgnoredLines;
toleranceDiffValues.push_back(tol);
baselineFilenamesImage.push_back(av[4 + 2 * i]);
testFilenamesImage.push_back(av[5 + 2 * i]);
}
av += 3 + 2 * nbComparisons;
ac -= 3 + 2 * nbComparisons;
}
}
/************************************************************************/
else if (strcmp(av[1], "--compare-n-ascii") == 0)
{
lFlagRegression = true;
lEpsilon = (double) (::atof(av[2]));
// Number of comparisons to do
unsigned int nbComparisons = (unsigned int) (::atoi(av[3]));
baselineFilenamesAscii.reserve(nbComparisons);
testFilenamesAscii.reserve(nbComparisons);
// Retrieve all the file names
for (unsigned int i = 0; i < nbComparisons; ++i)
else if (CheckOption(av[1], "--compare-binary", ac, 3))
{
baselineFilenamesAscii.push_back(av[4 + 2 * i]);
testFilenamesAscii.push_back(av[5 + 2 * i]);
lFlagRegression = true;
baselineFilenamesBinary.reserve(1);
testFilenamesBinary.reserve(1);
baselineFilenamesBinary.push_back(av[2]);
testFilenamesBinary.push_back(av[3]);
av += 3;
ac -= 3;
}
av += 3 + 2 * nbComparisons;
ac -= 3 + 2 * nbComparisons;
if (ac > 1)
else if (CheckOption(av[1], "--compare-n-binary", ac, 2))
{
if (strcmp(av[1], "--ignore-lines-with") == 0)
lFlagRegression = true;
unsigned int nbComparisons = (unsigned int) (::atoi(av[2]));
baselineFilenamesBinary.reserve(nbComparisons);
testFilenamesBinary.reserve(nbComparisons);
// Retrieve all the file names
for (unsigned int i = 0; i < nbComparisons; ++i)
{
unsigned int nbIgnoredLines = (unsigned int) (::atoi(av[2]));
for (unsigned int i = 0; i < nbIgnoredLines; ++i)
{
ignoredLines.push_back(av[3 + i]);
}
av += 2 + nbIgnoredLines;
ac -= 2 + nbIgnoredLines;
baselineFilenamesBinary.push_back(av[3 + 2 * i]);
testFilenamesBinary.push_back(av[4 + 2 * i]);
}
av += 2 + 2 * nbComparisons;
ac -= 2 + 2 * nbComparisons;
}
/************************************************************************/
// COMPARE ASCII
else if (CheckOption(av[1], "--compare-ascii", ac, 4))
{
lFlagRegression = true;
toleranceAsciiValues.push_back((double) (::atof(av[2])));
baselineFilenamesAscii.push_back(av[3]);
testFilenamesAscii.push_back(av[4]);
av += 4;
ac -= 4;
}
else if (CheckOption(av[1], "--compare-n-ascii", ac, 3))
{
lFlagRegression = true;
double tol = (double) (::atof(av[2]));
// Number of comparisons to do
unsigned int nbComparisons = (unsigned int) (::atoi(av[3]));
baselineFilenamesAscii.reserve(baselineFilenamesAscii.size() + nbComparisons);
testFilenamesAscii.reserve(testFilenamesAscii.size() + nbComparisons);
// Retrieve all the file names
for (unsigned int i = 0; i < nbComparisons; ++i)
{
toleranceAsciiValues.push_back(tol);
baselineFilenamesAscii.push_back(av[4 + 2 * i]);
testFilenamesAscii.push_back(av[5 + 2 * i]);
}
av += 3 + 2 * nbComparisons;
ac -= 3 + 2 * nbComparisons;
}
else if (CheckOption(av[1], "--ignore-lines-with", ac, 2))
{
unsigned int nbIgnoredLines = (unsigned int) (::atoi(av[2]));
for (unsigned int i = 0; i < nbIgnoredLines; ++i)
{
ignoredLines.push_back(av[3 + i]);
}
av += 2 + nbIgnoredLines;
ac -= 2 + nbIgnoredLines;
}
/************************************************************************/
else if (CheckOption(av[1], "--compare-metadata", ac, 4))
{
lFlagRegression = true;
toleranceMetaValues.push_back((double) (::atof(av[2])));
baselineFilenamesMetaData.push_back(av[3]);
testFilenamesMetaData.push_back(av[4]);
av += 4;
ac -= 4;
}
else if (CheckOption(av[1], "--compare-ogr", ac, 4))
{
lFlagRegression = true;
toleranceOgrValues.push_back((double) (::atof(av[2])));
baselineFilenamesOgr.push_back(av[3]);
testFilenamesOgr.push_back(av[4]);
av += 4;
ac -= 4;
}
else if (CheckOption(av[1], "--tolerance-ratio", ac, 2))
{
lToleranceRatio = (double) (::atof(av[2]));
av += 2;
ac -= 2;
}
} // end while
}
else if (strcmp(av[1], "--compare-metadata") == 0)
{
lFlagRegression = true;
lToleranceDiffValue = (double) (::atof(av[2]));
baselineFilenamesMetaData.reserve(1);
testFilenamesMetaData.reserve(1);
baselineFilenamesMetaData.push_back(av[3]);
testFilenamesMetaData.push_back(av[4]);
av += 4;
ac -= 4;
}
else if (strcmp(av[1], "--compare-ogr") == 0)
// Check there is one argument left for the test
if (ac >= 2)
{
lFlagRegression = true;
lToleranceDiffValue = (double) (::atof(av[2]));
baselineFilenamesOgr.reserve(1);
testFilenamesOgr.reserve(1);
baselineFilenamesOgr.push_back(av[3]);
testFilenamesOgr.push_back(av[4]);
av += 4;
ac -= 4;
testToRun = av[1];
}
testToRun = av[1];
}
otb::ConfigurationManager::InitOpenMPThreads();
......@@ -297,7 +310,7 @@ int main(int ac, char* av[])
if ( j == StringToTestFunctionMap.end() )
{
PrintAvailableTests();
std::cerr << "Failure: " << testToRun << ": no test identified " << testToRun << "\n";
std::cerr << "Failure: no test identified for '" << testToRun << "'\n";
result = -1;
}
else
......@@ -356,8 +369,7 @@ int main(int ac, char* av[])
// Make a list of possible baselines
testHelper->SetIgnoreLineOrder(lIgnoreOrder);
testHelper->SetToleranceDiffValue(lToleranceDiffValue); // What's the difference
testHelper->SetEpsilon(lEpsilon); // maybe we should consolidate...
testHelper->SetToleranceRatio(lToleranceRatio);
if (epsilonBoundary != 0.0)
{
testHelper->SetEpsilonBoundaryChecking(epsilonBoundary);
......@@ -366,21 +378,20 @@ int main(int ac, char* av[])
// Non regression test for images
if ((baselineFilenamesImage.size() > 0) && (testFilenamesImage.size() > 0))
{
result += testHelper->RegressionTestAllImages(baselineFilenamesImage, testFilenamesImage);
result += testHelper->RegressionTestAllImages(baselineFilenamesImage, testFilenamesImage, toleranceDiffValues);
}
/***********************************************************************************/
// Non-regression test for metadata.
if ((baselineFilenamesMetaData.size() > 0) && (testFilenamesMetaData.size() > 0))
{
result += testHelper->RegressionTestAllMetaData(baselineFilenamesMetaData, testFilenamesMetaData);
result += testHelper->RegressionTestAllMetaData(baselineFilenamesMetaData, testFilenamesMetaData, toleranceMetaValues);
}
/***********************************************************************************/
// Non regression test for ascii files
if ((baselineFilenamesAscii.size() > 0) && (testFilenamesAscii.size() > 0))
{
//result += testHelper->RegressionTestAllAscii(baselineFilenamesAscii, testFilenamesAscii, ignoredLines);
result += testHelper->RegressionTestAllDiff(baselineFilenamesAscii, testFilenamesAscii, ignoredLines);
result += testHelper->RegressionTestAllDiff(baselineFilenamesAscii, testFilenamesAscii, toleranceAsciiValues, ignoredLines);
}
/******************************************************************************/
// Non regression test for binary files
......@@ -392,7 +403,7 @@ int main(int ac, char* av[])
// Non regression test for OGR files
if ((baselineFilenamesOgr.size() > 0) && (testFilenamesOgr.size() > 0))
{
result += testHelper->RegressionTestAllOgr(baselineFilenamesOgr, testFilenamesOgr);
result += testHelper->RegressionTestAllOgr(baselineFilenamesOgr, testFilenamesOgr, toleranceOgrValues);
}
std::cout << "------------- End control baseline tests -------------" << std::endl;
}
......
......@@ -106,16 +106,19 @@ void TestHelper::CheckValueTolerance(const char *comment, double ref, double tes
}
int TestHelper::RegressionTestAllImages(const StringList& baselineFilenamesImage,
const StringList& testFilenamesImage)
const StringList& testFilenamesImage,
const EpsilonList& epsilons)
{
int result = 0;
StringListIt itbaselineFilenames = baselineFilenamesImage.begin();
StringListIt itTestFilenames = testFilenamesImage.begin();
EpsilonListIt itEpsilon = epsilons.begin();
int cpt(1);
// For each couple of baseline and test file, do the comparison
for (; (itbaselineFilenames != baselineFilenamesImage.end())
&& (itTestFilenames != testFilenamesImage.end());
++itbaselineFilenames, ++itTestFilenames)
&& (itTestFilenames != testFilenamesImage.end())
&& (itEpsilon != epsilons.end());
++itbaselineFilenames, ++itTestFilenames, ++itEpsilon)
{
std::string baselineFilenameImage = (*itbaselineFilenames);
std::string testFilenameImage = (*itTestFilenames);
......@@ -131,7 +134,7 @@ int TestHelper::RegressionTestAllImages(const StringList& baselineFilenamesImage
this->ReportErrorsOff();
baseline->second = this->RegressionTestImage(cpt, testFilenameImage.c_str(),
(baseline->first).c_str(),
m_ToleranceDiffValue);
*itEpsilon);
multiResult = baseline->second;
++baseline;
......@@ -143,7 +146,7 @@ int TestHelper::RegressionTestAllImages(const StringList& baselineFilenamesImage
baseline->second
= this->RegressionTestImage(cpt, testFilenameImage.c_str(),
(baseline->first).c_str(),
m_ToleranceDiffValue);
*itEpsilon);
}
++cpt;
result += multiResult;
......@@ -152,16 +155,19 @@ int TestHelper::RegressionTestAllImages(const StringList& baselineFilenamesImage
}
int TestHelper::RegressionTestAllMetaData(const StringList& baselineFilenamesMetaData,
const StringList& testFilenamesMetaData)
const StringList& testFilenamesMetaData,
const EpsilonList& epsilons)
{
int result = 0;
// Creates iterators on baseline filenames vector and test filenames vector
StringListIt itbaselineFilenames = baselineFilenamesMetaData.begin();
StringListIt itTestFilenames = testFilenamesMetaData.begin();
EpsilonListIt itEpsilon = epsilons.begin();
// For each couple of baseline and test file, do the comparison
for (; (itbaselineFilenames != baselineFilenamesMetaData.end())
&& (itTestFilenames != testFilenamesMetaData.end());
++itbaselineFilenames, ++itTestFilenames)
&& (itTestFilenames != testFilenamesMetaData.end())
&& (itEpsilon != epsilons.end());
++itbaselineFilenames, ++itTestFilenames, ++itEpsilon)
{
std::string baselineFilenameImage = (*itbaselineFilenames);
std::string testFilenameImage = (*itTestFilenames);
......@@ -177,7 +183,7 @@ int TestHelper::RegressionTestAllMetaData(const StringList& baselineFilenamesMet
this->ReportErrorsOff();
baseline->second = this->RegressionTestMetaData(testFilenameImage.c_str(),
(baseline->first).c_str(),
m_ToleranceDiffValue);
*itEpsilon);
multiResult = baseline->second;
++baseline;
......@@ -189,7 +195,7 @@ int TestHelper::RegressionTestAllMetaData(const StringList& baselineFilenamesMet
baseline->second
= this->RegressionTestMetaData(testFilenameImage.c_str(),
(baseline->first).c_str(),
m_ToleranceDiffValue);
*itEpsilon);
}
result += multiResult;
}
......@@ -198,6 +204,7 @@ int TestHelper::RegressionTestAllMetaData(const StringList& baselineFilenamesMet
int TestHelper::RegressionTestAllAscii(const StringList& baselineFilenamesAscii,
const StringList& testFilenamesAscii,
const EpsilonList& epsilons,
const StringList& ignoredLines)
{
int result = 0;
......@@ -205,6 +212,7 @@ int TestHelper::RegressionTestAllAscii(const StringList& baselineFilenamesAscii,
StringListIt itbaselineFilenames = baselineFilenamesAscii.begin();
StringListIt itTestFilenames = testFilenamesAscii.begin();
StringListIt itIgnoredLines = ignoredLines.begin();
EpsilonListIt itEpsilon = epsilons.begin();
// Warning message
if (ignoredLines.size() > 0)
......@@ -219,8 +227,9 @@ int TestHelper::RegressionTestAllAscii(const StringList& baselineFilenamesAscii,
// For each couple of baseline and test file, do the comparison
for (; (itbaselineFilenames != baselineFilenamesAscii.end())
&& (itTestFilenames != testFilenamesAscii.end());
++itbaselineFilenames, ++itTestFilenames)
&& (itTestFilenames != testFilenamesAscii.end())
&& (itEpsilon != epsilons.end());
++itbaselineFilenames, ++itTestFilenames, ++itEpsilon)
{
std::string baselineFilenameAscii = (*itbaselineFilenames);
std::string testFilenameAscii = (*itTestFilenames);
......@@ -237,7 +246,7 @@ int TestHelper::RegressionTestAllAscii(const StringList& baselineFilenamesAscii,
this->ReportErrorsOff();
baseline->second = this->RegressionTestAsciiFile(testFilenameAscii.c_str(),
(baseline->first).c_str(),
m_Epsilon,
*itEpsilon,
ignoredLines);
multiResult = baseline->second;
......@@ -250,7 +259,7 @@ int TestHelper::RegressionTestAllAscii(const StringList& baselineFilenamesAscii,
baseline->second
= this->RegressionTestAsciiFile(testFilenameAscii.c_str(),
(baseline->first).c_str(),
m_Epsilon,
*itEpsilon,
ignoredLines);
}
result += multiResult;
......@@ -261,6 +270,7 @@ int TestHelper::RegressionTestAllAscii(const StringList& baselineFilenamesAscii,
int TestHelper::RegressionTestAllDiff(const StringList& baselineFilenamesAscii,
const StringList& testFilenamesAscii,
const EpsilonList& epsilons,
const StringList& ignoredLines)
{
int result = 0;
......@@ -268,6 +278,7 @@ int TestHelper::RegressionTestAllDiff(const StringList& baselineFilenamesAscii,
StringListIt itbaselineFilenames = baselineFilenamesAscii.begin();
StringListIt itTestFilenames = testFilenamesAscii.begin();
StringListIt itIgnoredLines = ignoredLines.begin();
EpsilonListIt itEpsilon = epsilons.begin();
// Warning message
if (ignoredLines.size() > 0)
......@@ -282,8 +293,9 @@ int TestHelper::RegressionTestAllDiff(const StringList& baselineFilenamesAscii,
// For each couple of baseline and test file, do the comparison
for (; (itbaselineFilenames != baselineFilenamesAscii.end())
&& (itTestFilenames != testFilenamesAscii.end());
++itbaselineFilenames, ++itTestFilenames)
&& (itTestFilenames != testFilenamesAscii.end())
&& (itEpsilon != epsilons.end());
++itbaselineFilenames, ++itTestFilenames, ++itEpsilon)
{
std::string baselineFilenameAscii = (*itbaselineFilenames);
std::string testFilenameAscii = (*itTestFilenames);
......@@ -300,7 +312,7 @@ int TestHelper::RegressionTestAllDiff(const StringList& baselineFilenamesAscii,
this->ReportErrorsOff();
baseline->second = this->RegressionTestDiffFile(testFilenameAscii.c_str(),
(baseline->first).c_str(),
m_Epsilon,
*itEpsilon,
ignoredLines);
multiResult = baseline->second;
......@@ -313,7 +325,7 @@ int TestHelper::RegressionTestAllDiff(const StringList& baselineFilenamesAscii,
baseline->second
= this->RegressionTestDiffFile(testFilenameAscii.c_str(),