#!/bin/sh
################################################################
#
#  [# Edit, Date, User, Module #]
#
#  test-script for monopoly-template
#
here=`pwd`
if test $? -ne 0 ; then exit 1; fi
tmp=/tmp/$$
mkdir $tmp
if test $? -ne 0 ; then exit 1; fi
cd $tmp
if test $? -ne 0 ; then exit 1; fi

fail()
{
	echo FAILED 1>&2
	cd $here
	chmod u+w `find $tmp -type d -print`
	rm -rf $tmp
	exit 1
}

pass()
{
	cd $here
	chmod u+w `find $tmp -type d -print`
	rm -rf $tmp
	exit 0
}

trap 'fail' 1 2 3 15

###  Enter argument list for `monopoly' here ###
arglist='checkDeed'

/public/public/monopoly/diffpp > test.in 2>/dev/null << 'endOfSampleInput'

Game
 DeedIndex
  PropertyDeed
   Key a end
   List
    DeedPtr Key b end end 
    DeedPtr Key c end end 
    DeedPtr Key d end end 
   end
   Key AA end 
   Key AA end 
   1000 400
   false
  end

  PropertyDeed
   Key b end
   List
    DeedPtr Key a end end 
    DeedPtr Key c end end 
    DeedPtr Key d end end 
   end
   Key BB end 
   Key BB end 
   1001 500
   false
  end

  PropertyDeed
   Key c end
   List
    DeedPtr Key b end end 
    DeedPtr Key a end end 
    DeedPtr Key d end end 
   end
   Key CC end 
   Key CC end 
   1002 600
   false
  end

  PropertyDeed
   Key d end
   List
    DeedPtr Key b end end 
    DeedPtr Key c end end 
    DeedPtr Key a end end 
   end
   Key AA end 
   Key DD end 
   1003 700
   false
  end

  PropertyDeed
   Key 1 end
   List
    DeedPtr Key 2 end end 
   end
   Key One end 
   Key ONE end 
   1111 111
   false
  end

  PropertyDeed
   Key 2 end
   List
    DeedPtr Key 1 end end 
   end
   Key Two end 
   Key TWO end 
   2222 222
   false
  end

  PropertyDeed
   Key nobody end
   List
   end
   Key Noone end 
   Key Nowhere end 
   99999 9999
   false
  end
 end

 Dice 3 4 end
 
end 

List
 DeedPtr Key a end end 
 DeedPtr Key b end end 
 DeedPtr Key d end end 
 DeedPtr Key 1 end end 
 DeedPtr Key 2 end end 
 DeedPtr Key nobody end end 
end
endOfSampleInput
if test $? -ne 0 ; then fail; fi

/public/public/monopoly/diffpp > test.ok 2>/dev/null << 'endOfExpectedOutput'

Game
 DeedIndex
  PropertyDeed
   Key a end
   List
    DeedPtr Key b end end 
    DeedPtr Key c end end 
    DeedPtr Key d end end 
   end
   Key AA end 
   Key AA end 
   1000 400
   false
  end

  PropertyDeed
   Key b end
   List
    DeedPtr Key a end end 
    DeedPtr Key c end end 
    DeedPtr Key d end end 
   end
   Key BB end 
   Key BB end 
   1001 500
   false
  end

  PropertyDeed
   Key c end
   List
    DeedPtr Key b end end 
    DeedPtr Key a end end 
    DeedPtr Key d end end 
   end
   Key CC end 
   Key CC end 
   1002 600
   false
  end

  PropertyDeed
   Key d end
   List
    DeedPtr Key b end end 
    DeedPtr Key c end end 
    DeedPtr Key a end end 
   end
   Key AA end 
   Key DD end 
   1003 700
   false
  end

  PropertyDeed
   Key 1 end
   List
    DeedPtr Key 2 end end 
   end
   Key One end 
   Key ONE end 
   1111 111
   false
  end

  PropertyDeed
   Key 2 end
   List
    DeedPtr Key 1 end end 
   end
   Key Two end 
   Key TWO end 
   2222 222
   false
  end

  PropertyDeed
   Key nobody end
   List
   end
   Key Noone end 
   Key Nowhere end 
   99999 9999
   false
  end
 end

 Dice 3 4 end
 
end 


two
Key AA end
Key AA end

one
Key BB end
Key BB end

two
Key AA end
Key DD end

one
Key One end
Key ONE end

one
Key Two end
Key TWO end

all
Key Noone end
Key Nowhere end

three
Key Sam end
Key Pacifica end
false

three
Key Sam end
Key Pacifica end
true

three
Key Sam end
Key Pacifica end
false

all
Key Sam end
Key Pacifica end
true

all
Key Sam end
Key Pacifica end
false

all
Key Sam end
Key Pacifica end
true

endOfExpectedOutput
if test $? -ne 0 ; then fail; fi

$here/monopoly $arglist < test.in | /public/public/monopoly/diffpp > test.out 2>/dev/null
if test $? -ne 0 ; then fail; fi

diff test.ok test.out
if test $? -ne 0 ; then fail; fi

# it probably worked
pass
