1 # CONFORMANCE TESTS AND NON-REGRESSION ON THIS DATASET
3 file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/Temporary)
5 set(TEMP ${CMAKE_CURRENT_BINARY_DIR}/Temporary)
6 set(BASELINE_CONF ${OPJ_DATA_ROOT}/baseline/conformance)
7 set(BASELINE_NR ${OPJ_DATA_ROOT}/baseline/nonregression)
8 set(INPUT_CONF ${OPJ_DATA_ROOT}/input/conformance)
11 # List of components by file (normaly p0_13.j2k have 257 components but for this
12 #set of test we consider only 4)
13 set( CP0_nbC_list "not_used;1;1;1;3;4;4;3;3;1;3;1;1;4;3;1;1")
14 set( CP1_nbC_list "not_used;1;3;4;1;3;3;2")
16 set(COMMENTCODEVAR FALSE)
19 #--------------------------------------------------------------------------
20 # Tests about class 0 profile 0
22 # compare to ref file provided by the Executable Test Suite
23 # non regression comparison
25 # Parameters and tolerances given by Table C.1
26 set( C0P0_ResFactor_list "not_used;0;0;0;3;3;3;0;5;2;0;0;0;0;2;0;0")
27 set( C0P0_PEAK_list "not_used;0;0;0;33;54;109;10;7;4;10;0;0;0;0;0;0")
28 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")
30 foreach(numFileC0P0 RANGE 1 16)
33 if(${numFileC0P0} LESS 10)
34 set( filenameInput p0_0${numFileC0P0}.j2k )
35 set( filenameRef c0p0_0${numFileC0P0}.pgx )
37 set( filenameInput p0_${numFileC0P0}.j2k )
38 set( filenameRef c0p0_${numFileC0P0}.pgx )
41 # Get corresponding tests parameters
42 list(GET C0P0_ResFactor_list ${numFileC0P0} ResFactor)
43 list(GET CP0_nbC_list ${numFileC0P0} nbComponents)
44 list(GET C0P0_PEAK_list ${numFileC0P0} PEAK_limit)
45 list(GET C0P0_MSE_list ${numFileC0P0} MSE_limit)
47 # Manage cases which need to try different resolution reduction
48 if (numFileC0P0 EQUAL 3 OR numFileC0P0 EQUAL 15)
49 get_filename_component(filenameRefSub ${filenameRef} NAME_WE)
52 add_test(ETS-C0P0-${filenameInput}-r0-decode
53 ${EXECUTABLE_OUTPUT_PATH}/opj_decompress
54 -i ${INPUT_CONF}/${filenameInput}
55 -o ${TEMP}/c0${filenameInput}-r0.pgx
59 add_test(ETS-C0P0-${filenameInput}-r0-compare2ref
60 ${EXECUTABLE_OUTPUT_PATH}/comparePGXimages
61 -b ${BASELINE_CONF}/${filenameRefSub}r0.pgx
62 -t ${TEMP}/c0${filenameInput}-r0.pgx
69 set_tests_properties(ETS-C0P0-${filenameInput}-r0-compare2ref
71 ETS-C0P0-${filenameInput}-r0-decode)
73 add_test(NR-C0P0-${filenameInput}-r0-compare2base
74 ${EXECUTABLE_OUTPUT_PATH}/comparePGXimages
75 -b ${BASELINE_NR}/opj_${filenameRefSub}-r0.pgx
76 -t ${TEMP}/c0${filenameInput}-r0.pgx
82 set_tests_properties(NR-C0P0-${filenameInput}-r0-compare2base
84 ETS-C0P0-${filenameInput}-r0-decode)
87 add_test(ETS-C0P0-${filenameInput}-r1-decode
88 ${EXECUTABLE_OUTPUT_PATH}/opj_decompress
89 -i ${INPUT_CONF}/${filenameInput}
90 -o ${TEMP}/c0${filenameInput}-r1.pgx
94 add_test(ETS-C0P0-${filenameInput}-r1-compare2ref
95 ${EXECUTABLE_OUTPUT_PATH}/comparePGXimages
96 -b ${BASELINE_CONF}/${filenameRefSub}r1.pgx
97 -t ${TEMP}/c0${filenameInput}-r1.pgx
104 set_tests_properties(ETS-C0P0-${filenameInput}-r1-compare2ref
106 ETS-C0P0-${filenameInput}-r1-decode)
108 add_test(NR-C0P0-${filenameInput}-r1-compare2base
109 ${EXECUTABLE_OUTPUT_PATH}/comparePGXimages
110 -b ${BASELINE_NR}/opj_${filenameRefSub}-r1.pgx
111 -t ${TEMP}/c0${filenameInput}-r1.pgx
117 set_tests_properties(NR-C0P0-${filenameInput}-r1-compare2base
119 ETS-C0P0-${filenameInput}-r1-decode)
123 add_test(ETS-C0P0-${filenameInput}-decode
124 ${EXECUTABLE_OUTPUT_PATH}/opj_decompress
125 -i ${INPUT_CONF}/${filenameInput}
126 -o ${TEMP}/c0${filenameInput}.pgx
130 add_test(ETS-C0P0-${filenameInput}-compare2ref
131 ${EXECUTABLE_OUTPUT_PATH}/comparePGXimages
132 -b ${BASELINE_CONF}/${filenameRef}
133 -t ${TEMP}/c0${filenameInput}.pgx
140 set_tests_properties(ETS-C0P0-${filenameInput}-compare2ref
142 ETS-C0P0-${filenameInput}-decode)
144 add_test(NR-C0P0-${filenameInput}-compare2base
145 ${EXECUTABLE_OUTPUT_PATH}/comparePGXimages
146 -b ${BASELINE_NR}/opj_${filenameRef}
147 -t ${TEMP}/c0${filenameInput}.pgx
153 set_tests_properties(NR-C0P0-${filenameInput}-compare2base
155 ETS-C0P0-${filenameInput}-decode)
161 #--------------------------------------------------------------------------
162 # Tests about class 0 profile 1
164 # compare to ref file
165 # non regression comparison
167 # Parameters and tolerances given by Table C.4
168 set( C0P1_ResFactor_list "not_used;0;3;3;0;4;1;0")
169 set( C0P1_PEAK_list "not_used;0;35;28;2;128;128;0")
170 set( C0P1_MSE_list "not_used;0;74;18.8;0.550;16384;16384;0")
172 foreach(numFileC0P1 RANGE 1 7)
175 set( filenameInput p1_0${numFileC0P1}.j2k )
176 set( filenameRef c0p1_0${numFileC0P1}.pgx )
178 # Get corresponding tests parameters
179 list(GET C0P1_ResFactor_list ${numFileC0P1} ResFactor)
180 list(GET CP1_nbC_list ${numFileC0P1} nbComponents)
181 list(GET C0P1_PEAK_list ${numFileC0P1} PEAK_limit)
182 list(GET C0P1_MSE_list ${numFileC0P1} MSE_limit)
184 # Manage cases which need to try different resolution reduction
185 if (numFileC0P1 EQUAL 4 )
186 get_filename_component(filenameRefSub ${filenameRef} NAME_WE)
189 add_test(ETS-C0P1-${filenameInput}-r0-decode
190 ${EXECUTABLE_OUTPUT_PATH}/opj_decompress
191 -i ${INPUT_CONF}/${filenameInput}
192 -o ${TEMP}/c0${filenameInput}-r0.pgx
196 add_test(ETS-C0P1-${filenameInput}-r0-compare2ref
197 ${EXECUTABLE_OUTPUT_PATH}/comparePGXimages
198 -b ${BASELINE_CONF}/${filenameRefSub}r0.pgx
199 -t ${TEMP}/c0${filenameInput}-r0.pgx
206 set_tests_properties(ETS-C0P1-${filenameInput}-r0-compare2ref
208 ETS-C0P1-${filenameInput}-r0-decode)
210 add_test(NR-C0P1-${filenameInput}-r0-compare2base
211 ${EXECUTABLE_OUTPUT_PATH}/comparePGXimages
212 -b ${BASELINE_NR}/opj_${filenameRefSub}-r0.pgx
213 -t ${TEMP}/c0${filenameInput}-r0.pgx
219 set_tests_properties(NR-C0P1-${filenameInput}-r0-compare2base
221 ETS-C0P1-${filenameInput}-r0-decode)
224 add_test(ETS-C0P1-${filenameInput}-r3-decode
225 ${EXECUTABLE_OUTPUT_PATH}/opj_decompress
226 -i ${INPUT_CONF}/${filenameInput}
227 -o ${TEMP}/c0${filenameInput}-r3.pgx
231 add_test(ETS-C0P1-${filenameInput}-r3-compare2ref
232 ${EXECUTABLE_OUTPUT_PATH}/comparePGXimages
233 -b ${BASELINE_CONF}/${filenameRefSub}r3.pgx
234 -t ${TEMP}/c0${filenameInput}-r3.pgx
241 set_tests_properties(ETS-C0P1-${filenameInput}-r3-compare2ref
243 ETS-C0P1-${filenameInput}-r3-decode)
245 add_test(NR-C0P1-${filenameInput}-r3-compare2base
246 ${EXECUTABLE_OUTPUT_PATH}/comparePGXimages
247 -b ${BASELINE_NR}/opj_${filenameRefSub}-r3.pgx
248 -t ${TEMP}/c0${filenameInput}-r3.pgx
254 set_tests_properties(NR-C0P1-${filenameInput}-r3-compare2base
256 ETS-C0P1-${filenameInput}-r3-decode)
260 add_test(ETS-C0P1-${filenameInput}-decode
261 ${EXECUTABLE_OUTPUT_PATH}/opj_decompress
262 -i ${INPUT_CONF}/${filenameInput}
263 -o ${TEMP}/c0${filenameInput}.pgx
267 add_test(ETS-C0P1-${filenameInput}-compare2ref
268 ${EXECUTABLE_OUTPUT_PATH}/comparePGXimages
269 -b ${BASELINE_CONF}/${filenameRef}
270 -t ${TEMP}/c0${filenameInput}.pgx
277 set_tests_properties(ETS-C0P1-${filenameInput}-compare2ref
279 ETS-C0P1-${filenameInput}-decode)
281 add_test(NR-C0P1-${filenameInput}-compare2base
282 ${EXECUTABLE_OUTPUT_PATH}/comparePGXimages
283 -b ${BASELINE_NR}/opj_${filenameRef}
284 -t ${TEMP}/c0${filenameInput}.pgx
290 set_tests_properties(NR-C0P1-${filenameInput}-compare2base
292 ETS-C0P1-${filenameInput}-decode)
298 #--------------------------------------------------------------------------
299 # Tests about class 1 profile 0
301 # compare to ref file
302 # non regression comparison
304 # Parameters and tolerances given by Table C.6
305 set( C1P0_ResFactor_list "not_used;0;0;0;0;0;0;0;1;0;0;0;0;0;0;0;0")
306 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")
307 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")
309 foreach(numFileC1P0 RANGE 1 16)
312 if(${numFileC1P0} LESS 10)
313 set( filenameInput p0_0${numFileC1P0}.j2k )
314 set( filenameRef c1p0_0${numFileC1P0}.pgx )
316 set( filenameInput p0_${numFileC1P0}.j2k )
317 set( filenameRef c1p0_${numFileC1P0}.pgx )
320 # Get corresponding tests parameters
321 list(GET CP0_nbC_list ${numFileC1P0} nbComponents)
322 list(GET C1P0_ResFactor_list ${numFileC1P0} ResFactor)
323 list(GET C1P0_PEAK_list ${numFileC1P0} PEAK_limit)
324 list(GET C1P0_MSE_list ${numFileC1P0} MSE_limit)
326 add_test(ETS-C1P0-${filenameInput}-decode
327 ${EXECUTABLE_OUTPUT_PATH}/opj_decompress
328 -i ${INPUT_CONF}/${filenameInput}
329 -o ${TEMP}/c1${filenameInput}.pgx
333 add_test(ETS-C1P0-${filenameInput}-compare2ref
334 ${EXECUTABLE_OUTPUT_PATH}/comparePGXimages
335 -b ${BASELINE_CONF}/${filenameRef}
336 -t ${TEMP}/c1${filenameInput}.pgx
343 set_tests_properties(ETS-C1P0-${filenameInput}-compare2ref
345 ETS-C1P0-${filenameInput}-decode)
347 add_test(NR-C1P0-${filenameInput}-compare2base
348 ${EXECUTABLE_OUTPUT_PATH}/comparePGXimages
349 -b ${BASELINE_NR}/opj_${filenameRef}
350 -t ${TEMP}/c1${filenameInput}.pgx
356 set_tests_properties(NR-C1P0-${filenameInput}-compare2base
358 ETS-C1P0-${filenameInput}-decode)
362 #--------------------------------------------------------------------------
363 # Tests about class 1 profile 1
365 # compare to ref file
366 # non regression comparison
368 # Parameters and tolerances given by Table C.7
369 set( C1P1_PEAK_list "not_used;0;5:4:6;2:2:1:0;624;40:40:40;2:2:2;0:0")
370 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")
372 foreach(numFileC1P1 RANGE 1 7)
375 set( filenameInput p1_0${numFileC1P1}.j2k )
376 set( filenameRef c1p1_0${numFileC1P1}.pgx )
378 # Get corresponding tests parameters
379 list(GET CP1_nbC_list ${numFileC1P1} nbComponents)
380 list(GET C1P1_PEAK_list ${numFileC1P1} PEAK_limit)
381 list(GET C1P1_MSE_list ${numFileC1P1} MSE_limit)
383 add_test(ETS-C1P1-${filenameInput}-decode
384 ${EXECUTABLE_OUTPUT_PATH}/opj_decompress
385 -i ${INPUT_CONF}/${filenameInput}
386 -o ${TEMP}/c1${filenameInput}.pgx
390 add_test(ETS-C1P1-${filenameInput}-compare2ref
391 ${EXECUTABLE_OUTPUT_PATH}/comparePGXimages
392 -b ${BASELINE_CONF}/${filenameRef}
393 -t ${TEMP}/c1${filenameInput}.pgx
400 set_tests_properties(ETS-C1P1-${filenameInput}-compare2ref
402 ETS-C1P1-${filenameInput}-decode)
404 add_test(NR-C1P1-${filenameInput}-compare2base
405 ${EXECUTABLE_OUTPUT_PATH}/comparePGXimages
406 -b ${BASELINE_NR}/opj_${filenameRef}
407 -t ${TEMP}/c1${filenameInput}.pgx
413 set_tests_properties(NR-C1P1-${filenameInput}-compare2base
415 ETS-C1P1-${filenameInput}-decode)
419 #--------------------------------------------------------------------------
420 # Tests about JP2 file
422 # compare to ref file
423 # non regression comparison
425 # Tolerances given by Table G.1
427 foreach(numFileJP2 RANGE 1 9)
430 set( filenameInput "file${numFileJP2}.jp2" )
431 set( filenameRef jp2_${numFileJP2}.tif )
433 # Get corresponding tests parameters
434 list(GET JP2_PEAK_list ${numFileJP2} PEAK_limit)
436 add_test(ETS-JP2-${filenameInput}-decode
437 ${EXECUTABLE_OUTPUT_PATH}/opj_decompress
438 -i ${INPUT_CONF}/${filenameInput}
439 -o ${TEMP}/${filenameInput}.tif
442 # FIXME: Need to implement a compare tif images function
444 # add_test(ETS-JP2-${filenameInput}-compare2ref
445 # ${EXECUTABLE_OUTPUT_PATH}/compareTIFimages
446 # -b ${BASELINE_CONF}/${filenameRef_tif}
447 # -t ${TEMP}/${filenameInput}.pgx
451 # set_tests_properties(ETS-JP2-${filenameInput}-compare2ref
453 # ETS-JP2-${filenameInput}-decode)
455 # add_test(NR-JP2-${filenameInput}-compare2base
456 # ${EXECUTABLE_OUTPUT_PATH}/compareTIFimages
457 # -b ${BASELINE_NR}/opj_${filenameRef}
458 # -t ${TEMP}/${filenameInput}.tif
462 # set_tests_properties(NR-JP2-${filenameInput}-compare2base
464 # ETS-JP2-${filenameInput}-decode)
468 #--------------------------------------------------------------------------#
469 #--------------------------------------------------------------------------#
470 #--------------------------------------------------------------------------#
472 #--------------------------------------------------------------------------
473 # Tests about dump of profile 0 file
474 # try to dump image and codestream informations into a file
475 # non regression comparison this file to the baseline
477 foreach(numFileP0 RANGE 1 16)
480 if(${numFileP0} LESS 10)
481 set( filenameInput p0_0${numFileP0}.j2k )
483 set( filenameInput p0_${numFileP0}.j2k )
485 get_filename_component(filenameRefSub ${filenameInput} NAME_WE)
488 add_test(NR-${filenameInput}-dump
489 ${EXECUTABLE_OUTPUT_PATH}/opj_dump
490 -i ${INPUT_CONF}/${filenameInput}
491 -o ${TEMP}/${filenameInput}.txt
494 add_test(NR-${filenameInput}-compare_dump2base
495 ${EXECUTABLE_OUTPUT_PATH}/compare_dump_files
496 -b ${BASELINE_NR}/opj_v2_${filenameRefSub}.txt
497 -t ${TEMP}/${filenameInput}.txt
500 set_tests_properties(NR-${filenameInput}-compare_dump2base
502 NR-${filenameInput}-dump)
506 #--------------------------------------------------------------------------
507 # Tests about dump of profile 1 file
508 # try to dump image and codestream informations into a file
509 # non regression comparison this file to the baseline
511 foreach(numFileP1 RANGE 1 7)
514 set( filenameInput p1_0${numFileP1}.j2k )
515 get_filename_component(filenameInputSub ${filenameInput} NAME_WE)
517 add_test(NR-${filenameInput}-dump
518 ${EXECUTABLE_OUTPUT_PATH}/opj_dump
519 -i ${INPUT_CONF}/${filenameInput}
520 -o ${TEMP}/${filenameInput}.txt
523 add_test(NR-${filenameInput}-compare_dump2base
524 ${EXECUTABLE_OUTPUT_PATH}/compare_dump_files
525 -b ${BASELINE_NR}/opj_v2_${filenameInputSub}.txt
526 -t ${TEMP}/${filenameInput}.txt
529 set_tests_properties(NR-${filenameInput}-compare_dump2base
531 NR-${filenameInput}-dump)
535 #--------------------------------------------------------------------------
536 # Tests about dump of JP2 file
537 # try to dump image and codestream informations into a file
538 # non regression comparison this file to the baseline
540 foreach(numFileJP2 RANGE 1 9)
543 set( filenameInput "file${numFileJP2}.jp2" )
544 get_filename_component(filenameInputSub ${filenameInput} NAME_WE)
546 add_test(NR-${filenameInput}-dump
547 ${EXECUTABLE_OUTPUT_PATH}/opj_dump
548 -i ${INPUT_CONF}/${filenameInput}
549 -o ${TEMP}/${filenameInput}.txt
552 add_test(NR-${filenameInput}-compare_dump2base
553 ${EXECUTABLE_OUTPUT_PATH}/compare_dump_files
554 -b ${BASELINE_NR}/opj_v2_${filenameInputSub}.txt
555 -t ${TEMP}/${filenameInput}.txt
558 set_tests_properties(NR-${filenameInput}-compare_dump2base
560 NR-${filenameInput}-dump)