#!/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='checkUDeed'

/public/public/monopoly/diffpp > test.in 2>/dev/null << 'endOfSampleInput'
Game
 DeedIndex
  UtilityDeed
   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
   all    10
   one     4
  end

  UtilityDeed
   Key b end
   List
    DeedPtr Key a end end 
    DeedPtr Key c end end 
    DeedPtr Key d end end 
   end
   Key AA end 
   Key BB end 
   1001 500
   false
   all    10
   one     4
  end

  UtilityDeed
   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
   all    10
   one     4
  end

  UtilityDeed
   Key d end
   List
    DeedPtr Key b end end 
    DeedPtr Key c end end 
    DeedPtr Key a end end 
   end
   Key DD end 
   Key DD end 
   1003 700
   false
   all    10
   one     4
  end

  UtilityDeed
   Key aa end
   List
    DeedPtr Key bb end end 
    DeedPtr Key cc end end 
    DeedPtr Key dd end end 
   end
   Key player end 
   Key AA end 
   1000 400
   false
   all    10
   one     4
  end

  UtilityDeed
   Key bb end
   List
    DeedPtr Key aa end end 
    DeedPtr Key cc end end 
    DeedPtr Key dd end end 
   end
   Key player end 
   Key BB end 
   1001 500
   true
   all    10
   one     4
  end

  UtilityDeed
   Key cc end
   List
    DeedPtr Key bb end end 
    DeedPtr Key aa end end 
    DeedPtr Key dd end end 
   end
   Key player1 end 
   Key CC end 
   1002 600
   false
   all    10
   one     4
  end

  UtilityDeed
   Key dd end
   List
    DeedPtr Key bb end end 
    DeedPtr Key cc end end 
    DeedPtr Key aa end end 
   end
   Key player end 
   Key DD end 
   1003 700
   true
   all    10
   one     4
  end

  UtilityDeed
   Key 1 end
   List
    DeedPtr Key 2 end end 
   end
   Key player end 
   Key ONE end 
   1111 111
   false
   all    10
   one     4
  end

  UtilityDeed
   Key 2 end
   List
    DeedPtr Key 1 end end 
   end
   Key player end 
   Key TWO end 
   2222 222
   false
   all    10
   one     4
  end

  UtilityDeed
   Key nobody end
   List
   end
   Key Noone end 
   Key Nowhere end 
   99999 9999
   false
   all    10
   one     4
  end
 end

 Dice 3 4 end
 
end 


List
 DeedPtr Key a end end 
 DeedPtr Key b end end 
 DeedPtr Key c end end 
 DeedPtr Key d end end 
 DeedPtr Key aa end end 
 DeedPtr Key bb end end 
 DeedPtr Key cc end end 
 DeedPtr Key dd 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
  UtilityDeed
   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
   all    10
   one     4
  end

  UtilityDeed
   Key b end
   List
    DeedPtr Key a end end 
    DeedPtr Key c end end 
    DeedPtr Key d end end 
   end
   Key AA end 
   Key BB end 
   1001 500
   false
   all    10
   one     4
  end

  UtilityDeed
   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
   all    10
   one     4
  end

  UtilityDeed
   Key d end
   List
    DeedPtr Key b end end 
    DeedPtr Key c end end 
    DeedPtr Key a end end 
   end
   Key DD end 
   Key DD end 
   1003 700
   false
   all    10
   one     4
  end

  UtilityDeed
   Key aa end
   List
    DeedPtr Key bb end end 
    DeedPtr Key cc end end 
    DeedPtr Key dd end end 
   end
   Key player end 
   Key AA end 
   1000 400
   false
   all    10
   one     4
  end

  UtilityDeed
   Key bb end
   List
    DeedPtr Key aa end end 
    DeedPtr Key cc end end 
    DeedPtr Key dd end end 
   end
   Key player end 
   Key BB end 
   1001 500
   true
   all    10
   one     4
  end

  UtilityDeed
   Key cc end
   List
    DeedPtr Key bb end end 
    DeedPtr Key aa end end 
    DeedPtr Key dd end end 
   end
   Key player1 end 
   Key CC end 
   1002 600
   false
   all    10
   one     4
  end

  UtilityDeed
   Key dd end
   List
    DeedPtr Key bb end end 
    DeedPtr Key cc end end 
    DeedPtr Key aa end end 
   end
   Key player end 
   Key DD end 
   1003 700
   true
   all    10
   one     4
  end

  UtilityDeed
   Key 1 end
   List
    DeedPtr Key 2 end end 
   end
   Key player end 
   Key ONE end 
   1111 111
   false
   all    10
   one     4
  end

  UtilityDeed
   Key 2 end
   List
    DeedPtr Key 1 end end 
   end
   Key player end 
   Key TWO end 
   2222 222
   false
   all    10
   one     4
  end

  UtilityDeed
   Key nobody end
   List
   end
   Key Noone end 
   Key Nowhere end 
   99999 9999
   false
   all    10
   one     4
  end
 end

 Dice 3 4 end
 
end 

28  #two (2/4) = (3+4)*4
28  #two (2/4)
28  #one (1/4)
28  #one (1/4)
28  #three     (3/4)
0   #mortgaged (3/4)
28  #one       (1/4)
0   #mortgaged (3/4)
70  #all (2/2)
70  #all (2/2)
70  #all (1/1)

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
