#! /bin/bash
# This script tests: pamtopdbimg
# Also requires: pgmmake pgmnoise

tmpdir=${tmpdir:-/tmp}
mono_pgm=${tmpdir}/graymono.pgm
noise_pgm=${tmpdir}/graynoise.pgm
text65533=${tmpdir}/ascii65533.txt
text65534=${tmpdir}/ascii65534.txt
text65597=${tmpdir}/ascii65597.txt

# The PDB image format has a time stamp.  This causes pamtopdbimg
# to produce slightly different output files with each invocation.

# Test 1. High compression
# -maybecompressed should produce a compressed file
# Should print:
#  2
#  1
echo high compression
pgmmake 0.5 -maxval=15 160 160 > ${mono_pgm}
for flag in "-compressed" "-maybecompressed" "-uncompressed"
   do
   pamtopdbimg $flag ${mono_pgm} | wc -c | tr -d ' '
   done  | uniq -c | awk '{print $1}'
rm ${mono_pgm}


# Test 2. Poor compression
#  -maybecompressed should produce a uncompressed file
# Should print:
#  1
#  2
echo poor compression
pgmnoise -maxval=15 -randomseed=0 160 160 > ${noise_pgm}
for flag in "-compressed" "-maybecompressed" "-uncompressed"
   do
   pamtopdbimg $flag ${noise_pgm} | wc -c
   done  | uniq -c | awk '{print $1}'
rm ${noise_pgm}


# Test 3. long titles
# Should succeed twice and fail once, producing:
# 268
# 0
# 268
# 0
# 1
# 0

# Some versions of wc have extra whitespace in the output (e.g. MAC OS)
# Delete with tr -d

echo long titles 
for flag in "" "-title=0123456789012345678901234567890" \
               "-title=01234567890123456789012345678901"
   do
   pamtopdbimg $flag testgrid.pbm | wc -c | tr -d ' '
   echo ${PIPESTATUS[0]}
   done



# Test 4. large notefile
# Should succeed twice and fail once, producing:
# 3344
# 0
# 68886
# 0
# 1
# 0
echo large notefile 
awk 'BEGIN { ABC="ABCDEFGHIJKLMNOPQRSTUVWXYZ";
             abc="abcdefghijklmnopqrstuvwxyz";
             digits="0123456789"; string ="";

             while ( length(string) < 65597 ) 
                string = string ABC abc digits;

             print string }' > ${text65597}

head -c 65533 ${text65597} > ${text65533}
head -c 65534 ${text65597} > ${text65534}
pamtopdbimg -uncompressed maze.pbm | \
  wc -c | tr -d ' '
  echo ${PIPESTATUS[0]}
pamtopdbimg -uncompressed -notefile=${text65533} maze.pbm | \
  wc -c | tr -d ' '
  echo ${PIPESTATUS[0]}
pamtopdbimg -uncompressed -notefile=${text65534} maze.pbm | \
  wc -c | tr -d ' '
  echo ${PIPESTATUS[0]}

rm ${text65533} ${text65534} ${text65597}