about summary refs log tree commit diff
path: root/test/pamarith.test
diff options
context:
space:
mode:
Diffstat (limited to 'test/pamarith.test')
-rwxr-xr-xtest/pamarith.test217
1 files changed, 65 insertions, 152 deletions
diff --git a/test/pamarith.test b/test/pamarith.test
index a4c98859..20c4039d 100755
--- a/test/pamarith.test
+++ b/test/pamarith.test
@@ -1,7 +1,7 @@
-#! /bin/bash
+#! /bin/sh
 # This script tests: pamarith
-# Also requires: pamtopnm rgb3toppm pamenlarge pnmcat pamseq pbmmake pgmmake 
-# Also requires: ppmpat pamchannel 
+# Also requires: pamtopnm rgb3toppm pamenlarge pamcat pamseq pbmmake pgmmake
+# Also requires: ppmpat pamchannel
 
 tmpdir=${tmpdir:-/tmp}
 input1_pgm=${tmpdir}/input1.pgm
@@ -15,10 +15,10 @@ echo "Test 1"
 pamseq 1 15 | pamtopnm -assume > ${input1_pgm}
 pgmmake -maxval 15 0.15 16 1 > ${input2_pgm}
 
-rgb3toppm ${input1_pgm} ${input1_pgm} ${input1_pgm} > ${input1_ppm} 
-rgb3toppm ${input2_pgm} ${input2_pgm} ${input2_pgm} > ${input2_ppm} 
+rgb3toppm ${input1_pgm} ${input1_pgm} ${input1_pgm} > ${input1_ppm}
+rgb3toppm ${input2_pgm} ${input2_pgm} ${input2_pgm} > ${input2_ppm}
 
-pnmcat -tb -plain ${input1_pgm} ${input2_pgm}
+pamcat -tb ${input1_pgm} ${input2_pgm} -plain
 
 for fn in "-add" "-subtract" "-multiply" "-divide" "-difference" \
     "-minimum" "-maximum" "-mean" "-compare" "-equal" \
@@ -43,7 +43,7 @@ echo "Test 2 PBM"
 pbmmake -g 8 1 > ${input1_pbm}
 pbmmake -g 2 1 | pamenlarge -xscale=4 > ${input2_pbm}
 
-pnmcat -tb -plain ${input1_pbm} ${input2_pbm}
+pamcat -tb -plain ${input1_pbm} ${input2_pbm}
 
 for fn in "-add" "-subtract" "-multiply" "-divide" "-difference" \
     "-minimum" "-maximum" "-mean" "-compare" "-equal" \
@@ -88,12 +88,12 @@ for fn in "-subtract" "-divide" "-compare" "-shiftleft" "-shiftright"
 rm ${input3_ppm} ${input4_ppm} ${input4_pgm}
 
 echo "Test 4 (input = output)"
-echo "cksum is 2425386270 41 or 2921940274 59"
+echo "Prints 281226646 481 six times, then 2921940274 59 six times"
 
-for image in testgrid.pbm ${input1_ppm}
+for image in maze.pbm ${input1_ppm}
   do
   echo "input image"
-  cat ${image} | cksum 
+  cat ${image} | cksum
   for fn in "-minimum" "-maximum" "-mean" "-and" "-or"
     do
     echo ${fn}
@@ -103,9 +103,9 @@ for image in testgrid.pbm ${input1_ppm}
 
 
 echo "Test 5 (blank output)"
-echo "cksum is 2817549367 41 or 320101399 59"
+echo "Prints 2247801875 481 three times, then 320101399 59 three times"
 
-for image in testgrid.pbm ${input1_ppm}
+for image in maze.pbm ${input1_ppm}
   do
   for fn in "-subtract" "-difference" "-xor"
     do
@@ -116,112 +116,68 @@ for image in testgrid.pbm ${input1_ppm}
 
 rm ${input1_ppm}
 
-
-echo "Invalid command-line argument combinations." 1>&2
-echo "Error messages should appear below the line." 1>&2
-echo "-----------------------------------------------------------" 1>&2
-
 echo "Test Invalid"
 
-output_ppm=${tmpdir}/output.ppm
+. ${srcdir}/test-invalid.inc
 
 # multiple functions
 
-pamarith -add -subtract testimg.ppm testimg.ppm > ${output_ppm} || \
-  echo -n "Expected failure 1"
-  test -s ${output_ppm}; echo " "$?
-pamarith -multiply -divide testimg.ppm testimg.ppm > ${output_ppm} || \
-  echo -n "Expected failure 2"
-  test -s ${output_ppm}; echo " "$?
-pamarith -difference -minimum testimg.ppm testimg.ppm > ${output_ppm} || \
-  echo -n "Expected failure 3"
-  test -s ${output_ppm}; echo " "$?
-pamarith -maximum -mean testimg.ppm testimg.ppm > ${output_ppm} || \
-  echo -n "Expected failure 4"
-  test -s ${output_ppm}; echo " "$?
-pamarith -compare -and testimg.ppm testimg.ppm > ${output_ppm} || \
-  echo -n "Expected failure 5"
-  test -s ${output_ppm}; echo " "$?
-pamarith -compare -equal testimg.ppm testimg.ppm > ${output_ppm} || \
-  echo -n "Expected failure 6"
-  test -s ${output_ppm}; echo " "$?
-pamarith -or -nand testimg.ppm testimg.ppm > ${output_ppm} || \
-  echo -n "Expected failure 7"
-  test -s ${output_ppm}; echo " "$?
-pamarith -nor -xor testimg.ppm testimg.ppm > ${output_ppm} || \
-  echo -n "Expected failure 8"
-  test -s ${output_ppm}; echo " "$?
-pamarith -shiftleft -shiftright testimg.ppm testimg.ppm > ${output_ppm} || \
-  echo -n "Expected failure 9"
-  test -s ${output_ppm}; echo " "$?
+invCmd "pamarith -add -subtract testimg.ppm testimg.ppm"
+invCmd "pamarith -multiply -divide testimg.ppm testimg.ppm"
+invCmd "pamarith -difference -minimum testimg.ppm testimg.ppm"
+invCmd "pamarith -maximum -mean testimg.ppm testimg.ppm"
+invCmd "pamarith -compare -and testimg.ppm testimg.ppm"
+invCmd "pamarith -compare -equal testimg.ppm testimg.ppm"
+invCmd "pamarith -or -nand testimg.ppm testimg.ppm"
+invCmd "pamarith -nor -xor testimg.ppm testimg.ppm"
+invCmd "pamarith -shiftleft -shiftright testimg.ppm testimg.ppm"
 
 # -add does not take a value
 
-pamarith -add=1 testimg.ppm testimg.ppm > ${output_ppm} || \
-  echo -n "Expected failure 10"
- test -s ${output_ppm}; echo " "$?
+invCmd "pamarith -add=1 testimg.ppm testimg.ppm"
 
 # No function
 
-pamarith -plain testimg.ppm testimg.ppm > ${output_ppm} || \
-  echo -n "Expected failure 11"
-  test -s ${output_ppm}; echo " "$?
-
-pamarith testimg.ppm testimg.ppm > ${output_ppm} || \
-  echo -n "Expected failure 12"
-  test -s ${output_ppm}; echo " "$?
+invCmd "pamarith -plain testimg.ppm testimg.ppm"
+invCmd "pamarith testimg.ppm testimg.ppm"
 
 # Just one input image file
 
-pamarith -add testimg.ppm > ${output_ppm} || \
-  echo -n "Expected failure 13"
-  test -s ${output_ppm}; echo " "$?
+invCmd "pamarith -add testimg.ppm"
 
 # No input image file
 
-pamarith -add > ${output_ppm} || \
-  echo -n "Expected failure 14"
-  test -s ${output_ppm}; echo " "$?
+invCmd "pamarith -add"
 
 # Input images with different depth (number of planes)
 
-pamchannel -infile testimg.ppm 0 1 | \
-  pamarith -add testimg.ppm - > ${output_ppm} || \
-  echo -n "Expected failure 15"
-  test -s ${output_ppm}; echo " "$?
+input1_pam=${tmpdir}/input1.pam
 
+pamchannel -infile testimg.ppm 0 1 > ${input1_pam}
+invCmd "pamarith -add testimg.ppm ${input1_pam}"
+rm ${input1_pam}
 
 # Input images with different x/y dimensions
 
-pamarith -add testimg.ppm testgrid.pbm > ${output_ppm} || \
-  echo -n "Expected failure 16"
-  test -s ${output_ppm}; echo " "$?
+invCmd "pamarith -add testimg.ppm testgrid.pbm"
 
-pamenlarge -xscale=2 testgrid.pbm | \
-  pamarith -add testgrid.pbm - > ${output_ppm} || \
-  echo -n "Expected failure 17"
-  test -s ${output_ppm}; echo " "$?
+input1_pbm=${tmpdir}/input1.pbm
+input2_pbm=${tmpdir}/input2.pbm
 
-pamenlarge -yscale=3 testgrid.pbm | \
-  pamarith -add testgrid.pbm - > ${output_ppm} || \
-  echo -n "Expected failure 18"
-  test -s ${output_ppm}; echo " "$?
+pamenlarge -xscale=2 testgrid.pbm > ${input1_pbm}
+invCmd "pamarith -add testgrid.pbm ${input1_pbm}"
+rm ${input1_pbm}
 
+pamenlarge -yscale=3 testgrid.pbm > ${input2_pbm}
+invCmd "pamarith -add testgrid.pbm ${input2_pbm}"
+rm ${input2_pbm}
 
 # Invalid usage of -closeness
 
-pamarith -equal -closeness=100.1 testgrid.pbm > ${output_ppm} || \
-  echo -n "Expected failure 19"
-  test -s ${output_ppm}; echo " "$?
-pamarith -equal -closeness=-10 testgrid.pbm > ${output_ppm} || \
-  echo -n "Expected failure 20"
-  test -s ${output_ppm}; echo " "$?
-pamarith -closeness -equal testgrid.pbm > ${output_ppm} || \
-  echo -n "Expected failure 21"
-  test -s ${output_ppm}; echo " "$?
-pamarith -compare -closeness=10 testgrid.pbm > ${output_ppm} || \
-  echo -n "Expected failure 22"
-  test -s ${output_ppm}; echo " "$?
+invCmd "pamarith -equal -closeness=100.1 testgrid.pbm"
+invCmd "pamarith -equal -closeness=-10 testgrid.pbm"
+invCmd "pamarith -closeness -equal testgrid.pbm"
+invCmd "pamarith -compare -closeness=10 testgrid.pbm"
 
 # Bit string functions
 # Create PGM test input
@@ -230,52 +186,27 @@ input3_pgm=${tmpdir}/input3.pgm
 input4_pgm=${tmpdir}/input4.pgm
 input5_pgm=${tmpdir}/input5.pgm
 
-pgmmake -maxval=4095 1.0 3 1 > ${input3_pgm} 
+pgmmake -maxval=4095 1.0 3 1 > ${input3_pgm}
 pgmmake -maxval=4096 1.0 3 1 > ${input4_pgm}
 pgmmake -maxval=8191 1.0 3 1 > ${input5_pgm}
 
 # Bit string functions - Maxval must match
 
-pamarith -and ${input3_pgm} ${input5_pgm} > ${output_ppm} || \
-  echo -n "Expected failure 23"
-  test -s ${output_ppm}; echo " "$?
-pamarith -or ${input3_pgm} ${input5_pgm} > ${output_ppm} || \
-  echo -n "Expected failure 24"
-  test -s ${output_ppm}; echo " "$?
-pamarith -nand ${input3_pgm} ${input5_pgm} > ${output_ppm} || \
-  echo -n "Expected failure 25"
-  test -s ${output_ppm}; echo " "$?
-pamarith -nor ${input3_pgm} ${input5_pgm} > ${output_ppm} || \
-  echo -n "Expected failure 26"
-  test -s ${output_ppm}; echo " "$?
-pamarith -xor ${input3_pgm} ${input5_pgm} > ${output_ppm} || \
-  echo -n "Expected failure 27"
-  test -s ${output_ppm}; echo " "$?
+invCmd "pamarith -and ${input3_pgm} ${input5_pgm}"
+invCmd "pamarith -or ${input3_pgm} ${input5_pgm}"
+invCmd "pamarith -nand ${input3_pgm} ${input5_pgm}"
+invCmd "pamarith -nor ${input3_pgm} ${input5_pgm}"
+invCmd "pamarith -xor ${input3_pgm} ${input5_pgm}"
 
 # Bit string functions - Maxval must be 2^n -1
 
-pamarith -and ${input4_pgm} ${input4_pgm} > ${output_ppm} || \
-  echo -n "Expected failure 28"
-  test -s ${output_ppm}; echo " "$?
-pamarith -or ${input4_pgm} ${input4_pgm} > ${output_ppm} || \
-  echo -n "Expected failure 29"
-  test -s ${output_ppm}; echo " "$?
-pamarith -nand ${input4_pgm} ${input4_pgm} > ${output_ppm} || \
-  echo -n "Expected failure 30"
-  test -s ${output_ppm}; echo " "$?
-pamarith -nor ${input4_pgm} ${input4_pgm} > ${output_ppm} || \
-  echo -n "Expected failure 31"
-  test -s ${output_ppm}; echo " "$?
-pamarith -xor ${input4_pgm} ${input4_pgm} > ${output_ppm} || \
-  echo -n "Expected failure 32"
-  test -s ${output_ppm}; echo " "$?
-
-pamarith -shiftleft ${input4_pgm} ${input4_pgm} > ${output_ppm} || \
-  echo -n "Expected failure 33"
-  test -s ${output_ppm}; echo " "$?
-pamarith -shiftright ${input4_pgm} ${input4_pgm} > ${output_ppm} || \
-  echo -n "Expected failure 34"
-  test -s ${output_ppm}; echo " "$?
+invCmd "pamarith -and ${input4_pgm} ${input4_pgm}"
+invCmd "pamarith -or ${input4_pgm} ${input4_pgm}"
+invCmd "pamarith -nand ${input4_pgm} ${input4_pgm}"
+invCmd "pamarith -nor ${input4_pgm} ${input4_pgm}"
+invCmd "pamarith -xor ${input4_pgm} ${input4_pgm}"
+invCmd "pamarith -shiftleft ${input4_pgm} ${input4_pgm}"
+invCmd "pamarith -shiftright ${input4_pgm} ${input4_pgm}"
 
 rm ${input3_pgm} ${input4_pgm} ${input5_pgm}
 
@@ -283,33 +214,15 @@ rm ${input3_pgm} ${input4_pgm} ${input5_pgm}
 # Only the functions that are commutative and associative allow
 # three or more inputs.
 
-pamarith -subtract testimg.ppm testimg.ppm testimg.ppm > ${output_ppm} || \
-  echo -n "Expected failure 35"
-  test -s ${output_ppm}; echo " "$?
-pamarith -divide testimg.ppm testimg.ppm testimg.ppm > ${output_ppm} || \
-  echo -n "Expected failure 36"
-  test -s ${output_ppm}; echo " "$?
-pamarith -compare testimg.ppm testimg.ppm testimg.ppm > ${output_ppm} || \
-  echo -n "Expected failure 37"
-  test -s ${output_ppm}; echo " "$?
-pamarith -difference testimg.ppm testimg.ppm testimg.ppm > ${output_ppm} || \
-  echo -n "Expected failure 38"
-  test -s ${output_ppm}; echo " "$?
-pamarith -shiftleft testimg.ppm testimg.ppm testimg.ppm > ${output_ppm} || \
-  echo -n "Expected failure 39"
-  test -s ${output_ppm}; echo " "$?
-pamarith -shiftright testimg.ppm testimg.ppm testimg.ppm > ${output_ppm} || \
-  echo -n "Expected failure 40"
-  test -s ${output_ppm}; echo " "$?
+invCmd "pamarith -subtract testimg.ppm testimg.ppm testimg.ppm"
+invCmd "pamarith -divide testimg.ppm testimg.ppm testimg.ppm"
+invCmd "pamarith -compare testimg.ppm testimg.ppm testimg.ppm"
+invCmd "pamarith -difference testimg.ppm testimg.ppm testimg.ppm"
+invCmd "pamarith -shiftleft testimg.ppm testimg.ppm testimg.ppm"
+invCmd "pamarith -shiftright testimg.ppm testimg.ppm testimg.ppm"
 
 # Currently -equal and -mean do not allow more than two input images.
 # These two cases should be removed once improvements are made.
 
-pamarith -equal testgrid.pbm testgrid.pbm testgrid.pbm > ${output_ppm} || \
-  echo -n "Expected failure 41"
-  test -s ${output_ppm}; echo " "$?
-pamarith -mean testgrid.pbm  testgrid.pbm testgrid.pbm > ${output_ppm} || \
-  echo -n "Expected failure 42"
-  test -s ${output_ppm}; echo " "$?
-
-rm ${output_ppm}
+invCmd "pamarith -equal testgrid.pbm testgrid.pbm testgrid.pbm"
+invCmd "pamarith -mean testgrid.pbm  testgrid.pbm testgrid.pbm"