about summary refs log tree commit diff
path: root/test/pamcut.test
blob: 7cbabf5111683603ebca365967ee29616867134b (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
#! /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"

. ${srcdir}/test-invalid.inc

# overspecification
invCmd "pamcut -left=1 -right=1 -width=14 testgrid.pbm"
invCmd "pamcut -top=1 -bottom=1 -height=16 testgrid.pbm"
invCmd "pamcut -right=1 -cropright=1 testgrid.pbm"
invCmd "pamcut -top=1 -croptop=1 testgrid.pbm"
invCmd "pamcut -bottom=1 -cropbottom=1 testgrid.pbm"
invCmd "pamcut -left=1 -cropleft=1 testgrid.pbm"
invCmd "pamcut -cropleft=7 -cropright=8 testgrid.pbm"
invCmd "pamcut -left=7 -right=6 testgrid.pbm"
invCmd "pamcut -croptop=8 -cropbottom=8 testgrid.pbm"
invCmd "pamcut -top=10 -bottom=9 testgrid.pbm"

# pad absent
invCmd "pamcut -cropleft=1 -width=14 testgrid.pbm"
invCmd "pamcut -croptop=1  -height=16 testgrid.pbm"

# legacy style: insufficient number of positional parameters
invCmd "pamcut 5 testimg.ppm"
invCmd "pamcut 5 4 testimg.ppm"
invCmd "pamcut 5 5 30 testimg.ppm"