From 96b59a587c77805f8783f3c84b23ff6b4dbe09c8 Mon Sep 17 00:00:00 2001
From: Mickael Savinaud <mickael.savinaud@c-s.fr>
Date: Thu, 24 Nov 2011 15:53:01 +0100
Subject: [PATCH] ENH test suite about JPEG2000

---
 Testing/Code/IO/CMakeLists.txt | 138 ++++++++++++++++-----------------
 1 file changed, 66 insertions(+), 72 deletions(-)

diff --git a/Testing/Code/IO/CMakeLists.txt b/Testing/Code/IO/CMakeLists.txt
index 03e6125b4b..a28d47ccd2 100644
--- a/Testing/Code/IO/CMakeLists.txt
+++ b/Testing/Code/IO/CMakeLists.txt
@@ -1915,22 +1915,6 @@ ADD_TEST(ioTuJP2ImageIOCanRead ${IO_TESTS13}
          )
 ENDIF(OTB_DATA_USE_LARGEINPUT)
 
-ADD_TEST(ioTvVectorImageFileReaderWriterJ2K2TIF ${IO_TESTS9}
---compare-image ${EPSILON_9}  ${BASELINE}/ioTvVectorImageFileReaderWriterJ2K2TIFOutput.tif
-                        ${TEMP}/ioTvVectorImageFileReaderWriterJ2K2TIFOutput.tif
-         otbVectorImageFileReaderWriterTest
-         ${INPUTDATA}/bretagne.j2k
-         ${TEMP}/ioTvVectorImageFileReaderWriterJ2K2TIFOutput.tif
-         )
-
-ADD_TEST(ioTvImageFileReaderWriterJ2K2TIF ${IO_TESTS2}
---compare-image ${EPSILON_9}  ${BASELINE}/ioTvImageFileReaderWriterJ2K2TIFOutput.tif
-                        ${TEMP}/ioTvImageFileReaderWriterJ2K2TIFOutput.tif
-         otbDoubleImageIOTest
-         ${INPUTDATA}/bretagne.j2k
-         ${TEMP}/ioTvImageFileReaderWriterJ2K2TIFOutput.tif
-        )
-
 #NOTE: we are comparing with the kakadu output in raw format.
 IF(OTB_DATA_USE_LARGEINPUT)
 ADD_TEST(ioTvVectorImageFileReaderWriterJP22TIF ${IO_TESTS9}
@@ -2012,14 +1996,25 @@ IF(OTB_DATA_USE_LARGEINPUT)
   ADD_TEST(ioTvVectorImageFileReaderWriterJP22TIF_PLEIADES-PRE-R4C1-tile328-329 ${COMMON_TESTS2}
          --without-threads
          --compare-image ${EPSILON_9}  ${BASELINE}/ioTvJP22TIF_Extract_PLEIADES-PRE-R4C1-tile328-329.tif
-                                       ${TEMP}/ioTvJP22TIF_Extract_PLEIADES-PRE-R4C1-tile328-329.tif
+                                       ${TEMP}/ioTvJP22TIF_Extract_PLEIADES-PRE-R4C1-tile328-329_OUT.tif
          otbMultiChannelExtractROI
          -ushort ${LARGEDATA}/PLEIADES-PRE/VERSION2/IMG_PHR_001/IMG_R4C1.JP2:5
-         -ushort ${TEMP}/ioTvJP22TIF_Extract_PLEIADES-PRE-R4C1-tile328-329.tif
+         -ushort ${TEMP}/ioTvJP22TIF_Extract_PLEIADES-PRE-R4C1-tile328-329_OUT.tif
          -startX 1330 -startY 928 -sizeX 32 -sizeY 32
          -channels 1 2 3 4
          -time
          )
+         
+  # Generate the QL used in monteverdi (take only first bands to put the image in the baseline) 
+  ADD_TEST(ioTvVectorImageFileReaderWriterJP22TIF_PLEIADES-PRE-R4C1-FullQL ${COMMON_TESTS2}
+         --compare-image ${EPSILON_9}   ${BASELINE}/ioExtractROI_JPEG2K_2_TIF_pleiades_ql.tif
+                                        ${TEMP}/ioExtractROI_JPEG2K_2_TIF_pleiades_ql_OUT.tif
+         otbMultiChannelExtractROI
+         -ushort ${LARGEDATA}/PLEIADES-PRE/VERSION2/IMG_PHR_001/IMG_R4C1.JP2:5
+         -ushort ${TEMP}/ioExtractROI_JPEG2K_2_TIF_pleiades_ql_OUT.tif
+         -channels 1
+         -time
+         )
 
 ENDIF(OTB_DATA_USE_LARGEINPUT)
 
@@ -2043,33 +2038,36 @@ ADD_TEST(ioTvMultiResolutionReading3 ${IO_TESTS13}
       3
       )
 
-# Tests to check if we can open JPEG2000 files using a otb::VectorImage and filename:NumSubDataset syntax.
+# Tests to check if we can open JPEG2000 files using a otb::VectorImage 
+# and filename:ResolutionFactor syntax.
 # no access to data only PrintSelf() method.
 ADD_TEST(ioTvMultiResolutionReadingInName0 ${IO_TESTS13}
   --compare-ascii ${NOTOL}  ${BASELINE_FILES}/ioTvMultiResolutionReading0.txt
-                             ${TEMP}/ioTvMultiResolutionReadingInName0.txt
+                            ${TEMP}/ioTvMultiResolutionReadingInName0.txt
       otbVectorImageTest
       ${INPUTDATA}/bretagne.j2k:0
       ${TEMP}/ioTvMultiResolutionReadingInName0.txt
       )
 ADD_TEST(ioTvMultiResolutionReadingInName3 ${IO_TESTS13}
   --compare-ascii ${NOTOL}  ${BASELINE_FILES}/ioTvMultiResolutionReading3.txt
-                             ${TEMP}/ioTvMultiResolutionReadingInName3.txt
+                            ${TEMP}/ioTvMultiResolutionReadingInName3.txt
       otbVectorImageTest
       ${INPUTDATA}/bretagne.j2k:3
       ${TEMP}/ioTvMultiResolutionReadingInName3.txt
       )
 
-# Test to check behavior of function JPEG2000reader->GetResolutionInfo() which return info about resolution available in the JPEG2000 file.
+# Test to check behavior of function JPEG2000reader->GetResolutionInfo() 
+# which return info about resolution available in the JPEG2000 file.
 ADD_TEST(ioTvMultiResolutionReadingInfo ${IO_TESTS13}
   --compare-ascii ${NOTOL}  ${BASELINE_FILES}/ioTvMultiResolutionReadingInfoOut.txt
-                             ${TEMP}/ioTvMultiResolutionReadingInfoOut.txt
+                            ${TEMP}/ioTvMultiResolutionReadingInfoOut.txt
       otbMultiResolutionReadingInfo
       ${INPUTDATA}/bretagne.j2k
       ${TEMP}/ioTvMultiResolutionReadingInfoOut.txt
       )
 
 # Tests which read data in JPEG2000 files.
+# Generate a too big output image to be used in baseline repository (useful only for dev)
 #ADD_TEST(ioTvMultiChannelROI_JPEG2000_2_TIF_res0 ${COMMON_TESTS2}
 #   --compare-image ${EPSILON_9}   ${BASELINE}/ioExtractROI_JPEG2K_2_TIF_bretagne_0_0_2592_1944.tif
 #                     ${TEMP}/ioExtractROI_JPEG2K_2_TIF_bretagne_0_0_2592_1944_OUT.tif
@@ -2079,64 +2077,60 @@ ADD_TEST(ioTvMultiResolutionReadingInfo ${IO_TESTS13}
 #         -startX 0 -startY 0 -sizeX 2592 -sizeY 1944
 #         -channels 1 2 3 )
 
+# Read an area inside one tile at resolution 0
 ADD_TEST(ioTvMultiChannelROI_JPEG2000_2_TIF_res0_1 ${COMMON_TESTS2}
-   --compare-image ${EPSILON_9}   ${BASELINE}/ioExtractROI_JPEG2K_2_TIF_bretagne_700_1000_500_400.tif
-                     ${TEMP}/ioExtractROI_JPEG2K_2_TIF_bretagne_700_1000_500_400_OUT.tif
+   --compare-image ${EPSILON_9}   ${BASELINE}/ioExtractROI_JPEG2K_2_TIF_bretagne_700_1000_50_40.tif
+                                  ${TEMP}/ioExtractROI_JPEG2K_2_TIF_bretagne_700_1000_50_40_OUT.tif
          otbMultiChannelExtractROI
-         ${INPUTDATA}/bretagne.j2k:0
-         ${TEMP}/ioExtractROI_JPEG2K_2_TIF_bretagne_700_1000_500_400_OUT.tif
-         -startX 700 -startY 1000 -sizeX 500 -sizeY 400
-         -channels 1 2 3 )
-
+            ${INPUTDATA}/bretagne.j2k:0
+            ${TEMP}/ioExtractROI_JPEG2K_2_TIF_bretagne_700_1000_50_40_OUT.tif
+            -startX 700 -startY 1000 -sizeX 50 -sizeY 40 )
+           
+# Read an area which need to decode 4 tiles at resolution 0
 ADD_TEST(ioTvMultiChannelROI_JPEG2000_2_TIF_res0_2 ${COMMON_TESTS2}
-   --compare-image ${EPSILON_9}   ${BASELINE}/ioExtractROI_JPEG2K_2_TIF_bretagne_500_950_1200_350.tif
-                     ${TEMP}/ioExtractROI_JPEG2K_2_TIF_bretagne_500_950_1200_350_OUT.tif
+   --compare-image ${EPSILON_9}   ${BASELINE}/ioExtractROI_JPEG2K_2_TIF_bretagne_1260_950_40_20.tif
+                                  ${TEMP}/ioExtractROI_JPEG2K_2_TIF_bretagne_1260_950_40_20_OUT.tif
          otbMultiChannelExtractROI
-         ${INPUTDATA}/bretagne.j2k:0
-         ${TEMP}/ioExtractROI_JPEG2K_2_TIF_bretagne_500_950_1200_350_OUT.tif
-         -startX 500 -startY 950 -sizeX 1200 -sizeY 350
-         -channels 1 2 3 )
+            ${INPUTDATA}/bretagne.j2k:0
+            ${TEMP}/ioExtractROI_JPEG2K_2_TIF_bretagne_1260_950_40_20_OUT.tif
+            -startX 1260 -startY 950 -sizeX 40 -sizeY 20 )
 
+# Read all the image with a resolution 3
 ADD_TEST(ioTvMultiChannelROI_JPEG2000_2_TIF_res3 ${COMMON_TESTS2}
-   --compare-image ${EPSILON_9}   ${BASELINE}/ioExtractROI_JPEG2K_2_TIF_bretagne_0_0_324_243.tif
-                     ${TEMP}/ioExtractROI_JPEG2K_2_TIF_bretagne_0_0_324_243_OUT.tif
+   --compare-image ${EPSILON_9}   ${BASELINE}/ioExtractROI_JPEG2K_2_TIF_bretagne_res3.tif
+                                  ${TEMP}/ioExtractROI_JPEG2K_2_TIF_bretagne_res3_OUT.tif
          otbMultiChannelExtractROI
-         ${INPUTDATA}/bretagne.j2k:3
-         ${TEMP}/ioExtractROI_JPEG2K_2_TIF_bretagne_0_0_324_243_OUT.tif
-         -startX 0 -startY 0 -sizeX 324 -sizeY 243
-         -channels 1 2 3 )
-         
+            ${INPUTDATA}/bretagne.j2k:3
+            ${TEMP}/ioExtractROI_JPEG2K_2_TIF_bretagne_res3_OUT.tif )
+
+# Read area inside one tile at resolution 3         
 ADD_TEST(ioTvMultiChannelROI_JPEG2000_2_TIF_res3_1 ${COMMON_TESTS2}
-   --compare-image ${EPSILON_9}   ${BASELINE}/ioExtractROI_JPEG2K_2_TIF_bretagne_40_30_80_60.tif
-                     ${TEMP}/ioExtractROI_JPEG2K_2_TIF_bretagne_40_30_80_60_OUT.tif
+   --compare-image ${EPSILON_9}   ${BASELINE}/ioExtractROI_JPEG2K_2_TIF_bretagne_res3_90_70_20_30.tif
+                                  ${TEMP}/ioExtractROI_JPEG2K_2_TIF_bretagne_res3_90_70_20_30_OUT.tif
          otbMultiChannelExtractROI
-         ${INPUTDATA}/bretagne.j2k:3
-         ${TEMP}/ioExtractROI_JPEG2K_2_TIF_bretagne_40_30_80_60_OUT.tif
-         -startX 40 -startY 30 -sizeX 80 -sizeY 60
-         -channels 1 2 3 )
-         
-ADD_TEST(ioTvMultiChannelROI_JPEG2000_2_TIF_res5 ${COMMON_TESTS2}
-   --compare-image ${EPSILON_9}   ${BASELINE}/ioExtractROI_JPEG2K_2_TIF_bretagne_0_0_81_61.tif
-                     ${TEMP}/ioExtractROI_JPEG2K_2_TIF_bretagne_0_0_81_61_OUT.tif
+           ${INPUTDATA}/bretagne.j2k:3
+           ${TEMP}/ioExtractROI_JPEG2K_2_TIF_bretagne_res3_90_70_20_30_OUT.tif
+           -startX 90 -startY 70 -sizeX 20 -sizeY 30 )
+
+# Read an area which need to decode 4 tiles at resolution 3           
+ADD_TEST(ioTvMultiChannelROI_JPEG2000_2_TIF_res3_2 ${COMMON_TESTS2}
+   --compare-image ${EPSILON_9}   ${BASELINE}/ioExtractROI_JPEG2K_2_TIF_bretagne_res3_40_30_80_60.tif
+                                  ${TEMP}/ioExtractROI_JPEG2K_2_TIF_bretagne_res3_40_30_80_60_OUT.tif
          otbMultiChannelExtractROI
-         ${INPUTDATA}/bretagne.j2k:5
-         ${TEMP}/ioExtractROI_JPEG2K_2_TIF_bretagne_0_0_81_61_OUT.tif
-         -startX 0 -startY 0 -sizeX 81 -sizeY 61
-         -channels 1 2 3 )
+           ${INPUTDATA}/bretagne.j2k:3
+           ${TEMP}/ioExtractROI_JPEG2K_2_TIF_bretagne_res3_40_30_80_60_OUT.tif
+           -startX 40 -startY 30 -sizeX 80 -sizeY 60 )           
 
-IF(OTB_DATA_USE_LARGEINPUT)
-
-ADD_TEST(ioTvMultiChannelROI_JPEG2000_2_TIF_PLEIADES_res5_FullQuicklook ${COMMON_TESTS2}
-   --compare-image ${EPSILON_9}   ${BASELINE}/ioExtractROI_JPEG2K_2_TIF_pleiades_ql_OUT.tif
-                     ${TEMP}/ioExtractROI_JPEG2K_2_TIF_pleiades_ql_OUT.tif
+# Read all the image with a resolution 5         
+ADD_TEST(ioTvMultiChannelROI_JPEG2000_2_TIF_res5 ${COMMON_TESTS2}
+   --compare-image ${EPSILON_9}   ${BASELINE}/ioExtractROI_JPEG2K_2_TIF_bretagne_res5.tif
+                                  ${TEMP}/ioExtractROI_JPEG2K_2_TIF_bretagne_res5_OUT.tif
          otbMultiChannelExtractROI
-         -ushort ${LARGEDATA}/PLEIADES-PRE/VERSION2/IMG_PHR_001/IMG_R4C1.JP2:5
-         -ushort ${TEMP}/ioExtractROI_JPEG2K_2_TIF_pleiades_ql_OUT.tif
-         )
-ENDIF(OTB_DATA_USE_LARGEINPUT)
+           ${INPUTDATA}/bretagne.j2k:5
+           ${TEMP}/ioExtractROI_JPEG2K_2_TIF_bretagne_res5_OUT.tif )
 
 # Test the possibility to modify the size of cache used to reduce the decoding operations
-# O tile in the cache
+# O tile in the cache (500K)
 ADD_TEST(ioTvJPEG2000ImageIO_CacheSize_500 ${IO_TESTS13}
    --compare-image ${EPSILON_9}   
          ${BASELINE}/ioClassicalQLJPEG2K_bretagne.tif
@@ -2146,7 +2140,7 @@ ADD_TEST(ioTvJPEG2000ImageIO_CacheSize_500 ${IO_TESTS13}
          ${TEMP}/ioClassicalQLJPEG2K_bretagne_500.tif
          500)
 
-# 1 tile in the cache
+# 1 tile in the cache (1000K)
 ADD_TEST(ioTvJPEG2000ImageIO_CacheSize_1000 ${IO_TESTS13}
    --compare-image ${EPSILON_9}   
          ${BASELINE}/ioClassicalQLJPEG2K_bretagne.tif
@@ -2156,7 +2150,7 @@ ADD_TEST(ioTvJPEG2000ImageIO_CacheSize_1000 ${IO_TESTS13}
          ${TEMP}/ioClassicalQLJPEG2K_bretagne_1000.tif
          1000)
 
-# 5 tiles in the cache         
+# 5 tiles in the cache (5000K)        
 ADD_TEST(ioTvJPEG2000ImageIO_CacheSize_5000 ${IO_TESTS13}
    --compare-image ${EPSILON_9}   
          ${BASELINE}/ioClassicalQLJPEG2K_bretagne.tif
@@ -2166,14 +2160,14 @@ ADD_TEST(ioTvJPEG2000ImageIO_CacheSize_5000 ${IO_TESTS13}
          ${TEMP}/ioClassicalQLJPEG2K_bretagne_5000.tif
          5000)
 
-# 135Mb in the cache          
+# 135Mb in the cache (set by otbIFR for JPEG2000)         
 ADD_TEST(ioTvJPEG2000ImageIO_CacheSize_25000 ${IO_TESTS13}
    --compare-image ${EPSILON_9}   
          ${BASELINE}/ioClassicalQLJPEG2K_bretagne.tif
-         ${TEMP}/ioClassicalQLJPEG2K_bretagne_25000.tif
+         ${TEMP}/ioClassicalQLJPEG2K_bretagne_OUT.tif
          otbGenerateClassicalQLWithJPEG2000
          ${INPUTDATA}/bretagne.j2k
-         ${TEMP}/ioClassicalQLJPEG2K_bretagne_25000.tif)
+         ${TEMP}/ioClassicalQLJPEG2K_bretagne_OUT.tif)
 
 ENDIF(OTB_COMPILE_JPEG2000)
 
-- 
GitLab