about summary refs log tree commit diff
path: root/test/pnmcrop1.test
diff options
context:
space:
mode:
Diffstat (limited to 'test/pnmcrop1.test')
-rwxr-xr-xtest/pnmcrop1.test84
1 files changed, 84 insertions, 0 deletions
diff --git a/test/pnmcrop1.test b/test/pnmcrop1.test
new file mode 100755
index 00000000..3c86efd7
--- /dev/null
+++ b/test/pnmcrop1.test
@@ -0,0 +1,84 @@
+ #! /bin/sh
+# This script tests: pnmcrop
+# Also requires: pnmpad pnmmargin pamcut
+
+tmpdir=${tmpdir:-/tmp}
+
+test_pbm=${tmpdir}/maze.pbm
+test_ppm=${tmpdir}/rose.ppm
+
+pnmmargin -white 7 maze.pbm | pnmpad -black -bottom=2  > ${test_pbm}
+pnmmargin -white 6 testimg.ppm  | pnmpad -black -right=11  > ${test_ppm}
+
+#Test 1
+echo Test 1
+
+for input_file in ${test_pbm} ${test_ppm}
+  do
+  bfile=`basename ${input_file}`
+  for option in "" "-white" "-black" "-sides" \
+              "-top" "-bottom" "-left" "-right" "-top -bottom" \
+              "-bottom -bg-corner=bottomright" \
+              "-right -bg-corner=bottomright" \
+              "-bg-color=white" "-bg-color=black" "-bg-color=red"
+    do
+    echo "file: ${bfile} option: ${option}"
+    pnmcrop -reportfull ${option} ${input_file} || echo fail
+    done
+  done
+
+#Test 2
+echo "Test 2.  Should print 0 six times"
+
+out_pnm=${tmpdir}/out.pnm
+
+for input_file in ${test_pbm} ${test_ppm}
+  do
+  bfile=`basename ${input_file}`
+  for option in "" "-white" "-top"
+    do
+    echo file: ${bfile} option: ${option}
+    # Normal crop operation
+    pnmcrop ${option} ${input_file} > ${out_pnm}
+
+    # Compute edge extents with pnmcrop; let pamcut do the actual cropping
+    pamcut ${input_file} `pnmcrop -reportsize ${option} ${input_file} | \
+        awk 'NF==6 && NR==1 && \
+             $1<=0 && $2<=0 && $3<=0 && $4<=0 && $5>=0 && $6>=0 \
+             { printf("-cropleft=%d -cropright=%d ", -$1, -$2);
+               printf("-croptop=%d -cropbottom=%d ", -$3, -$4) }' ` | \
+        cmp -s - ${out_pnm}
+    echo $?
+    rm ${out_pnm}
+    done
+  done
+
+rm ${test_pbm} ${test_ppm}
+
+# Test 3
+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
+
+for option in "-reportfull -reportsize" \
+              "-reportfull -borderfile=testgrid.pbm" \
+              "-reportsize -borderfile=testgrid.pbm" \
+              "-black -white" \
+              "-black -sides" \
+              "-white -bg-color=red" \
+              "-white -bg-corner=topleft" \
+              "-white -bg-corner=top" \
+              "-blank-image=pasturize" \
+              "-bg-color=black -closeness=-1" \
+              "-bg-color=black -closeness=101"
+    do
+    pnmcrop -reportfull ${option} testgrid.pbm > ${test_out} || \
+        printf "Expected failure:  %s" "${option}"
+        test -s ${test_out}; echo " "$?
+        rm ${test_out}
+    done