about summary refs log tree commit diff
path: root/test/pamundice.test
diff options
context:
space:
mode:
authorgiraffedata <giraffedata@9d0c8265-081b-0410-96cb-a4ca84ce46f8>2020-02-16 16:28:35 +0000
committergiraffedata <giraffedata@9d0c8265-081b-0410-96cb-a4ca84ce46f8>2020-02-16 16:28:35 +0000
commitada0144457396bd228e2d767cf9881293a88b141 (patch)
treec777b91838549068eb459f0c2735b6a0dbf759eb /test/pamundice.test
parent7e8574e4fbe371768eb8bb372741c92c1cb25907 (diff)
downloadnetpbm-mirror-ada0144457396bd228e2d767cf9881293a88b141.tar.gz
netpbm-mirror-ada0144457396bd228e2d767cf9881293a88b141.tar.xz
netpbm-mirror-ada0144457396bd228e2d767cf9881293a88b141.zip
Add tests for pamdice, pamundice
git-svn-id: http://svn.code.sf.net/p/netpbm/code/trunk@3740 9d0c8265-081b-0410-96cb-a4ca84ce46f8
Diffstat (limited to 'test/pamundice.test')
-rwxr-xr-xtest/pamundice.test183
1 files changed, 183 insertions, 0 deletions
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
+