From d8048963052ef2497191a74669812c4853d648a8 Mon Sep 17 00:00:00 2001 From: Emmanuel Christophe <emmanuel.christophe@orfeo-toolbox.org> Date: Thu, 25 Nov 2010 23:47:18 -0800 Subject: [PATCH] TEST: add tests related to bug #211 --- Testing/Code/IO/CMakeLists.txt | 11 ++++++ Testing/Code/IO/otbComplexImageTests.cxx | 50 +++++++++++++++++++++++- Testing/Code/IO/otbIOTests9.cxx | 2 + 3 files changed, 62 insertions(+), 1 deletion(-) diff --git a/Testing/Code/IO/CMakeLists.txt b/Testing/Code/IO/CMakeLists.txt index c591bafa55..8ccf9ab209 100644 --- a/Testing/Code/IO/CMakeLists.txt +++ b/Testing/Code/IO/CMakeLists.txt @@ -1159,6 +1159,17 @@ ADD_TEST(ioTvImageComplexDoubleTest ${IO_TESTS9} ${INPUTDATA}/multibandComplexDouble.hdr ) +ADD_TEST(ioTvVectorImageComplexIntoRealFloatTest ${IO_TESTS9} + otbVectorImageComplexIntoRealFloatTest + ${INPUTDATA}/multibandComplexFloat.hdr +) + +ADD_TEST(ioTvVectorImageComplexIntoRealDoubleTest ${IO_TESTS9} + otbVectorImageComplexIntoRealDoubleTest + ${INPUTDATA}/multibandComplexDouble.hdr +) + + # --- otb::VectorImageReadWriteTest --- ADD_TEST(ioTvVectorImageFileReaderWriterTest ${IO_TESTS9} --compare-image ${EPSILON_9} diff --git a/Testing/Code/IO/otbComplexImageTests.cxx b/Testing/Code/IO/otbComplexImageTests.cxx index 51e9cb4c9a..7bf945dd3e 100644 --- a/Testing/Code/IO/otbComplexImageTests.cxx +++ b/Testing/Code/IO/otbComplexImageTests.cxx @@ -115,7 +115,7 @@ int otbImageComplexGenericTest(int argc, char* argv[]) pixel = reader->GetOutput()->GetPixel(index); std::cout << pixel << std::endl; - if (pixel != PixelType(4040,4041)) + if (pixel != PixelType(2020,2021)) { std::cout << "Found " << pixel << " should be " << PixelType(2020,2021) << std::endl; return EXIT_FAILURE; @@ -134,3 +134,51 @@ int otbImageComplexDoubleTest(int argc, char* argv[]) { return otbImageComplexGenericTest<double>(argc, argv); } + + +template<class InternalType> +int otbVectorImageComplexIntoRealGenericTest(int argc, char* argv[]) +{ + typedef InternalType PixelType; + typedef otb::VectorImage<PixelType, 2> ImageType; + typedef otb::ImageFileReader<ImageType> ReaderType; + typename ReaderType::Pointer reader = ReaderType::New(); + reader->SetFileName(argv[1]); + reader->UpdateOutputInformation(); + std::cout << reader->GetOutput()->GetNumberOfComponentsPerPixel() << std::endl; + itk::ImageIOBase::Pointer io = reader->GetImageIO(); + std::cout << io << std::endl; + reader->Update(); + typename ImageType::IndexType index; + index[0]=0; + index[1]=0; + + typename ImageType::PixelType pixel = reader->GetOutput()->GetPixel(index); + std::cout << pixel << std::endl; + + //Test value + if (reader->GetOutput()->GetNumberOfComponentsPerPixel() != 4) + { + std::cout << reader->GetOutput()->GetNumberOfComponentsPerPixel() << " bands instead of 4" << std::endl; + return EXIT_FAILURE; + } + if ((pixel[0] != 0) || (pixel[1] != 1) || (pixel[2] != 20000) || (pixel[3] != 20001)) + { + std::cout << "Found " << pixel[0] << " should be " << 0 << std::endl; + std::cout << "Found " << pixel[1] << " should be " << 1 << std::endl; + std::cout << "Found " << pixel[2] << " should be " << 20000 << std::endl; + std::cout << "Found " << pixel[3] << " should be " << 20001 << std::endl; + return EXIT_FAILURE; + } + return EXIT_SUCCESS; +} + +int otbVectorImageComplexIntoRealFloatTest(int argc, char* argv[]) +{ + return otbVectorImageComplexIntoRealGenericTest<float>(argc, argv); +} + +int otbVectorImageComplexIntoRealDoubleTest(int argc, char* argv[]) +{ + return otbVectorImageComplexIntoRealGenericTest<double>(argc, argv); +} diff --git a/Testing/Code/IO/otbIOTests9.cxx b/Testing/Code/IO/otbIOTests9.cxx index 78ce58e98c..8ffe676d91 100644 --- a/Testing/Code/IO/otbIOTests9.cxx +++ b/Testing/Code/IO/otbIOTests9.cxx @@ -31,6 +31,8 @@ void RegisterTests() REGISTER_TEST(otbVectorImageComplexNew); REGISTER_TEST(otbVectorImageComplexFloatTest); REGISTER_TEST(otbVectorImageComplexDoubleTest); + REGISTER_TEST(otbVectorImageComplexIntoRealFloatTest); + REGISTER_TEST(otbVectorImageComplexIntoRealDoubleTest); REGISTER_TEST(otbImageComplexFloatTest); REGISTER_TEST(otbImageComplexDoubleTest); REGISTER_TEST(otbStreamingImageFilterTest); -- GitLab