#! /bin/sh # This script tests: ppmpat # Also requires: echo "Test 1. Should print: 4008533639 781" ppmpat -gingham2 \ -color=rgb:32/0d/b7,rgb:31/58/a3 16 16 | cksum echo "Test 2. Should print: 738714211 781" ppmpat -g2 -mesh \ --color=rgb:32/0d/b7,rgb:31/58/a3 16 16 | cksum echo "Test 3. Should print: 3805937800 9613" ppmpat -gingham3 \ -color=rgb:32/0d/b7,rgb:31/58/a3,rgb:e9/5e/d4 64 50 | cksum echo "Test 4. Should print: 1586690955 9613" ppmpat -g3 -mesh \ -color=rgb:32/0d/b7,rgb:31/58/a3,rgb:e9/5e/d4 64 50 | cksum echo "Test 5. Should print: 2698433077 1549" ppmpat -madras \ --color=rgb:32/0d/b7,rgb:31/58/a3,rgb:e9/5e/d4 32 16 | cksum echo "Test 6. Should print: 1526189097 1549" ppmpat -madras -mesh \ --color=rgb:32/0d/b7,rgb:31/58/a3,rgb:e9/5e/d4 32 16 | cksum echo "Test 7. Should print: 3705929501 781" ppmpat -tartan --color=rgb:32/0d/b7,rgb:31/58/a3,rgb:e9/5e/d4 16 16 | cksum echo "Test 8. Should print: 1996587666 781" ppmpat -tartan -mesh \ --color=rgb:32/0d/b7,rgb:31/58/a3,rgb:e9/5e/d4 16 16 | cksum echo "Test 9. Should print: 3057513592 661" ppmpat -argyle1 --color=rgb:ff/ff/ff,rgb:ff/0/0 12 18 | cksum echo "Test 10. Should print: 1861389287 661" ppmpat -argyle2 --color=rgb:00/00/00,rgb:ff/80/80,rgb:e0/e0/e0 12 18 | 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 ppmpat -g2 -g3 10 10 > ${test_out} || \ printf "Expected failure 1 " test -s ${test_out} && echo "unexpected output" || echo "(no output)" rm -f ${test_out} ppmpat -madras -tartan 10 10 > ${test_out} || \ printf "Expected failure 2 " test -s ${test_out} && echo "unexpected output" || echo "(no output)" rm -f ${test_out} ppmpat -poles -squig 10 10 > ${test_out} || \ printf "Expected failure 3 " test -s ${test_out} && echo "unexpected output" || echo "(no output)" rm -f ${test_out} ppmpat -camo -anticamo 10 10 > ${test_out} || \ printf "Expected failure 4 " test -s ${test_out} && echo "unexpected output" || echo "(no output)" rm -f ${test_out} ppmpat -argyle1 -argyle2 10 10 > ${test_out} || \ printf "Expected failure 5 " test -s ${test_out} && echo "unexpected output" || echo "(no output)" rm -f ${test_out} ppmpat 10 10 > ${test_out} || \ printf "Expected failure 6 " test -s ${test_out} && echo "unexpected output" || echo "(no output)" rm -f ${test_out} ppmpat -g2 10 > ${test_out} || \ printf "Expected failure 7 " test -s ${test_out} && echo "unexpected output" || echo "(no output)" rm -f ${test_out} ppmpat -g2 10 10 10 > ${test_out} || \ printf "Expected failure 8 " test -s ${test_out} && echo "unexpected output" || echo "(no output)" rm -f ${test_out} ppmpat -g2 10 > ${test_out} || \ printf "Expected failure 9 " test -s ${test_out} && echo "unexpected output" || echo "(no output)" rm -f ${test_out} clist1="-color=rgb:00/00/00" clist2="-color=rgb:00/00/00,rgb:00/00/ff" clist3="-color=rgb:00/00/00,rgb:00/00/ff,rgb:00/ff/ff" clist4="-color=rgb:00/00/00,rgb:00/00/ff,rgb:00/ff/ff,rgb:ff/ff/ff" # These patterns require exactly 2 colors ppmpat -gingham2 ${clist1} 10 10 > ${test_out} || \ printf "Expected failure 10 " test -s ${test_out} && echo "unexpected output" || echo "(no output)" rm -f ${test_out} ppmpat -argyle1 ${clist1} 10 10 > ${test_out} || \ printf "Expected failure 11 " test -s ${test_out} && echo "unexpected output" || echo "(no output)" rm -f ${test_out} ppmpat -gingham2 ${clist3} 10 10 > ${test_out} || \ printf "Expected failure 12 " test -s ${test_out} && echo "unexpected output" || echo "(no output)" rm -f ${test_out} ppmpat -argyle1 ${clist3} 10 10 > ${test_out} || \ printf "Expected failure 13 " test -s ${test_out} && echo "unexpected output" || echo "(no output)" rm -f ${test_out} # These require exactly 3 colors ppmpat -gingham3 ${clist2} 10 10 > ${test_out} || \ printf "Expected failure 14 " test -s ${test_out} && echo "unexpected output" || echo "(no output)" rm -f ${test_out} ppmpat -argyle2 ${clist2} 10 10 > ${test_out} || \ printf "Expected failure 15 " test -s ${test_out} && echo "unexpected output" || echo "(no output)" rm -f ${test_out} ppmpat -madras ${clist2} 10 10 > ${test_out} || \ printf "Expected failure 16 " test -s ${test_out} && echo "unexpected output" || echo "(no output)" rm -f ${test_out} ppmpat -tartan ${clist2} 10 10 > ${test_out} || \ printf "Expected failure 17 " test -s ${test_out} && echo "unexpected output" || echo "(no output)" rm -f ${test_out} ppmpat -gingham3 ${clist4} 10 10 > ${test_out} || \ printf "Expected failure 18 " test -s ${test_out} && echo "unexpected output" || echo "(no output)" rm -f ${test_out} ppmpat -argyle2 ${clist4} 10 10 > ${test_out} || \ printf "Expected failure 19 " test -s ${test_out} && echo "unexpected output" || echo "(no output)" rm -f ${test_out} ppmpat -madras ${clist4} 10 10 > ${test_out} || \ printf "Expected failure 20 " test -s ${test_out} && echo "unexpected output" || echo "(no output)" rm -f ${test_out} ppmpat -tartan ${clist4} 10 10 > ${test_out} || \ printf "Expected failure 21 " test -s ${test_out} && echo "unexpected output" || echo "(no output)" rm -f ${test_out} # These require at least 3 colors ppmpat -squig ${clist2} 10 10 > ${test_out} || \ printf "Expected failure 22 " test -s ${test_out} && echo "unexpected output" || echo "(no output)" rm -f ${test_out} ppmpat -camo ${clist2} 10 10 > ${test_out} || \ printf "Expected failure 23 " test -s ${test_out} && echo "unexpected output" || echo "(no output)" rm -f ${test_out} ppmpat -anticamo ${clist2} 10 10 > ${test_out} || \ printf "Expected failure 24 " test -s ${test_out} && echo "unexpected output" || echo "(no output)" rm -f ${test_out} # The squig pattern has an aspect ratio restriction ppmpat -squig ${clist3} 10 250 > ${test_out} || \ printf "Expected failure 25 " test -s ${test_out} && echo "unexpected output" || echo "(no output)" rm -f ${test_out} ppmpat -squig ${clist3} 500 20 > ${test_out} || \ printf "Expected failure 26 " test -s ${test_out} && echo "unexpected output" || echo "(no output)" rm -f ${test_out}