freeswitch/libs/spandsp/tests/fax_tests.sh

402 lines
10 KiB
Bash
Executable File

#!/bin/sh
#
# spandsp fax tests
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU Lesser General Public License version 2.1,
# as published by the Free Software Foundation.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this program; if not, write to the Free Software
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
run_fax_test()
{
rm -f fax_tests.tif
echo ./fax_tests ${OPTS} -i ${FILE}
./fax_tests ${OPTS} -i ${FILE} >xyzzy 2>xyzzy2
RETVAL=$?
if [ $RETVAL != 0 ]
then
echo fax_tests failed!
exit $RETVAL
fi
# Now use tiffcmp to check the results. It will return non-zero if any page images differ. The -t
# option means the normal differences in tags will be ignored.
${TIFFCMP} -t ${FILE} fax_tests.tif >/dev/null
RETVAL=$?
if [ $RETVAL != 0 ]
then
echo fax_tests failed!
exit $RETVAL
fi
rm -f fax_tests.tif
echo tested ${FILE}
}
run_fax_squash_test()
{
# Test with lengthwise squashing of a bilevel image
rm -f fax_tests.tif
echo ./fax_tests -b ${SQ} -b ${SQ} ${OPTS} -i ${IN_FILE}
./fax_tests -b ${SQ} ${OPTS} -i ${IN_FILE} >xyzzy 2>xyzzy2
RETVAL=$?
if [ $RETVAL != 0 ]
then
echo fax_tests failed!
exit $RETVAL
fi
# Now use tiffcmp to check the results. It will return non-zero if any page images differ. The -t
# option means the normal differences in tags will be ignored.
${TIFFCMP} -t ${OUT_FILE} fax_tests.tif >/dev/null
RETVAL=$?
if [ $RETVAL != 0 ]
then
echo fax_tests failed!
exit $RETVAL
fi
rm -f fax_tests.tif
echo tested ${FILE}
}
run_colour_fax_test()
{
rm -f fax_tests.tif
echo ./fax_tests ${OPTS} -i ${IN_FILE}
./fax_tests ${OPTS} -i ${IN_FILE} >xyzzy 2>xyzzy2
RETVAL=$?
if [ $RETVAL != 0 ]
then
echo fax_tests failed!
exit $RETVAL
fi
# Now use tiffcmp to check the results. It will return non-zero if any page images differ. The -t
# option means the normal differences in tags will be ignored.
${TIFFCMP} -t ${OUT_FILE} fax_tests.tif >/dev/null
RETVAL=$?
if [ $RETVAL != 0 ]
then
echo fax_tests failed!
exit $RETVAL
fi
rm -f fax_tests.tif
echo tested ${IN_FILE} to ${OUT_FILE}
}
ITUTESTS_DIR=../test-data/itu/fax
TIFFFX_DIR=../test-data/itu/tiff-fx
LOCALTESTS_DIR=../test-data/local
TIFFCMP=tiffcmp
# Colour/gray -> bilevel by not allowing ECM
#for OPTS in "-p AA" "-p TT" "-p GG" "-p TG" "-p GT"
#do
# IN_FILE="${LOCALTESTS_DIR}/lenna-colour.tif"
# OUT_FILE="${LOCALTESTS_DIR}/lenna-colour-bilevel.tif"
# run_colour_fax_test
# IN_FILE="${LOCALTESTS_DIR}/lenna-bw.tif"
# OUT_FILE="${LOCALTESTS_DIR}/lenna-bw-bilevel.tif"
# run_colour_fax_test
# IN_FILE="${TIFFFX_DIR}/c03x_02x.tif"
# OUT_FILE="${TIFFFX_DIR}/c03x_02x-bilevel.tif"
# run_colour_fax_test
# IN_FILE="${TIFFFX_DIR}/l02x_02x.tif"
# OUT_FILE="${TIFFFX_DIR}/l02x_02x-bilevel.tif"
# run_colour_fax_test
# IN_FILE="${TIFFFX_DIR}/l04x_02x.tif"
# OUT_FILE="${TIFFFX_DIR}/l04x_02x-bilevel.tif"
# run_colour_fax_test
#done
# Colour/gray -> colour/gray
#for OPTS in "-p AA -C -e" "-p TT -C -e" "-p GG -C -e" "-p TG -C -e" "-p GT -C -e"
#do
# IN_FILE="${LOCALTESTS_DIR}/lenna-colour.tif"
# OUT_FILE="${LOCALTESTS_DIR}/lenna-colour-out.tif"
# run_colour_fax_test
# IN_FILE="${LOCALTESTS_DIR}/lenna-bw.tif"
# OUT_FILE="${LOCALTESTS_DIR}/lenna-bw-out.tif"
# run_colour_fax_test
# IN_FILE="${TIFFFX_DIR}/c03x_02x.tif"
# OUT_FILE="${TIFFFX_DIR}/c03x_02x-out.tif"
# run_colour_fax_test
# IN_FILE="${TIFFFX_DIR}/l02x_02x.tif"
# OUT_FILE="${TIFFFX_DIR}/l02x_02x.tif"
# run_colour_fax_test
# IN_FILE="${TIFFFX_DIR}/l04x_02x.tif"
# OUT_FILE="${TIFFFX_DIR}/l04x_02x.tif"
# run_colour_fax_test
#done
# Bi-level tests with image squashing
for OPTS in "-p AA" "-p AA -e" "-p TT" "-p TT -e" "-p GG" "-p GG -e" "-p TG" "-p TG -e" "-p GT" "-p GT -e"
do
IN_FILE="${ITUTESTS_DIR}/bilevel_R8_77_A4.tif"
OUT_FILE="${ITUTESTS_DIR}/bilevel_R8_77SQ_A4.tif"
SQ=4
run_fax_squash_test
IN_FILE="${ITUTESTS_DIR}/bilevel_R8_77_B4.tif"
OUT_FILE="${ITUTESTS_DIR}/bilevel_R8_77SQ_B4.tif"
SQ=4
run_fax_squash_test
IN_FILE="${ITUTESTS_DIR}/bilevel_R8_77_A3.tif"
OUT_FILE="${ITUTESTS_DIR}/bilevel_R8_77SQ_A3.tif"
SQ=4
run_fax_squash_test
IN_FILE="${ITUTESTS_DIR}/bilevel_R8_154_A4.tif"
OUT_FILE="${ITUTESTS_DIR}/bilevel_R8_154SQ_A4.tif"
SQ=3
run_fax_squash_test
IN_FILE="${ITUTESTS_DIR}/bilevel_R8_154_B4.tif"
OUT_FILE="${ITUTESTS_DIR}/bilevel_R8_154SQ_B4.tif"
SQ=3
run_fax_squash_test
IN_FILE="${ITUTESTS_DIR}/bilevel_R8_154_A3.tif"
OUT_FILE="${ITUTESTS_DIR}/bilevel_R8_154SQ_A3.tif"
SQ=3
run_fax_squash_test
IN_FILE="${ITUTESTS_DIR}/bilevel_R8_154_A4.tif"
OUT_FILE="${ITUTESTS_DIR}/bilevel_R8_154SQSQ_A4.tif"
SQ=4
run_fax_squash_test
IN_FILE="${ITUTESTS_DIR}/bilevel_R8_154_B4.tif"
OUT_FILE="${ITUTESTS_DIR}/bilevel_R8_154SQSQ_B4.tif"
SQ=4
run_fax_squash_test
IN_FILE="${ITUTESTS_DIR}/bilevel_R8_154_A3.tif"
OUT_FILE="${ITUTESTS_DIR}/bilevel_R8_154SQSQ_A3.tif"
SQ=4
run_fax_squash_test
IN_FILE="${ITUTESTS_DIR}/bilevel_200_200_A4.tif"
OUT_FILE="${ITUTESTS_DIR}/bilevel_200_200SQ_A4.tif"
SQ=4
run_fax_squash_test
IN_FILE="${ITUTESTS_DIR}/bilevel_200_200_B4.tif"
OUT_FILE="${ITUTESTS_DIR}/bilevel_200_200SQ_B4.tif"
SQ=4
run_fax_squash_test
IN_FILE="${ITUTESTS_DIR}/bilevel_200_200_A3.tif"
OUT_FILE="${ITUTESTS_DIR}/bilevel_200_200SQ_A3.tif"
SQ=4
run_fax_squash_test
IN_FILE="${ITUTESTS_DIR}/bilevel_200_400_A4.tif"
OUT_FILE="${ITUTESTS_DIR}/bilevel_200_400SQ_A4.tif"
SQ=3
run_fax_squash_test
IN_FILE="${ITUTESTS_DIR}/bilevel_200_400_B4.tif"
OUT_FILE="${ITUTESTS_DIR}/bilevel_200_400SQ_B4.tif"
SQ=3
run_fax_squash_test
IN_FILE="${ITUTESTS_DIR}/bilevel_200_400_A3.tif"
OUT_FILE="${ITUTESTS_DIR}/bilevel_200_400SQ_A3.tif"
SQ=3
run_fax_squash_test
IN_FILE="${ITUTESTS_DIR}/bilevel_200_400_A4.tif"
OUT_FILE="${ITUTESTS_DIR}/bilevel_200_400SQSQ_A4.tif"
SQ=4
run_fax_squash_test
IN_FILE="${ITUTESTS_DIR}/bilevel_200_400_B4.tif"
OUT_FILE="${ITUTESTS_DIR}/bilevel_200_400SQSQ_B4.tif"
SQ=4
run_fax_squash_test
IN_FILE="${ITUTESTS_DIR}/bilevel_200_400_A3.tif"
OUT_FILE="${ITUTESTS_DIR}/bilevel_200_400SQSQ_A3.tif"
SQ=4
run_fax_squash_test
done
# Bi-level tests
for OPTS in "-p AA" "-p AA -e" "-p TT" "-p TT -e" "-p GG" "-p GG -e" "-p TG" "-p TG -e" "-p GT" "-p GT -e"
do
FILE="${ITUTESTS_DIR}/itutests.tif"
run_fax_test
FILE="${ITUTESTS_DIR}/100pages.tif"
run_fax_test
FILE="${ITUTESTS_DIR}/striped.tif"
run_fax_test
FILE="${ITUTESTS_DIR}/mixed_size_pages.tif"
run_fax_test
FILE="${ITUTESTS_DIR}/bilevel_R8_385_A4.tif"
run_fax_test
FILE="${ITUTESTS_DIR}/bilevel_R8_385_B4.tif"
run_fax_test
FILE="${ITUTESTS_DIR}/bilevel_R8_385_A3.tif"
run_fax_test
FILE="${ITUTESTS_DIR}/bilevel_R8_77_A4.tif"
run_fax_test
FILE="${ITUTESTS_DIR}/bilevel_R8_77_B4.tif"
run_fax_test
FILE="${ITUTESTS_DIR}/bilevel_R8_77_A3.tif"
run_fax_test
FILE="${ITUTESTS_DIR}/bilevel_R8_154_A4.tif"
run_fax_test
FILE="${ITUTESTS_DIR}/bilevel_R8_154_B4.tif"
run_fax_test
FILE="${ITUTESTS_DIR}/bilevel_R8_154_A3.tif"
run_fax_test
FILE="${ITUTESTS_DIR}/bilevel_R16_154_A4.tif"
run_fax_test
FILE="${ITUTESTS_DIR}/bilevel_R16_154_B4.tif"
run_fax_test
FILE="${ITUTESTS_DIR}/bilevel_R16_154_A3.tif"
run_fax_test
FILE="${ITUTESTS_DIR}/bilevel_200_100_A4.tif"
run_fax_test
FILE="${ITUTESTS_DIR}/bilevel_200_100_B4.tif"
run_fax_test
FILE="${ITUTESTS_DIR}/bilevel_200_100_A3.tif"
run_fax_test
FILE="${ITUTESTS_DIR}/bilevel_200_200_A4.tif"
run_fax_test
FILE="${ITUTESTS_DIR}/bilevel_200_200_B4.tif"
run_fax_test
FILE="${ITUTESTS_DIR}/bilevel_200_200_A3.tif"
run_fax_test
FILE="${ITUTESTS_DIR}/bilevel_200_400_A4.tif"
run_fax_test
FILE="${ITUTESTS_DIR}/bilevel_200_400_B4.tif"
run_fax_test
FILE="${ITUTESTS_DIR}/bilevel_200_400_A3.tif"
run_fax_test
FILE="${ITUTESTS_DIR}/bilevel_300_300_A4.tif"
run_fax_test
FILE="${ITUTESTS_DIR}/bilevel_300_300_B4.tif"
run_fax_test
FILE="${ITUTESTS_DIR}/bilevel_300_300_A3.tif"
run_fax_test
FILE="${ITUTESTS_DIR}/bilevel_300_600_A4.tif"
run_fax_test
FILE="${ITUTESTS_DIR}/bilevel_300_600_B4.tif"
run_fax_test
FILE="${ITUTESTS_DIR}/bilevel_300_600_A3.tif"
run_fax_test
FILE="${ITUTESTS_DIR}/bilevel_400_400_A4.tif"
run_fax_test
FILE="${ITUTESTS_DIR}/bilevel_400_400_B4.tif"
run_fax_test
FILE="${ITUTESTS_DIR}/bilevel_400_400_A3.tif"
run_fax_test
FILE="${ITUTESTS_DIR}/bilevel_400_800_A4.tif"
run_fax_test
FILE="${ITUTESTS_DIR}/bilevel_400_800_B4.tif"
run_fax_test
FILE="${ITUTESTS_DIR}/bilevel_400_800_A3.tif"
run_fax_test
FILE="${ITUTESTS_DIR}/bilevel_600_600_A4.tif"
run_fax_test
FILE="${ITUTESTS_DIR}/bilevel_600_600_B4.tif"
run_fax_test
FILE="${ITUTESTS_DIR}/bilevel_600_600_A3.tif"
run_fax_test
FILE="${ITUTESTS_DIR}/bilevel_600_1200_A4.tif"
run_fax_test
FILE="${ITUTESTS_DIR}/bilevel_600_1200_B4.tif"
run_fax_test
FILE="${ITUTESTS_DIR}/bilevel_600_1200_A3.tif"
run_fax_test
FILE="${ITUTESTS_DIR}/bilevel_1200_1200_A4.tif"
run_fax_test
FILE="${ITUTESTS_DIR}/bilevel_1200_1200_B4.tif"
run_fax_test
FILE="${ITUTESTS_DIR}/bilevel_1200_1200_A3.tif"
run_fax_test
done
echo
echo All fax tests successfully completed