#! /bin/sh # This script tests: pamfunc # Also requires: pamseq pamtopnm pbmmake tmpdir=${tmpdir:-/tmp} input_pgm=${tmpdir}/input.pgm echo "Test 1" pamseq 1 15 | pamtopnm -assume > ${input_pgm} pamtopnm -plain ${input_pgm} | tr '\n' ' '; echo pamfunc -adder=3 -plain ${input_pgm} | tr '\n' ' '; echo pamfunc -subtractor=3 -plain ${input_pgm} | tr '\n' ' '; echo pamfunc -multiplier=3 -plain ${input_pgm} | tr '\n' ' '; echo pamfunc -divisor=2 -plain ${input_pgm} | tr '\n' ' '; echo pamfunc -max=6 -plain ${input_pgm} | tr '\n' ' '; echo pamfunc -min=5 -plain ${input_pgm} | tr '\n' ' '; echo pamfunc -shiftleft 1 -plain ${input_pgm} | tr '\n' ' '; echo pamfunc -shiftright 1 -plain ${input_pgm} | tr '\n' ' '; echo pamfunc -shiftleft 1 ${input_pgm} | pamfunc -shiftright 1 -plain | \ tr '\n' ' '; echo pamfunc -shiftright 1 ${input_pgm} | pamfunc -shiftleft 1 -plain | \ tr '\n' ' '; echo input_pbm=${tmpdir}/input.pbm echo "Test 2" pbmmake -g 8 1 > ${input_pbm} pamtopnm -plain ${input_pbm} | tr '\n' ' '; echo pamfunc -adder=1 -plain ${input_pbm} | tr '\n' ' '; echo pamfunc -subtractor=1 -plain ${input_pbm} | tr '\n' ' '; echo pamfunc -multiplier=1 -plain ${input_pbm} | tr '\n' ' '; echo pamfunc -divisor=1 -plain ${input_pbm} | tr '\n' ' '; echo pamfunc -max=1 -plain ${input_pbm} | tr '\n' ' '; echo pamfunc -min=1 -plain ${input_pbm} | tr '\n' ' '; echo pamfunc -shiftleft 1 -plain ${input_pbm} | tr '\n' ' '; echo pamfunc -shiftright 1 -plain ${input_pbm} | tr '\n' ' '; echo pamfunc -shiftleft 1 ${input_pbm} | pamfunc -shiftright 1 -plain | \ tr '\n' ' '; echo pamfunc -shiftright 1 ${input_pbm} | pamfunc -shiftleft 1 -plain | \ tr '\n' ' '; echo echo "Test 3 (-changemaxval)" pamfunc -divisor 2 -changemaxval ${input_pgm} -plain | \ tr '\n' ' '; echo pamfunc -multiplier 0.25 -changemaxval ${input_pgm} -plain | \ tr '\n' ' '; echo pamfunc -divisor 2 -changemaxval ${input_pbm} -plain | \ tr '\n' ' '; echo pamfunc -multiplier 0.25 -changemaxval ${input_pbm} -plain | \ tr '\n' ' '; echo rm ${input_pgm} ${input_pbm} echo "Test 4: Should print 1926073387 101484 eight times" cat testimg.ppm | cksum pamfunc -not testimg.ppm | pamfunc -not | cksum pamfunc -andmask 0xff testimg.ppm | cksum pamfunc -ormask 0x00 testimg.ppm | cksum pamfunc -xormask 0x00 testimg.ppm | cksum pamfunc -xormask 0xff testimg.ppm | pamfunc -xormask 0xff | cksum pamfunc -shiftleft 0 testimg.ppm | cksum pamfunc -shiftright 0 testimg.ppm | cksum echo "Test 5: Should print 281226646 481 six times" cat maze.pbm | cksum pamfunc -andmask 0x1 maze.pbm | cksum pamfunc -ormask 0x0 maze.pbm | cksum pamfunc -xormask 0x1 maze.pbm | pamfunc -xormask 0x1 | cksum pamfunc -shiftleft 0 maze.pbm | cksum pamfunc -shiftright 0 maze.pbm | cksum echo "Invalid command-line argument combinations." 1>&2 echo "Error messages should appear below the line." 1>&2 echo "-----------------------------------------------------------" 1>&2 echo "Test Invalid" test_out=${tmpdir}/test_out pamfunc -multiplier testimg.ppm > ${test_out} || \ printf "Expected failure 1 " test -s ${test_out} && echo "unexpected output" || echo "(no output)" rm -f ${test_out} pamfunc -multiplier=-1 testimg.ppm > ${test_out} || \ printf "Expected failure 2 " test -s ${test_out} && echo "unexpected output" || echo "(no output)" rm -f ${test_out} pamfunc -divisor testimg.ppm > ${test_out} || \ printf "Expected failure 3 " test -s ${test_out} && echo "unexpected output" || echo "(no output)" rm -f ${test_out} pamfunc -divisor=-20 testimg.ppm > ${test_out} || \ printf "Expected failure 4 " test -s ${test_out} && echo "unexpected output" || echo "(no output)" rm -f ${test_out} pamfunc -adder testimg.ppm > ${test_out} || \ printf "Expected failure 5 " test -s ${test_out} && echo "unexpected output" || echo "(no output)" rm -f ${test_out} pamfunc -adder 0.5 testimg.ppm > ${test_out} || \ printf "Expected failure 6 " test -s ${test_out} && echo "unexpected output" || echo "(no output)" rm -f ${test_out} pamfunc -subtractor testimg.ppm > ${test_out} || \ printf "Expected failure 7 " test -s ${test_out} && echo "unexpected output" || echo "(no output)" rm -f ${test_out} pamfunc -subtractor 0.1 testimg.ppm > ${test_out} || \ printf "Expected failure 8 " test -s ${test_out} && echo "unexpected output" || echo "(no output)" rm -f ${test_out} pamfunc -multiplier=1 -divisor=2 testimg.ppm > ${test_out} || \ printf "Expected failure 9 " test -s ${test_out} && echo "unexpected output" || echo "(no output)" rm -f ${test_out} pamfunc -adder=2 -subtractor=3 testimg.ppm > ${test_out} || \ printf "Expected failure 10 " test -s ${test_out} && echo "unexpected output" || echo "(no output)" rm -f ${test_out} pamfunc -min testimg.ppm > ${test_out} || \ printf "Expected failure 11 " test -s ${test_out} && echo "unexpected output" || echo "(no output)" rm -f ${test_out} pamfunc -max testimg.ppm > ${test_out} || \ printf "Expected failure 12 " test -s ${test_out} && echo "unexpected output" || echo "(no output)" rm -f ${test_out} pamfunc -andmask testimg.ppm > ${test_out} || \ printf "Expected failure 13 " test -s ${test_out} && echo "unexpected output" || echo "(no output)" rm -f ${test_out} pamfunc -ormask testimg.ppm > ${test_out} || \ printf "Expected failure 14 " test -s ${test_out} && echo "unexpected output" || echo "(no output)" rm -f ${test_out} pamfunc -xormask testimg.ppm > ${test_out} || \ printf "Expected failure 15 " test -s ${test_out} && echo "unexpected output" || echo "(no output)" rm -f ${test_out} pamfunc -not 1 testimg.ppm > ${test_out} || \ printf "Expected failure 16 " test -s ${test_out} && echo "unexpected output" || echo "(no output)" rm -f ${test_out} pamfunc -min=1 -max=2 testimg.ppm > ${test_out} || \ printf "Expected failure 17 " test -s ${test_out} && echo "unexpected output" || echo "(no output)" rm -f ${test_out} pamfunc -andmask=1 -ormask=0 testimg.ppm > ${test_out} || \ printf "Expected failure 18 " test -s ${test_out} && echo "unexpected output" || echo "(no output)" rm -f ${test_out} pamfunc -andmask=0xffff testimg.ppm > ${test_out} || \ printf "Expected failure 19 " test -s ${test_out} && echo "unexpected output" || echo "(no output)" rm -f ${test_out} pamfunc -shiftleft testimg.ppm > ${test_out} || \ printf "Expected failure 20 " test -s ${test_out} && echo "unexpected output" || echo "(no output)" rm -f ${test_out} pamfunc -shiftright testimg.ppm > ${test_out} || \ printf "Expected failure 21 " test -s ${test_out} && echo "unexpected output" || echo "(no output)" rm -f ${test_out} pamfunc -changemaxval testimg.ppm > ${test_out} || \ printf "Expected failure 22 " test -s ${test_out} && echo "unexpected output" || echo "(no output)" rm -f ${test_out} pamfunc -shiftleft=1 -shiftright=1 testimg.ppm > ${test_out} || \ printf "Expected failure 23 " test -s ${test_out} && echo "unexpected output" || echo "(no output)" rm -f ${test_out} pamfunc -multiplier=0.5 -changemaxval=65535 testimg.ppm > ${test_out} || \ printf "Expected failure 24 " test -s ${test_out} && echo "unexpected output" || echo "(no output)" rm -f ${test_out}