blob: 1b4ffd547f5dd07d35949fe5648b32f4e14afe99 (
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
|
#! /bin/sh
# This script tests: pamcrater pamshadedrelief
# Also requires: pamstack pamvalidate pamcut pamflip
# We use the undocumented -test and -radius options of pamcrater.
# pamcrater -test -radius=N
# The above draws a single crater of radius N.
# The resulting image should be symmetric.
tmpdir=${tmpdir:-/tmp}
test_pam=${tmpdir}/test.pam
testshaded_pam=${tmpdir}/testshaded_pam
test10_pam=${tmpdir}/test10.pam
test50_pam=${tmpdir}/test50.pam
test100_pam=${tmpdir}/test100.pam
test150_pam=${tmpdir}/test150.pam
# Test 1. Should print 4 three times
echo "Test 1."
pamcrater -test -radius=10 > $test10_pam
pamcrater -test -radius=50 > $test50_pam
pamcrater -test -radius=100 > $test100_pam
pamcrater -test -radius=150 > $test150_pam
pamstack ${test10_pam} ${test50_pam} ${test100_pam} ${test150_pam} |
pamvalidate > ${test_pam}
for i in 1 10 70
do
( pamcut -top=$((128 + $i)) -height=1 ${test_pam} | cksum &&
pamcut -top=$((128 - $i)) -height=1 ${test_pam} | cksum &&
pamcut -left=$((128 + $i)) -width=1 ${test_pam} | pamflip -xy | cksum &&
pamcut -left=$((128 - $i)) -width=1 ${test_pam} | pamflip -xy | cksum
) | uniq -c | awk '{print $1}'
done
rm ${test_pam} ${test10_pam} ${test50_pam}
# Test 2. Should print 2 three times
echo "Test 2."
pamshadedrelief ${test100_pam} > ${testshaded_pam}
( pamcut -top=$((128 + 12)) -height=1 ${testshaded_pam} | cksum &&
pamcut -top=$((128 - 12)) -height=1 ${testshaded_pam} | cksum &&
pamcut -top=$((128 + 31)) -height=1 ${testshaded_pam} | cksum &&
pamcut -top=$((128 - 31)) -height=1 ${testshaded_pam} | cksum &&
pamcut -top=$((128 + 99)) -height=1 ${testshaded_pam} | cksum &&
pamcut -top=$((128 - 99)) -height=1 ${testshaded_pam} | cksum
) | uniq -c | awk '{print $1}'
rm ${testshaded_pam} ${test100_pam} ${test150_pam}
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
pamcrater -width 0 > ${test_out} || \
printf "Expected failure 1 "
test -s ${test_out} && echo "unexpected output" || echo "(no output)"
rm -f ${test_out}
pamcrater -height 0 > ${test_out} || \
printf "Expected failure 2 "
test -s ${test_out} && echo "unexpected output" || echo "(no output)"
rm -f ${test_out}
pamcrater -number 0 > ${test_out} || \
printf "Expected failure 3 "
test -s ${test_out} && echo "unexpected output" || echo "(no output)"
rm -f ${test_out}
pamcrater -test -radius=10 | pamshadedrelief -gamma 0 > ${test_out} || \
printf "Expected failure 4 "
test -s ${test_out} && echo "unexpected output" || echo "(no output)"
rm -f ${test_out}
|