From ada0144457396bd228e2d767cf9881293a88b141 Mon Sep 17 00:00:00 2001 From: giraffedata Date: Sun, 16 Feb 2020 16:28:35 +0000 Subject: Add tests for pamdice, pamundice git-svn-id: http://svn.code.sf.net/p/netpbm/code/trunk@3740 9d0c8265-081b-0410-96cb-a4ca84ce46f8 --- test/pamundice.test | 183 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 183 insertions(+) create mode 100755 test/pamundice.test (limited to 'test/pamundice.test') diff --git a/test/pamundice.test b/test/pamundice.test new file mode 100755 index 00000000..c49b9b2a --- /dev/null +++ b/test/pamundice.test @@ -0,0 +1,183 @@ +#! /bin/bash +# This script tests: pamundice +# Also requires: pbmmake pgmmake pnmtile pnmcat pnmpad + +tmpdir=${tmpdir:-/tmp} +fname_stem=${tmpdir}/part + +# Test 1. +echo "Test 1." + +for ((x=0; x<3; ++x)) + do for ((y=0; y<5; ++y)) + do + pgmmake "."$(( x* 25 + y )) 11 17 > ${fname_stem}_${y}_${x}.pgm + done + done + +pamundice -across=3 -down=5 ${fname_stem}"_%1d_%1a".pgm | cksum + +ls ${fname_stem}_?_?.pgm | \ + pamundice -across=3 -down=5 -listfile=- | cksum + + +# Test 2. +echo "Test 2." + +tempfile=${tmpdir}/temp + +for ((y=0; y<5; ++y)) + do + pamundice -across=3 ${fname_stem}"_"$y"_%1a".pgm > ${tempfile}_"$y" + done + +pnmcat -tb ${tempfile}_[01234] | cksum +rm ${tempfile}_[01234] + +# Note: the following 2 are valid. There should not be warning messages. + +for ((x=0; x<3; ++x)) + do + pamundice -down=5 ${fname_stem}"_%1d_"$x.pgm > ${tempfile}"_"$x + done + +pnmcat -lr ${tempfile}_[012] | cksum +rm ${tempfile}_[012] + +rm ${fname_stem}_?_?.pgm + +# Test 3. +echo "Test 3." + +for ((x=0; x<2; ++x)) + do for ((y=0; y<5; ++y)) + do + pgmmake "."$(( x* 25 + y )) 12 17 > ${fname_stem}_${y}_${x}.pgm + done + done + +for ((x=2; x<3; ++x)) + do for ((y=0; y<5; ++y)) + do + pgmmake "."$(( x* 25 + y )) 11 17 > ${fname_stem}_${y}_${x}.pgm + done + done + +pamundice -across=3 -down=5 \ + -hoverlap=1 ${fname_stem}"_%1d_%1a".pgm | cksum + +rm ${fname_stem}_?_?.pgm + +for ((x=0; x<3; ++x)) + do for ((y=0; y<4; ++y)) + do + pgmmake "."$(( x* 25 + y )) 11 18 > ${fname_stem}_${y}_${x}.pgm + done + done + +for ((x=0; x<3; ++x)) + do for ((y=4; y<5; ++y)) + do + pgmmake "."$(( x* 25 + y )) 11 17 > ${fname_stem}_${y}_${x}.pgm + done + done + +pamundice -across=3 -down=5 \ + -voverlap=1 ${fname_stem}"_%1d_%1a".pgm | cksum + +rm ${fname_stem}_?_?.pgm + + +# Test 4. +echo "Test 4." + +# Add margins to testgrid.pbm + +testimg_pbm=${tmpdir}/testimg.pbm +pnmpad -top=2 -left=3 -black testgrid.pbm > ${testimg_pbm} + +for x in `seq 0 1` + do for y in `seq 0 4` + do cp ${testimg_pbm} ${fname_stem}_${y}_${x}.pbm; done + done + +for (( i=0 ; i<=9; ++i)) + do + echo ${testimg_pbm} + done | pamundice -down=5 -across=2 -listfile=- | cksum + +pamundice -down=5 -across=2 ${fname_stem}_"%1d"_"%1a".pbm | cksum + +echo "A warning message should appear below the line." 1>&2 +echo "-----------------------------------------------------------" 1>&2 + +pamundice -down=5 -across=2 ${testimg_pbm} | cksum + +pnmtile 34 90 ${testimg_pbm} | cksum + +rm ${testimg_pbm} + +# Test Invalid. +echo "Test Invalid" + +test_out=${tmpdir}/test_out + +echo 1>&2 +echo "Invalid command-line argument combinations." 1>&2 +echo "Error messages should appear below the line." 1>&2 +echo "-----------------------------------------------------------" 1>&2 + +# No input file pattern specified +pamundice -down=5 -across=2 > ${test_out} || \ +echo -n "Expected failure 1"; test -s ${test_out}; echo " "$? + +# -down=0 +pamundice -down=0 -across=2 ${fname_stem}_"%1d"_"%1a".pbm > ${test_out} || \ +echo -n "Expected failure 2"; test -s ${test_out}; echo " "$? + +# -across=0 +pamundice -down=5 -across=0 ${fname_stem}_"%1d"_"%1a".pbm > ${test_out} || \ +echo -n "Expected failure 3"; test -s ${test_out}; echo " "$? + +# -down too large +pamundice -down=6 -across=2 ${fname_stem}_"%1d"_"%1a".pbm > ${test_out} || \ +echo -n "Expected failure 4"; test -s ${test_out}; echo " "$? + +# -across too large +pamundice -down=5 -across=3 ${fname_stem}_"%1d"_"%1a".pbm > ${test_out} || \ +echo -n "Expected failure 5"; test -s ${test_out}; echo " "$? + +# precision does not match +pamundice -down=5 -across=2 ${fname_stem}_"%2d"_"%2a".pbm > ${test_out} || \ +echo -n "Expected failure 6"; test -s ${test_out}; echo " "$? + +# precision set to zero +pamundice -down=5 -across=2 ${fname_stem}_"%0d"_"%0a".pbm > ${test_out} || \ +echo -n "Expected failure 7"; test -s ${test_out}; echo " "$? + +# no precision +pamundice -down=5 -across=2 ${fname_stem}_"%d"_"%a".pbm > ${test_out} || \ +echo -n "Expected failure 8"; test -s ${test_out}; echo " "$? + +# -hoverlap too large +pamundice -down=5 -across=2 -hoverlap=18 \ + ${fname_stem}_"%1d"_"%1a".pbm > ${test_out} || \ +echo -n "Expected failure 9"; test -s ${test_out}; echo " "$? + +# -voverlap too large +pamundice -down=5 -across=2 -voverlap=19 \ + ${fname_stem}_"%1d"_"%1a".pbm > ${test_out} || \ +echo -n "Expected failure 10"; test -s ${test_out}; echo " "$? + +# corrupt listfile : file names do not exist +seq 10 | sed -e 's/^/::::::/' -e 's/$/::::::/' | \ + pamundice -down=5 -across=2 -listfile=- > ${test_out} || \ +echo -n "Expected failure 11"; test -s ${test_out}; echo " "$? + +# listfile with insufficient lines (insufficient file entries) +ls ${fname_stem}_*_*.pbm | head -n 9 | \ + pamundice -down=5 -across=2 -listfile=- > ${test_out} || \ +echo -n "Expected failure 12"; test -s ${test_out}; echo " "$? + +rm ${fname_stem}*.pbm + -- cgit 1.4.1