From 4839d482ad05949a19bdeb40d5a09bd7340af7b0 Mon Sep 17 00:00:00 2001
From: Otmane Lahlou <otmane.lahlou@c-s.fr>
Date: Wed, 11 May 2011 18:22:57 +0200
Subject: [PATCH] ADD : tests for ConcatenateVectorDataFilter

---
 Testing/Code/BasicFilters/CMakeLists.txt      | 19 ++++
 .../BasicFilters/otbBasicFiltersTests14.cxx   |  3 +-
 .../otbConcatenateVectorDataFilter.cxx        | 87 +++++++++++++++++++
 3 files changed, 108 insertions(+), 1 deletion(-)
 create mode 100644 Testing/Code/BasicFilters/otbConcatenateVectorDataFilter.cxx

diff --git a/Testing/Code/BasicFilters/CMakeLists.txt b/Testing/Code/BasicFilters/CMakeLists.txt
index 8397a657cc..6aaa8c665a 100644
--- a/Testing/Code/BasicFilters/CMakeLists.txt
+++ b/Testing/Code/BasicFilters/CMakeLists.txt
@@ -2007,6 +2007,24 @@ ADD_TEST(bfTuVectorDataToRandomLineGenerator ${BASICFILTERS_TESTS14}
 )
 
 
+# -----------------------  otbConcatenateVectorDataFilter  -----------------------
+
+ADD_TEST(bfTuConcatenateVectorDataFilterNew ${BASICFILTERS_TESTS14}
+  otbConcatenateVectorDataFilterNew
+)
+
+ADD_TEST(bfTvConcatenateVectorDataFilter ${BASICFILTERS_TESTS14}
+  --compare-ogr ${NOTOL}
+  ${BASELINE_FILES}/otbConcatenateVectorDataFilter_Output.shp
+  ${TEMP}/otbConcatenateVectorDataFilter_Output.shp
+  otbConcatenateVectorDataFilter
+  -in  ${INPUTDATA}/france_coastline.shp
+       ${INPUTDATA}/waterways.shp
+  -out ${TEMP}/otbConcatenateVectorDataFilter_Output.shp
+)
+
+
+
 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ otbBasicFiltersTests15 ~~~~~~~~~~~~~~~~~~~~~~~~~
 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -2327,6 +2345,7 @@ otbConnectedComponentMuParserFunctorTest.cxx
 otbLabelObjectOpeningMuParserFilterNew.cxx
 otbLabelObjectOpeningMuParserFilterTest.cxx
 otbVectorDataToRandomLineGenerator.cxx
+otbConcatenateVectorDataFilter.cxx
 )
 IF(OTB_DATA_USE_LARGEINPUT)
 SET(BasicFilters_SRCS15
diff --git a/Testing/Code/BasicFilters/otbBasicFiltersTests14.cxx b/Testing/Code/BasicFilters/otbBasicFiltersTests14.cxx
index d0c1ae66a5..847960f621 100644
--- a/Testing/Code/BasicFilters/otbBasicFiltersTests14.cxx
+++ b/Testing/Code/BasicFilters/otbBasicFiltersTests14.cxx
@@ -28,5 +28,6 @@ void RegisterTests()
   REGISTER_TEST(otbLabelObjectOpeningMuParserFilterNew);
   REGISTER_TEST(otbLabelObjectOpeningMuParserFilterTest);
   REGISTER_TEST(otbVectorDataToRandomLineGeneratorNew);
-  REGISTER_TEST(otbVectorDataToRandomLineGenerator);
+  REGISTER_TEST(otbConcatenateVectorDataFilterNew);
+  REGISTER_TEST(otbConcatenateVectorDataFilter);
 }
diff --git a/Testing/Code/BasicFilters/otbConcatenateVectorDataFilter.cxx b/Testing/Code/BasicFilters/otbConcatenateVectorDataFilter.cxx
new file mode 100644
index 0000000000..a2c53a9ddf
--- /dev/null
+++ b/Testing/Code/BasicFilters/otbConcatenateVectorDataFilter.cxx
@@ -0,0 +1,87 @@
+/*=========================================================================
+
+   Program:   ORFEO Toolbox
+   Language:  C++
+   Date:      $Date$
+   Version:   $Revision$
+
+
+   Copyright (c) Centre National d'Etudes Spatiales. All rights reserved.
+   See OTBCopyright.txt for details.
+
+
+   This software is distributed WITHOUT ANY WARRANTY; without even
+   the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+   PURPOSE.  See the above copyright notices for more information.
+
+ =========================================================================*/
+
+#include "otbCommandLineArgumentParser.h"
+
+// Images
+#include "otbVectorData.h"
+#include "otbVectorDataFileReader.h"
+#include "otbVectorDataFileWriter.h"
+
+// Concatener
+#include "otbConcatenateVectorDataFilter.h"
+
+
+typedef otb::VectorData<>                                 VectorDataType;
+typedef otb::VectorDataFileReader<VectorDataType>         ReaderType;
+typedef otb::VectorDataFileWriter<VectorDataType>         WriterType;
+typedef otb::ConcatenateVectorDataFilter<VectorDataType>  ConcatenateFilterType; 
+
+int otbConcatenateVectorDataFilterNew (int argc, char * argv[])
+{
+  ConcatenateFilterType::Pointer concatenate = ConcatenateFilterType::New();
+  return EXIT_SUCCESS;
+}
+
+int otbConcatenateVectorDataFilter (int argc, char * argv[])
+{
+  // Parse command line parameters
+  typedef otb::CommandLineArgumentParser ParserType;
+  ParserType::Pointer parser = ParserType::New();
+  parser->AddOptionNParams("--InputVectorDatas","Input VectorDatas to concatenate ", "-in", true);
+  parser->AddOption("--OutputVectorData","Output concatenated VectorData","-out",true);
+    
+  typedef otb::CommandLineArgumentParseResult ParserResultType;
+  ParserResultType::Pointer  parseResult = ParserResultType::New();
+  
+  try
+    {
+    parser->ParseCommandLine(argc,argv,parseResult);
+    }
+  catch ( itk::ExceptionObject & err )
+    {
+    return EXIT_FAILURE;
+    }
+  
+  
+  // Get number of input vectorDatas
+  unsigned int nbInputs = parseResult->GetNumberOfParameters("--InputVectorDatas");
+
+  // Instanciate a concatenate filter 
+    // Concatenate the vector datas
+  ConcatenateFilterType::Pointer concatenate = ConcatenateFilterType::New();
+  
+  for (unsigned int idx = 0; idx < nbInputs; idx++)
+    {
+    // Reader object
+    ReaderType::Pointer reader = ReaderType::New();
+    //std::cout << << std::endl;
+    reader->SetFileName(parseResult->GetParameterString("--InputVectorDatas",idx ));
+    reader->Update();
+    
+    concatenate->AddInput(reader->GetOutput());
+    }
+  
+  // Write the output 
+  WriterType::Pointer writer = WriterType::New();
+  writer->SetFileName(parseResult->GetParameterString("--OutputVectorData"));
+  writer->SetInput(concatenate->GetOutput());
+  writer->Update();
+
+  return EXIT_SUCCESS;
+}
-- 
GitLab