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
|
#!/bin/sh
# this test is also in test_resample.py (though much smaller and neater) ...
# keep this test to exercise the cli interface
# set -x
. ./variables.sh
test_rotate() {
im=$1
inter=$2
printf "testing $inter ... "
# 90 degree clockwise rotate
trn="0 1 1 0"
$vips affine $im $tmp/t1.v "$trn" --interpolate $inter
$vips affine $tmp/t1.v $tmp/t2.v "$trn" --interpolate $inter
$vips affine $tmp/t2.v $tmp/t1.v "$trn" --interpolate $inter
$vips affine $tmp/t1.v $tmp/t2.v "$trn" --interpolate $inter
test_difference $im $tmp/t2.v 1
echo "ok"
}
# vsqbs is non-interpolatory, don't test this way
echo "testing with $(basename $image)"
for i in nearest bicubic bilinear nohalo lbb; do
test_rotate $image $i
done
test_size() {
to_test=$1
correct_width=$2
correct_height=$3
width=$($vipsheader -f width $to_test)
height=$($vipsheader -f height $to_test)
if [ $width -ne $correct_width ]; then
echo width is $width, not $correct_width
exit 1
fi
if [ $height -ne $correct_height ]; then
echo height is $height, not $correct_height
exit 1
fi
}
test_thumbnail() {
geo=$1
correct_width=$2
correct_height=$3
printf "testing thumbnail -s $geo ... "
$vipsthumbnail $image -s "$geo" -o $tmp/t1.jpg
test_size $tmp/t1.jpg $correct_width $correct_height
echo "ok"
}
test_thumbnail 100 66 100
test_thumbnail 100x100 66 100
test_thumbnail x100 66 100
test_thumbnail "100x100<" 290 442
test_thumbnail "2000<" 1312 2000
test_thumbnail "100x100>" 66 100
test_thumbnail "2000>" 290 442
# test thumbnail to and from pipes
echo -n "testing thumbnail of stdin / stdout ... "
$vipsthumbnail stdin -s 100 -o $tmp/t1.jpg < $image
test_size $tmp/t1.jpg 66 100
cat $image | $vipsthumbnail stdin -s 100 -o $tmp/t1.jpg
test_size $tmp/t1.jpg 66 100
cat $image | $vipsthumbnail stdin -s 100 -o .jpg > $tmp/t1.jpg
test_size $tmp/t1.jpg 66 100
cat $image | $vipsthumbnail stdin -s 100 -o .jpg | cat > $tmp/t1.jpg
echo ok
test_size $tmp/t1.jpg 66 100
# test max-coord
# this will coredumop on an assert fail in debug builds, so block coredumps
ulimit -c 0
echo -n "testing --vips-max-coord ... "
if $vips black $tmp/t1.v 1000 1000 --vips-max-coord 120 > /dev/null 2>&1; then
echo "FAIL"
echo "--vips-max-coord CLI arg test failed"
exit 1
fi
echo ok
echo -n "testing VIPS_MAX_COORD ... "
export VIPS_MAX_COORD=120
if $vips black $tmp/t1.v 1000 1000 > /dev/null 2>&1; then
echo "FAIL"
echo "VIPS_MAX_COORD env var test failed"
exit 1
fi
echo ok
unset VIPS_MAX_COORD
|