From 531647be4d5774a89e4b5f4f234540044701185e Mon Sep 17 00:00:00 2001
From: Emmanuel Christophe <emmanuel.christophe@orfeo-toolbox.org>
Date: Fri, 6 May 2011 23:29:36 -0700
Subject: [PATCH] ENH: switch code from TestMain to TestHelper

---
 Code/Testing/otbTestHelper.cxx | 248 +++++++++++++++++++++++++++++++++
 Code/Testing/otbTestHelper.h   |  31 ++++-
 Code/Testing/otbTestMain.h     | 225 ++----------------------------
 3 files changed, 285 insertions(+), 219 deletions(-)

diff --git a/Code/Testing/otbTestHelper.cxx b/Code/Testing/otbTestHelper.cxx
index e2b9f5f733..ff604285bf 100644
--- a/Code/Testing/otbTestHelper.cxx
+++ b/Code/Testing/otbTestHelper.cxx
@@ -75,6 +75,254 @@
 namespace otb
 {
 
+int TestHelper::RegressionTestAllImages(const StringList& baselineFilenamesImage, 
+                                        const StringList& testFilenamesImage)
+{
+  int result = 0;
+  StringListIt itbaselineFilenames = baselineFilenamesImage.begin();
+  StringListIt itTestFilenames = testFilenamesImage.begin();
+  int                                cpt(1);
+  // For each couple of baseline and test file, do the comparison
+  for (; (itbaselineFilenames != baselineFilenamesImage.end())
+         && (itTestFilenames != testFilenamesImage.end());
+       ++itbaselineFilenames, ++itTestFilenames)
+    {
+    std::string baselineFilenameImage = (*itbaselineFilenames);
+    std::string testFilenameImage = (*itTestFilenames);
+
+    std::map<std::string, int> baselines =
+      this->RegressionTestBaselines(const_cast<char*>(baselineFilenameImage.c_str()));
+    std::map<std::string, int>::reverse_iterator baseline = baselines.rbegin();
+    int multiResult = 1;
+    std::cout << "Number of baseline images: " << baselines.size() << std::endl;
+    while (baseline != baselines.rend() && (multiResult != 0))
+      {
+      std::cout << "Testing non-regression on image: " << (baseline->first).c_str() << std::endl;
+      this->ReportErrorsOff();
+      baseline->second = this->RegressionTestImage(cpt, testFilenameImage.c_str(),
+                                                        (baseline->first).c_str(),
+                                                        m_ToleranceDiffValue);
+
+      multiResult = baseline->second;
+      ++baseline;
+      }
+    if (multiResult != 0)
+      {
+      baseline = baselines.rbegin();
+      this->ReportErrorsOn();
+      baseline->second
+        = this->RegressionTestImage(cpt, testFilenameImage.c_str(),
+                                         (baseline->first).c_str(),
+                                         m_ToleranceDiffValue);
+      }  
+    cpt++;
+    result += multiResult;
+    }
+  return result;
+}
+
+int TestHelper::RegressionTestAllMetaData(const StringList& baselineFilenamesMetaData,
+                                          const StringList& testFilenamesMetaData)
+{
+  int result = 0;
+  // Creates iterators on baseline filenames vector and test filenames vector
+  StringListIt itbaselineFilenames = baselineFilenamesMetaData.begin();
+  StringListIt itTestFilenames = testFilenamesMetaData.begin();
+  // For each couple of baseline and test file, do the comparison
+  for (; (itbaselineFilenames != baselineFilenamesMetaData.end())
+         && (itTestFilenames != testFilenamesMetaData.end());
+       ++itbaselineFilenames, ++itTestFilenames)
+    {
+    std::string baselineFilenameImage = (*itbaselineFilenames);
+    std::string testFilenameImage = (*itTestFilenames);
+
+    std::map<std::string, int> baselines =
+      this->RegressionTestBaselines(const_cast<char*>(baselineFilenameImage.c_str()));
+    std::map<std::string, int>::reverse_iterator baseline = baselines.rbegin();
+    int multiResult = 1;
+    std::cout << "Number of baseline images: " << baselines.size() << std::endl;
+    while (baseline != baselines.rend() && (multiResult != 0))
+      {
+      std::cout << "Testing non-regression on image: " << (baseline->first).c_str() << std::endl;
+      this->ReportErrorsOff();
+      baseline->second = this->RegressionTestMetaData(testFilenameImage.c_str(),
+                                                           (baseline->first).c_str(),
+                                                           m_ToleranceDiffValue);
+
+      multiResult = baseline->second;
+      ++baseline;
+      }
+    if (multiResult != 0)
+      {
+      baseline = baselines.rbegin();
+      this->ReportErrorsOn();
+      baseline->second
+        = this->RegressionTestMetaData(testFilenameImage.c_str(),
+                                            (baseline->first).c_str(),
+                                            m_ToleranceDiffValue);
+      }
+    result += multiResult;
+    }
+  return result;
+}
+
+int TestHelper::RegressionTestAllAscii(const StringList& baselineFilenamesAscii,
+                                       const StringList& testFilenamesAscii,
+                                       const StringList& ignoredLines)
+{
+  int result = 0;
+  // Creates iterators on baseline filenames vector and test filenames vector
+  StringListIt itbaselineFilenames = baselineFilenamesAscii.begin();
+  StringListIt itTestFilenames = testFilenamesAscii.begin();
+  StringListIt itIgnoredLines = ignoredLines.begin();
+
+  // Warning message
+  if (ignoredLines.size() > 0)
+    {
+    std::cout << "The lines containing the expressions ";
+    for (; itIgnoredLines != ignoredLines.end(); ++itIgnoredLines)
+      {
+      std::cout << (*itIgnoredLines) << " ";
+      }
+    std::cout << "are not considered" << std::endl;
+    }
+
+  // For each couple of baseline and test file, do the comparison
+  for (; (itbaselineFilenames != baselineFilenamesAscii.end())
+         && (itTestFilenames != testFilenamesAscii.end());
+       ++itbaselineFilenames, ++itTestFilenames)
+    {
+    std::string baselineFilenameAscii = (*itbaselineFilenames);
+    std::string testFilenameAscii = (*itTestFilenames);
+
+    std::map<std::string,
+             int> baselines =
+      this->RegressionTestBaselines(const_cast<char*>(baselineFilenameAscii.c_str()));
+    std::map<std::string, int>::reverse_iterator baseline = baselines.rbegin();
+    int multiResult = 1;
+    std::cout << "Number of baseline files: " << baselines.size() << std::endl;
+    while (baseline != baselines.rend() && (multiResult != 0))
+      {
+      std::cout << "Testing non-regression on file: " << (baseline->first).c_str() << std::endl;
+      this->ReportErrorsOff();
+      baseline->second = this->RegressionTestAsciiFile(testFilenameAscii.c_str(),
+                                                            (baseline->first).c_str(),
+                                                            m_Epsilon,
+                                                            ignoredLines);
+
+      multiResult = baseline->second;
+      ++baseline;
+      }
+    if (multiResult != 0)
+      {
+      baseline = baselines.rbegin();
+      this->ReportErrorsOn();
+      baseline->second
+        = this->RegressionTestAsciiFile(testFilenameAscii.c_str(),
+                                             (baseline->first).c_str(),
+                                             m_Epsilon,
+                                             ignoredLines);
+      }
+    result += multiResult;
+    }
+
+  return result;
+}
+
+int TestHelper::RegressionTestAllBinary(const StringList& baselineFilenamesBinary,
+                                        const StringList& testFilenamesBinary)
+{
+  int result = 0;
+  // Creates iterators on baseline filenames vector and test filenames vector
+  StringListIt itbaselineFilenames = baselineFilenamesBinary.begin();
+  StringListIt itTestFilenames = testFilenamesBinary.begin();
+
+  // For each couple of baseline and test file, do the comparison
+  for (; (itbaselineFilenames != baselineFilenamesBinary.end())
+         && (itTestFilenames != testFilenamesBinary.end());
+       ++itbaselineFilenames, ++itTestFilenames)
+    {
+    std::string baselineFilenameBinary = (*itbaselineFilenames);
+    std::string testFilenameBinary = (*itTestFilenames);
+
+    std::map<std::string,
+             int> baselines =
+      this->RegressionTestBaselines(const_cast<char*>(baselineFilenameBinary.c_str()));
+    std::map<std::string, int>::reverse_iterator baseline = baselines.rbegin();
+    int multiResult = 1;
+    std::cout << "Number of baseline files: " << baselines.size() << std::endl;
+    while (baseline != baselines.rend() && (multiResult != 0))
+      {
+      std::cout << "Testing non-regression on file: " << (baseline->first).c_str() << std::endl;
+      this->ReportErrorsOff();
+      baseline->second = this->RegressionTestBinaryFile(testFilenameBinary.c_str(),
+                                                             (baseline->first).c_str());
+
+      multiResult = baseline->second;
+      ++baseline;
+      }
+    if (multiResult != 0)
+      {
+      baseline = baselines.rbegin();
+      this->ReportErrorsOn();
+      baseline->second
+        = this->RegressionTestBinaryFile(testFilenameBinary.c_str(),
+                                              (baseline->first).c_str());
+      }
+    result += multiResult;
+    }
+
+  return result;
+}
+
+int TestHelper::RegressionTestAllOgr(const StringList& baselineFilenamesOgr,
+                                     const StringList& testFilenamesOgr)
+{
+  int result = 0;
+  // Creates iterators on baseline filenames vector and test filenames vector
+  StringListIt itbaselineFilenames = baselineFilenamesOgr.begin();
+  StringListIt itTestFilenames = testFilenamesOgr.begin();
+  // For each couple of baseline and test file, do the comparison
+  for (; (itbaselineFilenames != baselineFilenamesOgr.end())
+         && (itTestFilenames != testFilenamesOgr.end());
+       ++itbaselineFilenames, ++itTestFilenames)
+    {
+    std::string baselineFilenameOgr = (*itbaselineFilenames);
+    std::string testFilenameOgr = (*itTestFilenames);
+
+    std::map<std::string,
+             int> baselines =
+      this->RegressionTestBaselines(const_cast<char*>(baselineFilenameOgr.c_str()));
+    std::map<std::string, int>::reverse_iterator baseline = baselines.rbegin();
+    int multiResult = 1;
+    std::cout << "Number of baseline OGR files: " << baselines.size() << std::endl;
+    while (baseline != baselines.rend() && (multiResult != 0))
+      {
+      std::cout << "Testing non-regression on OGR file: " << (baseline->first).c_str() << std::endl;
+      this->ReportErrorsOff();
+      baseline->second = this->RegressionTestOgrFile(testFilenameOgr.c_str(),
+                                                          (baseline->first).c_str(),
+                                                          m_ToleranceDiffValue);
+
+      multiResult = baseline->second;
+      ++baseline;
+      }
+    if (multiResult != 0)
+      {
+      baseline = baselines.rbegin();
+      this->ReportErrorsOn();
+      baseline->second
+        = this->RegressionTestOgrFile(testFilenameOgr.c_str(),
+                                           (baseline->first).c_str(),
+                                           m_ToleranceDiffValue);
+      }
+    result += multiResult;
+    }
+
+  return result;
+}
+
+
 int TestHelper::RegressionTestAsciiFile(const char * testAsciiFileName, const char * baselineAsciiFileName,
                                         const double epsilon, std::vector<std::string> ignoredLines) const
 {
diff --git a/Code/Testing/otbTestHelper.h b/Code/Testing/otbTestHelper.h
index 9473112c78..8a45e924e5 100644
--- a/Code/Testing/otbTestHelper.h
+++ b/Code/Testing/otbTestHelper.h
@@ -40,7 +40,13 @@ namespace otb
 class /*ITK_EXPORT*/ TestHelper : itk::Object
 {
 public:
+
+  typedef std::vector<std::string> StringList;
+  typedef StringList::const_iterator StringListIt;
+
   TestHelper() :
+    m_ToleranceDiffValue(0),
+    m_Epsilon(0),
     m_EpsilonBoundaryChecking(1.0e-30),
     m_ReportErrors(false),
     m_IgnoreLineOrder(false)
@@ -48,6 +54,22 @@ public:
 
   ~TestHelper(){}
 
+  int RegressionTestAllImages(const StringList& baselineFilenamesImage, 
+                              const StringList& testFilenamesImage);
+
+  int RegressionTestAllMetaData(const StringList& baselineFilenamesMetaData,
+                                const StringList& testFilenamesMetaData);
+
+  int RegressionTestAllAscii(const StringList& baselineFilenamesAscii,
+                             const StringList& testFilenamesAscii,
+                             const StringList& ignoredLines);
+
+  int RegressionTestAllBinary(const StringList& baselineFilenamesBinary,
+                              const StringList& testFilenamesBinary);
+
+  int RegressionTestAllOgr(const StringList& baselineFilenamesOgr,
+                           const StringList& testFilenamesOgr);
+
   std::map<std::string, int> RegressionTestBaselines(char *baselineFilename) const;
 
   int RegressionTestImage(int cpt, const char *testImageFilename, const char *baselineImageFilename,
@@ -69,10 +91,9 @@ public:
   itkSetMacro(IgnoreLineOrder, bool);
   itkBooleanMacro(IgnoreLineOrder);
 
-  void SetEpsilonBoundaryChecking(double epsilonBoundary)
-  {
-    m_EpsilonBoundaryChecking = epsilonBoundary;
-  }
+  itkSetMacro(ToleranceDiffValue, double);
+  itkSetMacro(Epsilon, double);
+  itkSetMacro(EpsilonBoundaryChecking, double);
 
 private:
   bool isNumber(int i) const;
@@ -102,6 +123,8 @@ private:
   static void DumpOGRFeature(FILE* fileid, OGRFeature* feature, char** papszOptions = NULL);
   static void DumpOGRGeometry(FILE* fileid, OGRGeometry* geometry, const char * pszPrefix, char** papszOptions = NULL);
 
+  double m_ToleranceDiffValue;
+  double m_Epsilon;
   double m_EpsilonBoundaryChecking;
   bool   m_ReportErrors;
   bool   m_IgnoreLineOrder;
diff --git a/Code/Testing/otbTestMain.h b/Code/Testing/otbTestMain.h
index 8d2b04fc23..b7488e6f04 100644
--- a/Code/Testing/otbTestMain.h
+++ b/Code/Testing/otbTestMain.h
@@ -58,8 +58,8 @@ int main(int ac, char* av[])
   bool   lIgnoreOrder(false);
   double epsilonBoundary(0.0);
 
-  typedef std::vector<std::string> StringList;
-  typedef StringList::const_iterator StringListIt;
+  typedef otb::TestHelper::StringList StringList;
+  typedef otb::TestHelper::StringListIt StringListIt;
 
   StringList baselineFilenamesBinary;
   StringList testFilenamesBinary;
@@ -268,7 +268,7 @@ int main(int ac, char* av[])
   if (j != StringToTestFunctionMap.end())
     {
     MainFuncPointer f = j->second;
-    int             result, multiResult;
+    int             result;
     try
       {
       // Invoke the test's "main" function.
@@ -325,7 +325,8 @@ 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...
       if (epsilonBoundary != 0.0)
         {
         testHelper.SetEpsilonBoundaryChecking(epsilonBoundary);
@@ -334,238 +335,32 @@ int main(int ac, char* av[])
       // Non regression test for images
       if ((baselineFilenamesImage.size() > 0) && (testFilenamesImage.size() > 0))
         {
-        // Creates iterators on baseline filenames vector and test filenames vector
-        StringListIt itbaselineFilenames = baselineFilenamesImage.begin();
-        StringListIt itTestFilenames = testFilenamesImage.begin();
-        int                                cpt(1);
-        // For each couple of baseline and test file, do the comparison
-        for (; (itbaselineFilenames != baselineFilenamesImage.end())
-               && (itTestFilenames != testFilenamesImage.end());
-             ++itbaselineFilenames, ++itTestFilenames)
-          {
-          std::string baselineFilenameImage = (*itbaselineFilenames);
-          std::string testFilenameImage = (*itTestFilenames);
-
-          std::map<std::string, int> baselines =
-            testHelper.RegressionTestBaselines(const_cast<char*>(baselineFilenameImage.c_str()));
-          std::map<std::string, int>::reverse_iterator baseline = baselines.rbegin();
-          multiResult = 1;
-          std::cout << "Number of baseline images: " << baselines.size() << std::endl;
-          while (baseline != baselines.rend() && (multiResult != 0))
-            {
-            std::cout << "Testing non-regression on image: " << (baseline->first).c_str() << std::endl;
-            testHelper.ReportErrorsOff();
-            baseline->second = testHelper.RegressionTestImage(cpt, testFilenameImage.c_str(),
-                                                              (baseline->first).c_str(),
-                                                              lToleranceDiffValue);
-
-            multiResult = baseline->second;
-            ++baseline;
-            }
-          if (multiResult != 0)
-            {
-            baseline = baselines.rbegin();
-            testHelper.ReportErrorsOn();
-            baseline->second
-              = testHelper.RegressionTestImage(cpt, testFilenameImage.c_str(),
-                                               (baseline->first).c_str(),
-                                               lToleranceDiffValue);
-            }
-          cpt++;
-          result += multiResult;
-          }
-
+        result += testHelper.RegressionTestAllImages(baselineFilenamesImage, testFilenamesImage);
         }
       /***********************************************************************************/
       // Non-regression test for metadata.
       if ((baselineFilenamesMetaData.size() > 0) && (testFilenamesMetaData.size() > 0))
         {
-        // Creates iterators on baseline filenames vector and test filenames vector
-        StringListIt itbaselineFilenames = baselineFilenamesMetaData.begin();
-        StringListIt itTestFilenames = testFilenamesMetaData.begin();
-        // For each couple of baseline and test file, do the comparison
-        for (; (itbaselineFilenames != baselineFilenamesMetaData.end())
-               && (itTestFilenames != testFilenamesMetaData.end());
-             ++itbaselineFilenames, ++itTestFilenames)
-          {
-          std::string baselineFilenameImage = (*itbaselineFilenames);
-          std::string testFilenameImage = (*itTestFilenames);
-
-          std::map<std::string, int> baselines =
-            testHelper.RegressionTestBaselines(const_cast<char*>(baselineFilenameImage.c_str()));
-          std::map<std::string, int>::reverse_iterator baseline = baselines.rbegin();
-          multiResult = 1;
-          std::cout << "Number of baseline images: " << baselines.size() << std::endl;
-          while (baseline != baselines.rend() && (multiResult != 0))
-            {
-            std::cout << "Testing non-regression on image: " << (baseline->first).c_str() << std::endl;
-            testHelper.ReportErrorsOff();
-            baseline->second = testHelper.RegressionTestMetaData(testFilenameImage.c_str(),
-                                                                 (baseline->first).c_str(),
-                                                                 lToleranceDiffValue);
-
-            multiResult = baseline->second;
-            ++baseline;
-            }
-          if (multiResult != 0)
-            {
-            baseline = baselines.rbegin();
-            testHelper.ReportErrorsOn();
-            baseline->second
-              = testHelper.RegressionTestMetaData(testFilenameImage.c_str(),
-                                                  (baseline->first).c_str(),
-                                                  lToleranceDiffValue);
-            }
-          result += multiResult;
-          }
+        result += testHelper.RegressionTestAllMetaData(baselineFilenamesMetaData, testFilenamesMetaData);
         }
 
       /***********************************************************************************/
       // Non regression test for ascii files
       if ((baselineFilenamesAscii.size() > 0) && (testFilenamesAscii.size() > 0))
         {
-
-        // Creates iterators on baseline filenames vector and test filenames vector
-        StringListIt itbaselineFilenames = baselineFilenamesAscii.begin();
-        StringListIt itTestFilenames = testFilenamesAscii.begin();
-        StringListIt itIgnoredLines = ignoredLines.begin();
-
-        // Warning message
-        if (ignoredLines.size() > 0)
-          {
-          std::cout << "The lines containing the expressions ";
-          for (; itIgnoredLines != ignoredLines.end(); ++itIgnoredLines)
-            {
-            std::cout << (*itIgnoredLines) << " ";
-            }
-          std::cout << "are not considered" << std::endl;
-          }
-
-        // For each couple of baseline and test file, do the comparison
-        for (; (itbaselineFilenames != baselineFilenamesAscii.end())
-               && (itTestFilenames != testFilenamesAscii.end());
-             ++itbaselineFilenames, ++itTestFilenames)
-          {
-          std::string baselineFilenameAscii = (*itbaselineFilenames);
-          std::string testFilenameAscii = (*itTestFilenames);
-
-          std::map<std::string,
-                   int> baselines =
-            testHelper.RegressionTestBaselines(const_cast<char*>(baselineFilenameAscii.c_str()));
-          std::map<std::string, int>::reverse_iterator baseline = baselines.rbegin();
-          multiResult = 1;
-          std::cout << "Number of baseline files: " << baselines.size() << std::endl;
-          while (baseline != baselines.rend() && (multiResult != 0))
-            {
-            std::cout << "Testing non-regression on file: " << (baseline->first).c_str() << std::endl;
-            testHelper.ReportErrorsOff();
-            baseline->second = testHelper.RegressionTestAsciiFile(testFilenameAscii.c_str(),
-                                                                  (baseline->first).c_str(),
-                                                                  lEpsilon,
-                                                                  ignoredLines);
-
-            multiResult = baseline->second;
-            ++baseline;
-            }
-          if (multiResult != 0)
-            {
-            baseline = baselines.rbegin();
-            testHelper.ReportErrorsOn();
-            baseline->second
-              = testHelper.RegressionTestAsciiFile(testFilenameAscii.c_str(),
-                                                   (baseline->first).c_str(),
-                                                   lEpsilon,
-                                                   ignoredLines);
-            }
-          result += multiResult;
-          }
+        result += testHelper.RegressionTestAllAscii(baselineFilenamesAscii, testFilenamesAscii, ignoredLines);
         }
       /******************************************************************************/
       // Non regression test for binary files
       if ((baselineFilenamesBinary.size() > 0) && (testFilenamesBinary.size() > 0))
         {
-        // Creates iterators on baseline filenames vector and test filenames vector
-        StringListIt itbaselineFilenames = baselineFilenamesBinary.begin();
-        StringListIt itTestFilenames = testFilenamesBinary.begin();
-
-        // For each couple of baseline and test file, do the comparison
-        for (; (itbaselineFilenames != baselineFilenamesBinary.end())
-               && (itTestFilenames != testFilenamesBinary.end());
-             ++itbaselineFilenames, ++itTestFilenames)
-          {
-          std::string baselineFilenameBinary = (*itbaselineFilenames);
-          std::string testFilenameBinary = (*itTestFilenames);
-
-          std::map<std::string,
-                   int> baselines =
-            testHelper.RegressionTestBaselines(const_cast<char*>(baselineFilenameBinary.c_str()));
-          std::map<std::string, int>::reverse_iterator baseline = baselines.rbegin();
-          multiResult = 1;
-          std::cout << "Number of baseline files: " << baselines.size() << std::endl;
-          while (baseline != baselines.rend() && (multiResult != 0))
-            {
-            std::cout << "Testing non-regression on file: " << (baseline->first).c_str() << std::endl;
-            testHelper.ReportErrorsOff();
-            baseline->second = testHelper.RegressionTestBinaryFile(testFilenameBinary.c_str(),
-                                                                   (baseline->first).c_str());
-
-            multiResult = baseline->second;
-            ++baseline;
-            }
-          if (multiResult != 0)
-            {
-            baseline = baselines.rbegin();
-            testHelper.ReportErrorsOn();
-            baseline->second
-              = testHelper.RegressionTestBinaryFile(testFilenameBinary.c_str(),
-                                                    (baseline->first).c_str());
-            }
-          result += multiResult;
-          }
+        result += testHelper.RegressionTestAllBinary(baselineFilenamesBinary, testFilenamesBinary);
         }
       /******************************************************************************/
       // Non regression test for OGR files
       if ((baselineFilenamesOgr.size() > 0) && (testFilenamesOgr.size() > 0))
         {
-        // Creates iterators on baseline filenames vector and test filenames vector
-        StringListIt itbaselineFilenames = baselineFilenamesOgr.begin();
-        StringListIt itTestFilenames = testFilenamesOgr.begin();
-        // For each couple of baseline and test file, do the comparison
-        for (; (itbaselineFilenames != baselineFilenamesOgr.end())
-               && (itTestFilenames != testFilenamesOgr.end());
-             ++itbaselineFilenames, ++itTestFilenames)
-          {
-          std::string baselineFilenameOgr = (*itbaselineFilenames);
-          std::string testFilenameOgr = (*itTestFilenames);
-
-          std::map<std::string,
-                   int> baselines =
-            testHelper.RegressionTestBaselines(const_cast<char*>(baselineFilenameOgr.c_str()));
-          std::map<std::string, int>::reverse_iterator baseline = baselines.rbegin();
-          multiResult = 1;
-          std::cout << "Number of baseline OGR files: " << baselines.size() << std::endl;
-          while (baseline != baselines.rend() && (multiResult != 0))
-            {
-            std::cout << "Testing non-regression on OGR file: " << (baseline->first).c_str() << std::endl;
-            testHelper.ReportErrorsOff();
-            baseline->second = testHelper.RegressionTestOgrFile(testFilenameOgr.c_str(),
-                                                                (baseline->first).c_str(),
-                                                                lToleranceDiffValue);
-
-            multiResult = baseline->second;
-            ++baseline;
-            }
-          if (multiResult != 0)
-            {
-            baseline = baselines.rbegin();
-            testHelper.ReportErrorsOn();
-            baseline->second
-              = testHelper.RegressionTestOgrFile(testFilenameOgr.c_str(),
-                                                 (baseline->first).c_str(),
-                                                 lToleranceDiffValue);
-            }
-          result += multiResult;
-          }
+        result += testHelper.RegressionTestAllOgr(baselineFilenamesOgr, testFilenamesOgr);
         }
 
       }
-- 
GitLab