#! /bin/bash # This script tests: pamundice # Also requires: 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