blob: 7cda5bce1ae26c4530e933c26ba8e3fc12276009 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
|
#! /bin/sh
# This script tests: pamcut pbmmake
# Also requires: pamfile
echo "Test 1. Should print 2958909756 124815"
pamcut -top 0 -left 0 -width 260 -height 160 \
-pad testimg.ppm | cksum
echo "Test 2. Should print 1550940962 10933"
pamcut -top 200 -left 120 -width 40 -height 40 \
-pad testimg.ppm | cksum
echo "Test 3. Should print 708474423 14 twice"
pamcut -top 5 -left 5 -bottom 5 -right 5 testimg.ppm | cksum
pamcut -width 1 -height 1 -bottom 5 -right 5 testimg.ppm | cksum
echo "Test 4. Should print 659346598 80124 four times"
pamcut -croptop 10 -cropleft 10 -cropbottom 10 -cropright 10 testimg.ppm | \
cksum
pamcut -top 10 -left 10 -bottom 138 -right 216 testimg.ppm | cksum
pamcut -top 10 -left 10 -bottom -11 -right -11 testimg.ppm | cksum
pamcut -top 10 -left 10 -width 207 -height 129 testimg.ppm | cksum
echo "Test 5. Should print 281226646 481 five times"
mazesize=$(pamfile -size maze.pbm)
width=$(echo ${mazesize} | cut -d " " -f 1)
height=$(echo ${mazesize} | cut -d " " -f 2)
pamcut -croptop 0 -cropleft 0 -cropbottom 0 -cropright 0 maze.pbm | \
cksum
pamcut -top 0 -left 0 -bottom $((${height} -1)) -right $((${width} -1)) \
maze.pbm | cksum
pamcut -top 0 -left 0 -bottom -1 -right -1 maze.pbm | cksum
pamcut -top 0 -left 0 -width ${width} -height ${height} maze.pbm | cksum
pamcut maze.pbm | cksum
echo "Test 6. Should print 3412257956 129"
pbmmake -g 50 50 | pamcut 5 5 30 30 | cksum
echo "Test Invalid"
tmpdir=${tmpdir:-/tmp}
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
# overspecification
pamcut -left=1 -right=1 -width=14 testgrid.pbm > ${test_out} || \
printf "Expected failure 1 "
test -s ${test_out} && echo "unexpected output" || echo "(no output)"
rm -f ${test_out}
pamcut -top=1 -bottom=1 -height=16 testgrid.pbm > ${test_out} || \
printf "Expected failure 2 "
test -s ${test_out} && echo "unexpected output" || echo "(no output)"
rm -f ${test_out}
pamcut -right=1 -cropright=1 testgrid.pbm > ${test_out} || \
printf "Expected failure 3 "
test -s ${test_out} && echo "unexpected output" || echo "(no output)"
rm -f ${test_out}
pamcut -top=1 -croptop=1 testgrid.pbm > ${test_out} || \
printf "Expected failure 4 "
test -s ${test_out} && echo "unexpected output" || echo "(no output)"
rm -f ${test_out}
pamcut -bottom=1 -cropbottom=1 testgrid.pbm > ${test_out} || \
printf "Expected failure 5 "
test -s ${test_out} && echo "unexpected output" || echo "(no output)"
rm -f ${test_out}
pamcut -left=1 -cropleft=1 testgrid.pbm > ${test_out} || \
printf "Expected failure 6 "
test -s ${test_out} && echo "unexpected output" || echo "(no output)"
rm -f ${test_out}
# excessive cropping
pamcut -cropleft=7 -cropright=8 testgrid.pbm > ${test_out} || \
printf "Expected failure 7 "
test -s ${test_out} && echo "unexpected output" || echo "(no output)"
rm -f ${test_out}
pamcut -left=7 -right=6 testgrid.pbm > ${test_out} || \
printf "Expected failure 8 "
test -s ${test_out} && echo "unexpected output" || echo "(no output)"
rm -f ${test_out}
pamcut -croptop=8 -cropbottom=8 testgrid.pbm > ${test_out} || \
printf "Expected failure 9 "
test -s ${test_out} && echo "unexpected output" || echo "(no output)"
rm -f ${test_out}
pamcut -top=10 -bottom=9 testgrid.pbm > ${test_out} || \
printf "Expected failure 6 "
test -s ${test_out} && echo "unexpected output" || echo "(no output)"
rm -f ${test_out}
# pad absent
pamcut -cropleft=1 -width=14 testgrid.pbm > ${test_out} || \
printf "Expected failure 10 "
test -s ${test_out} && echo "unexpected output" || echo "(no output)"
rm -f ${test_out}
pamcut -croptop=1 -height=16 testgrid.pbm > ${test_out} || \
printf "Expected failure 11 "
test -s ${test_out} && echo "unexpected output" || echo "(no output)"
rm -f ${test_out}
# legacy style: insufficient number of positional parameters
pamcut 5 testimg.ppm > ${test_out} || \
printf "Expected failure 12 "
test -s ${test_out} && echo "unexpected output" || echo "(no output)"
rm -f ${test_out}
pamcut 5 4 testimg.ppm > ${test_out} || \
printf "Expected failure 13 "
test -s ${test_out} && echo "unexpected output" || echo "(no output)"
rm -f ${test_out}
pamcut 5 5 30 testimg.ppm > ${test_out} || \
printf "Expected failure 14 "
test -s ${test_out} && echo "unexpected output" || echo "(no output)"
rm -f ${test_out}
|