# CONFORMANCE TESTS AND NON-REGRESSION ON THIS DATASET

file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/Temporary)

set(TEMP ${CMAKE_CURRENT_BINARY_DIR}/Temporary)
set(BASELINE_CONF ${OPJ_DATA_ROOT}/baseline/conformance)
set(BASELINE_NR ${OPJ_DATA_ROOT}/baseline/nonregression)
set(INPUT_CONF ${OPJ_DATA_ROOT}/input/conformance)


# List of components by file (normaly p0_13.j2k have 257 components but for this
#set of test we consider only 4)
set( CP0_nbC_list "not_used;1;1;1;3;4;4;3;3;1;3;1;1;4;3;1;1")
set( CP1_nbC_list "not_used;1;3;4;1;3;3;2")

set(COMMENTCODEVAR FALSE)


##--------------------------------------------------------------------------
## Tests about class 0 profile 0
## try to decode
## compare to ref file provided by the Executable Test Suite
## non regression comparison

## Parameters and tolerances given by Table C.1
#set( C0P0_ResFactor_list "not_used;0;0;0;3;3;3;0;5;2;0;0;0;0;2;0;0")
#set( C0P0_PEAK_list "not_used;0;0;0;33;54;109;10;7;4;10;0;0;0;0;0;0")
#set( C0P0_MSE_list "not_used;0;0;0;55.8;68;743;0.34;6.72;1.47;2.84;0;0;0;0;0;0")

#foreach(numFileC0P0 RANGE 1 16)

#  # Build filenames
#  if(${numFileC0P0} LESS 10)
#    set( filenameInput p0_0${numFileC0P0}.j2k )
#    set( filenameRef   c0p0_0${numFileC0P0}.pgx )
#  else()
#    set( filenameInput p0_${numFileC0P0}.j2k )
#    set( filenameRef   c0p0_${numFileC0P0}.pgx )
#  endif()

#  # Get corresponding tests parameters
#  list(GET C0P0_ResFactor_list ${numFileC0P0}  ResFactor)
#  #For Class-0 testing, we always focus on the first component only
#  #list(GET CP0_nbC_list ${numFileC0P0}  nbComponents)
#  set( nbComponents "1")
#  list(GET C0P0_PEAK_list ${numFileC0P0}  PEAK_limit)
#  list(GET C0P0_MSE_list ${numFileC0P0}  MSE_limit)

#  # Manage cases which need to try different resolution reduction
#  if (numFileC0P0 EQUAL 3 OR numFileC0P0 EQUAL 15)
#    get_filename_component(filenameRefSub ${filenameRef} NAME_WE)
#    #r = 0

#    add_test(ETS-C0P0-${filenameInput}-r0-decode
#        ${EXECUTABLE_OUTPUT_PATH}/opj_decompress
#        -i ${INPUT_CONF}/${filenameInput}
#        -o ${TEMP}/c0${filenameInput}-r0.pgx
#        -r 0
#        )

#    add_test(ETS-C0P0-${filenameInput}-r0-compare2ref
#        ${EXECUTABLE_OUTPUT_PATH}/compare_images
#        -b ${BASELINE_CONF}/${filenameRefSub}r0.pgx
#        -t ${TEMP}/c0${filenameInput}-r0.pgx
#        -n ${nbComponents}
#        -p ${PEAK_limit}
#        -m ${MSE_limit}
#        -s t_
#        )

#    set_tests_properties(ETS-C0P0-${filenameInput}-r0-compare2ref
#                         PROPERTIES DEPENDS
#                         ETS-C0P0-${filenameInput}-r0-decode)

#    add_test(NR-C0P0-${filenameInput}-r0-compare2base
#        ${EXECUTABLE_OUTPUT_PATH}/compare_images
#        -b ${BASELINE_NR}/opj_${filenameRefSub}-r0.pgx
#        -t ${TEMP}/c0${filenameInput}-r0.pgx
#        -n ${nbComponents}
#        -d
#        -s b_t_
#        )

#    set_tests_properties(NR-C0P0-${filenameInput}-r0-compare2base
#                         PROPERTIES DEPENDS
#                         ETS-C0P0-${filenameInput}-r0-decode)

#    #r = 1
#    add_test(ETS-C0P0-${filenameInput}-r1-decode
#        ${EXECUTABLE_OUTPUT_PATH}/opj_decompress
#        -i ${INPUT_CONF}/${filenameInput}
#        -o ${TEMP}/c0${filenameInput}-r1.pgx
#        -r 1
#        )

#    add_test(ETS-C0P0-${filenameInput}-r1-compare2ref
#        ${EXECUTABLE_OUTPUT_PATH}/compare_images
#        -b ${BASELINE_CONF}/${filenameRefSub}r1.pgx
#        -t ${TEMP}/c0${filenameInput}-r1.pgx
#        -n ${nbComponents}
#        -p ${PEAK_limit}
#        -m ${MSE_limit}
#        -s t_
#        )

#    set_tests_properties(ETS-C0P0-${filenameInput}-r1-compare2ref
#                         PROPERTIES DEPENDS
#                         ETS-C0P0-${filenameInput}-r1-decode)

#    add_test(NR-C0P0-${filenameInput}-r1-compare2base
#        ${EXECUTABLE_OUTPUT_PATH}/compare_images
#        -b ${BASELINE_NR}/opj_${filenameRefSub}-r1.pgx
#        -t ${TEMP}/c0${filenameInput}-r1.pgx
#        -n ${nbComponents}
#        -d
#        -s b_t_
#        )

#    set_tests_properties(NR-C0P0-${filenameInput}-r1-compare2base
#                         PROPERTIES DEPENDS
#                         ETS-C0P0-${filenameInput}-r1-decode)

#  else()

#    add_test(ETS-C0P0-${filenameInput}-decode
#        ${EXECUTABLE_OUTPUT_PATH}/opj_decompress
#        -i ${INPUT_CONF}/${filenameInput}
#        -o ${TEMP}/c0${filenameInput}.pgx
#        -r ${ResFactor}
#        )

#    add_test(ETS-C0P0-${filenameInput}-compare2ref
#        ${EXECUTABLE_OUTPUT_PATH}/compare_images
#        -b ${BASELINE_CONF}/${filenameRef}
#        -t ${TEMP}/c0${filenameInput}.pgx
#        -n ${nbComponents}
#        -p ${PEAK_limit}
#        -m ${MSE_limit}
#        -s t_
#        )

#    set_tests_properties(ETS-C0P0-${filenameInput}-compare2ref
#                         PROPERTIES DEPENDS
#                         ETS-C0P0-${filenameInput}-decode)

#    add_test(NR-C0P0-${filenameInput}-compare2base
#        ${EXECUTABLE_OUTPUT_PATH}/compare_images
#        -b ${BASELINE_NR}/opj_${filenameRef}
#        -t ${TEMP}/c0${filenameInput}.pgx
#        -n ${nbComponents}
#        -d
#        -s b_t_
#        )

#    set_tests_properties(NR-C0P0-${filenameInput}-compare2base
#                         PROPERTIES DEPENDS
#                         ETS-C0P0-${filenameInput}-decode)

#  endif()

#endforeach()

##--------------------------------------------------------------------------
## Tests about class 0 profile 1
## try to decode
## compare to ref file
## non regression comparison

## Parameters and tolerances given by Table C.4
#set( C0P1_ResFactor_list "not_used;0;3;3;0;4;1;0")
#set( C0P1_PEAK_list "not_used;0;35;28;2;128;128;0")
#set( C0P1_MSE_list "not_used;0;74;18.8;0.550;16384;16384;0")

#foreach(numFileC0P1 RANGE 1 7)

#  # Build filenames
#  set( filenameInput p1_0${numFileC0P1}.j2k )
#  set( filenameRef   c0p1_0${numFileC0P1}.pgx )

#  # Get corresponding tests parameters
#  list(GET C0P1_ResFactor_list ${numFileC0P1}  ResFactor)
#  #For Class-0 testing, we always focus on the first component only
#  #list(GET CP0_nbC_list ${numFileC0P0}  nbComponents)
#  set( nbComponents "1")
#  list(GET C0P1_PEAK_list ${numFileC0P1}  PEAK_limit)
#  list(GET C0P1_MSE_list ${numFileC0P1}  MSE_limit)

#  # Manage cases which need to try different resolution reduction
#  if (numFileC0P1 EQUAL 4 )
#    get_filename_component(filenameRefSub ${filenameRef} NAME_WE)

#    #r = 0
#    add_test(ETS-C0P1-${filenameInput}-r0-decode
#        ${EXECUTABLE_OUTPUT_PATH}/opj_decompress
#        -i ${INPUT_CONF}/${filenameInput}
#        -o ${TEMP}/c0${filenameInput}-r0.pgx
#        -r 0
#        )

#    add_test(ETS-C0P1-${filenameInput}-r0-compare2ref
#        ${EXECUTABLE_OUTPUT_PATH}/compare_images
#        -b ${BASELINE_CONF}/${filenameRefSub}r0.pgx
#        -t ${TEMP}/c0${filenameInput}-r0.pgx
#        -n ${nbComponents}
#        -p ${PEAK_limit}
#        -m ${MSE_limit}
#        -s t_
#        )

#    set_tests_properties(ETS-C0P1-${filenameInput}-r0-compare2ref
#                         PROPERTIES DEPENDS
#                         ETS-C0P1-${filenameInput}-r0-decode)

#    add_test(NR-C0P1-${filenameInput}-r0-compare2base
#        ${EXECUTABLE_OUTPUT_PATH}/compare_images
#        -b ${BASELINE_NR}/opj_${filenameRefSub}-r0.pgx
#        -t ${TEMP}/c0${filenameInput}-r0.pgx
#        -n ${nbComponents}
#        -d
#        -s b_t_
#        )

#    set_tests_properties(NR-C0P1-${filenameInput}-r0-compare2base
#                         PROPERTIES DEPENDS
#                         ETS-C0P1-${filenameInput}-r0-decode)

#    #r = 3
#    add_test(ETS-C0P1-${filenameInput}-r3-decode
#        ${EXECUTABLE_OUTPUT_PATH}/opj_decompress
#        -i ${INPUT_CONF}/${filenameInput}
#        -o ${TEMP}/c0${filenameInput}-r3.pgx
#        -r 3
#        )

#    add_test(ETS-C0P1-${filenameInput}-r3-compare2ref
#        ${EXECUTABLE_OUTPUT_PATH}/compare_images
#        -b ${BASELINE_CONF}/${filenameRefSub}r3.pgx
#        -t ${TEMP}/c0${filenameInput}-r3.pgx
#        -n ${nbComponents}
#        -p ${PEAK_limit}
#        -m ${MSE_limit}
#        -s t_
#        )

#    set_tests_properties(ETS-C0P1-${filenameInput}-r3-compare2ref
#                         PROPERTIES DEPENDS
#                         ETS-C0P1-${filenameInput}-r3-decode)

#    add_test(NR-C0P1-${filenameInput}-r3-compare2base
#        ${EXECUTABLE_OUTPUT_PATH}/compare_images
#        -b ${BASELINE_NR}/opj_${filenameRefSub}-r3.pgx
#        -t ${TEMP}/c0${filenameInput}-r3.pgx
#        -n ${nbComponents}
#        -d
#        -s b_t_
#        )

#    set_tests_properties(NR-C0P1-${filenameInput}-r3-compare2base
#                         PROPERTIES DEPENDS
#                         ETS-C0P1-${filenameInput}-r3-decode)

#  else()

#    add_test(ETS-C0P1-${filenameInput}-decode
#        ${EXECUTABLE_OUTPUT_PATH}/opj_decompress
#        -i ${INPUT_CONF}/${filenameInput}
#        -o ${TEMP}/c0${filenameInput}.pgx
#        -r ${ResFactor}
#        )

#    add_test(ETS-C0P1-${filenameInput}-compare2ref
#        ${EXECUTABLE_OUTPUT_PATH}/compare_images
#        -b ${BASELINE_CONF}/${filenameRef}
#        -t ${TEMP}/c0${filenameInput}.pgx
#        -n ${nbComponents}
#        -p ${PEAK_limit}
#        -m ${MSE_limit}
#        -s t_
#        )

#    set_tests_properties(ETS-C0P1-${filenameInput}-compare2ref
#                         PROPERTIES DEPENDS
#                         ETS-C0P1-${filenameInput}-decode)

#    add_test(NR-C0P1-${filenameInput}-compare2base
#        ${EXECUTABLE_OUTPUT_PATH}/compare_images
#        -b ${BASELINE_NR}/opj_${filenameRef}
#        -t ${TEMP}/c0${filenameInput}.pgx
#        -n ${nbComponents}
#        -d
#        -s b_t_
#        )

#    set_tests_properties(NR-C0P1-${filenameInput}-compare2base
#                         PROPERTIES DEPENDS
#                         ETS-C0P1-${filenameInput}-decode)

#  endif()

#endforeach()

#--------------------------------------------------------------------------
# Tests about class 1 profile 0
# try to decode
# compare to ref file
# non regression comparison

# Parameters and tolerances given by Table C.6
set( C1P0_ResFactor_list "not_used;0;0;0;0;0;0;0;1;0;0;0;0;0;0;0;0")
set( C1P0_PEAK_list "not_used;0;0;0;5:4:6;2:2:2:0;635:403:378:0;0:0:0;0:0:0;0;0:0:0;0;0;0:0:0:0;0:0:0;0;0")
set( C1P0_MSE_list  "not_used;0;0;0;0.776:0.626:1.070;0.302:0.307:0.269:0;11287:6124:3968:0;0:0:0;0:0:0;0;0:0:0;0;0;0:0:0:0;0:0:0;0;0")

foreach(numFileC1P0 RANGE 1 16)

  # Build filenames
  if(${numFileC1P0} LESS 10)
    set( filenameInput p0_0${numFileC1P0}.j2k )
    set( filenameRef   c1p0_0${numFileC1P0}.pgx )
  else()
    set( filenameInput p0_${numFileC1P0}.j2k )
    set( filenameRef   c1p0_${numFileC1P0}.pgx )
  endif()

  # Get corresponding tests parameters
  list(GET CP0_nbC_list ${numFileC1P0}  nbComponents)
  list(GET C1P0_ResFactor_list ${numFileC1P0}  ResFactor)
  list(GET C1P0_PEAK_list ${numFileC1P0}  PEAK_limit)
  list(GET C1P0_MSE_list ${numFileC1P0}  MSE_limit)

  add_test(NAME ETS-C1P0-${filenameInput}-decode
      COMMAND opj_decompress
      -i ${INPUT_CONF}/${filenameInput}
      -o ${TEMP}/c1${filenameInput}.pgx
      -r ${ResFactor}
      )

  add_test(NAME ETS-C1P0-${filenameInput}-compare2ref
      COMMAND compare_images
     -b ${BASELINE_CONF}/${filenameRef}
     -t ${TEMP}/c1${filenameInput}.pgx
     -n ${nbComponents}
     -p ${PEAK_limit}
     -m ${MSE_limit}
     -s b_t_
     )

  set_tests_properties(ETS-C1P0-${filenameInput}-compare2ref
                       PROPERTIES DEPENDS
                       ETS-C1P0-${filenameInput}-decode)

  add_test(NAME NR-C1P0-${filenameInput}-compare2base
      COMMAND compare_images
     -b ${BASELINE_NR}/opj_${filenameRef}
     -t ${TEMP}/c1${filenameInput}.pgx
     -n ${nbComponents}
     -d
     -s b_t_
     )

  set_tests_properties(NR-C1P0-${filenameInput}-compare2base
                       PROPERTIES DEPENDS
                       ETS-C1P0-${filenameInput}-decode)

endforeach()

#--------------------------------------------------------------------------
# Tests about class 1 profile 1
# try to decode
# compare to ref file
# non regression comparison

# Parameters and tolerances given by Table C.7
set( C1P1_PEAK_list "not_used;0;5:4:6;2:2:1:0;624;40:40:40;2:2:2;0:0")
set( C1P1_MSE_list  "not_used;0;0.765:0.616:1.051;0.3:0.210:0.200:0;3080;8.458:9.816:10.154;0.6:0.6:0.6;0:0")

foreach(numFileC1P1 RANGE 1 7)

  # Build filenames
  set( filenameInput p1_0${numFileC1P1}.j2k )
  set( filenameRef   c1p1_0${numFileC1P1}.pgx )

  # Get corresponding tests parameters
  list(GET CP1_nbC_list ${numFileC1P1}  nbComponents)
  list(GET C1P1_PEAK_list ${numFileC1P1}  PEAK_limit)
  list(GET C1P1_MSE_list ${numFileC1P1}  MSE_limit)

  add_test(NAME ETS-C1P1-${filenameInput}-decode
      COMMAND opj_decompress
      -i ${INPUT_CONF}/${filenameInput}
      -o ${TEMP}/c1${filenameInput}.pgx
      -r 0
      )

  add_test(NAME ETS-C1P1-${filenameInput}-compare2ref
      COMMAND compare_images
     -b ${BASELINE_CONF}/${filenameRef}
     -t ${TEMP}/c1${filenameInput}.pgx
     -n ${nbComponents}
     -p ${PEAK_limit}
     -m ${MSE_limit}
     -s b_t_
     )

  set_tests_properties(ETS-C1P1-${filenameInput}-compare2ref
                       PROPERTIES DEPENDS
                       ETS-C1P1-${filenameInput}-decode)

  add_test(NAME NR-C1P1-${filenameInput}-compare2base
      COMMAND compare_images
     -b ${BASELINE_NR}/opj_${filenameRef}
     -t ${TEMP}/c1${filenameInput}.pgx
     -n ${nbComponents}
     -d
     -s b_t_
     )

  set_tests_properties(NR-C1P1-${filenameInput}-compare2base
                       PROPERTIES DEPENDS
                       ETS-C1P1-${filenameInput}-decode)

endforeach()

#--------------------------------------------------------------------------
# Tests about JP2 file
# try to decode
# compare to ref file
# non regression comparison

# Tolerances given by Part 4 - Table G.1
# Peak is set to 4 only

foreach(numFileJP2 RANGE 1 9)

  # Build filenames
  set( filenameInput "file${numFileJP2}.jp2" )
  set( filenameRef   jp2_${numFileJP2}.tif )

  add_test(NAME ETS-JP2-${filenameInput}-decode
    COMMAND opj_decompress
    -i ${INPUT_CONF}/${filenameInput}
    -o ${TEMP}/${filenameInput}.tif
    -p 8S
    -force-rgb
  )

  add_test(NAME ETS-JP2-${filenameInput}-compare2ref
    COMMAND compare_images
    -b ${BASELINE_CONF}/${filenameRef}
    -t ${TEMP}/${filenameInput}.tif
    -n 3
    -p 4:4:4
    -m 1:1:1
    -s b_t_
  )

  set_tests_properties(ETS-JP2-${filenameInput}-compare2ref
    PROPERTIES DEPENDS
    ETS-JP2-${filenameInput}-decode)

  add_test(NAME NR-JP2-${filenameInput}-compare2base
    COMMAND compare_images
    -b ${BASELINE_NR}/opj_${filenameRef}
    -t ${TEMP}/${filenameInput}.tif
    -n 3
    -d
    -s b_t_
  )

  set_tests_properties(NR-JP2-${filenameInput}-compare2base
    PROPERTIES DEPENDS
    ETS-JP2-${filenameInput}-decode)

endforeach()

#--------------------------------------------------------------------------
# Tests about Kakadu/J2K file
# try to decode
# compare to ref file
# non regression comparison

# Tolerances given by ???

set(kdu_j2k_conf_files
  a1_mono
  a2_colr
  a3_mono
  a4_colr
  a5_mono
  a6_mono_colr
  b1_mono
  b2_mono
  b3_mono
  c1_mono
  c2_mono
  d1_colr
  d2_colr
  e1_colr
  e2_colr
  f1_mono
  f2_mono
  g1_colr
  g2_colr
  g3_colr
  g4_colr
)

foreach(kdu_file ${kdu_j2k_conf_files})

  # Build filenames
  set( filenameInput "${kdu_file}.j2c" )
  set( filenameRef   "${kdu_file}.ppm" )

	if("${kdu_file}" STREQUAL "a6_mono_colr")
    set(kdu_test_args -upsample -split-pnm )
  else()
    set(kdu_test_args -upsample )
  endif()

  add_test(NAME ETS-KDU-${filenameInput}-decode
    COMMAND opj_decompress
    -i ${INPUT_CONF}/${filenameInput}
    -o ${TEMP}/${filenameInput}.ppm
    ${kdu_test_args}
  )

  if("${kdu_file}" STREQUAL "a6_mono_colr")
    set(kdu_test_args -n 4 -s b_t_ )
    set(kdu_test_args_tol -p 4:4:4:4 -m 1:1:1:1)
  else()
    set(kdu_test_args -n 1 )
    set(kdu_test_args_tol -p 4:4:4 -m 1:1:1)
  endif()

  add_test(NAME ETS-KDU-${filenameInput}-compare2ref
    COMMAND compare_images
    -b ${BASELINE_CONF}/${filenameRef}
    -t ${TEMP}/${filenameInput}.ppm
    ${kdu_test_args}
    ${kdu_test_args_tol}
  )

  set_tests_properties(ETS-KDU-${filenameInput}-compare2ref
    PROPERTIES DEPENDS
    ETS-KDU-${filenameInput}-decode)

  add_test(NAME NR-KDU-${filenameInput}-compare2base
    COMMAND compare_images
    -b ${BASELINE_NR}/opj_${filenameRef}
    -t ${TEMP}/${filenameInput}.ppm
    ${kdu_test_args}
    -d
  )

  set_tests_properties(NR-KDU-${filenameInput}-compare2base
    PROPERTIES DEPENDS
    ETS-KDU-${filenameInput}-decode)
endforeach()

#--------------------------------------------------------------------------
# Tests about Richter/J2K file
# try to decode
# compare to ref file
# non regression comparison

# Tolerances given by ???

set(richter_jp2_conf_files
  subsampling_1
  subsampling_2
  zoo1
  zoo2
)

foreach(r_file ${richter_jp2_conf_files})

  # Build filenames
  set( filenameInput "${r_file}.jp2" )
  set( filenameRef   "${r_file}.ppm" )

  add_test(NAME ETS-RIC-${filenameInput}-decode
    COMMAND opj_decompress
    -i ${INPUT_CONF}/${filenameInput}
    -o ${TEMP}/${filenameInput}.ppm
  )

  set(ric_test_args -n 1)

  add_test(NAME ETS-RIC-${filenameInput}-compare2ref
    COMMAND compare_images
    -b ${BASELINE_CONF}/${filenameRef}
    -t ${TEMP}/${filenameInput}.ppm
    ${ric_test_args}
    -p 4:4:4
    -m 2:2:2
  )

  set_tests_properties(ETS-RIC-${filenameInput}-compare2ref
    PROPERTIES DEPENDS
    ETS-RIC-${filenameInput}-decode)

  add_test(NAME NR-RIC-${filenameInput}-compare2base
    COMMAND compare_images
    -b ${BASELINE_NR}/opj_${filenameRef}
    -t ${TEMP}/${filenameInput}.ppm
    ${ric_test_args}
    -d
  )

  set_tests_properties(NR-RIC-${filenameInput}-compare2base
    PROPERTIES DEPENDS
    ETS-RIC-${filenameInput}-decode)
endforeach()

#--------------------------------------------------------------------------#
#--------------------------------------------------------------------------#
#--------------------------------------------------------------------------#

#--------------------------------------------------------------------------
# Tests about dump of profile 0 file
# try to dump image and codestream informations into a file
# non regression comparison this file to the baseline

foreach(numFileP0 RANGE 1 16)

  # Build filenames
  if(${numFileP0} LESS 10)
    set( filenameInput p0_0${numFileP0}.j2k )
  else()
    set( filenameInput p0_${numFileP0}.j2k )
  endif()
  get_filename_component(filenameRefSub ${filenameInput} NAME_WE)


  add_test(NAME NR-${filenameInput}-dump
      COMMAND opj_dump
     -i ${INPUT_CONF}/${filenameInput}
     -o ${TEMP}/${filenameInput}.txt
     )

  add_test(NAME NR-${filenameInput}-compare_dump2base
      COMMAND compare_dump_files
     -b ${BASELINE_NR}/opj_v2_${filenameRefSub}.txt
     -t ${TEMP}/${filenameInput}.txt
     )

  set_tests_properties(NR-${filenameInput}-compare_dump2base
                       PROPERTIES DEPENDS
                       NR-${filenameInput}-dump)

endforeach()

#--------------------------------------------------------------------------
# Tests about dump of profile 1 file
# try to dump image and codestream informations into a file
# non regression comparison this file to the baseline

foreach(numFileP1 RANGE 1 7)

  # Build filenames
  set( filenameInput p1_0${numFileP1}.j2k )
  get_filename_component(filenameInputSub ${filenameInput} NAME_WE)

  add_test(NAME NR-${filenameInput}-dump
      COMMAND opj_dump
     -i ${INPUT_CONF}/${filenameInput}
     -o ${TEMP}/${filenameInput}.txt
     )

  add_test(NAME NR-${filenameInput}-compare_dump2base
      COMMAND compare_dump_files
     -b ${BASELINE_NR}/opj_v2_${filenameInputSub}.txt
     -t ${TEMP}/${filenameInput}.txt
     )

  set_tests_properties(NR-${filenameInput}-compare_dump2base
                       PROPERTIES DEPENDS
                       NR-${filenameInput}-dump)

endforeach()

#--------------------------------------------------------------------------
# Tests about dump of JP2 file
# try to dump image and codestream informations into a file
# non regression comparison this file to the baseline

foreach(numFileJP2 RANGE 1 9)

  # Build filenames
  set( filenameInput "file${numFileJP2}.jp2" )
  get_filename_component(filenameInputSub ${filenameInput} NAME_WE)

  add_test(NAME NR-${filenameInput}-dump
      COMMAND opj_dump
     -i ${INPUT_CONF}/${filenameInput}
     -o ${TEMP}/${filenameInput}.txt
     )

  add_test(NAME NR-${filenameInput}-compare_dump2base
      COMMAND compare_dump_files
     -b ${BASELINE_NR}/opj_v2_${filenameInputSub}.txt
     -t ${TEMP}/${filenameInput}.txt
     )

  set_tests_properties(NR-${filenameInput}-compare_dump2base
                       PROPERTIES DEPENDS
                       NR-${filenameInput}-dump)

endforeach()
