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

/public/public/monopoly/diffpp > test.in 2>/dev/null << 'endOfSampleInput'
Game
 DeedIndex
  StationDeed
   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   200
   one    25
   two    50
   three 100
  end

  StationDeed
   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   200
   one    25
   two    50
   three 100
  end

  StationDeed
   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   200
   one    25
   two    50
   three 100
  end

  StationDeed
   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   200
   one    25
   two    50
   three 100
  end

  StationDeed
   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   200
   one    25
   two    50
   three 100
  end

  StationDeed
   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   200
   one    25
   two    50
   three 100
  end

  StationDeed
   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   200
   one    25
   two    50
   three 100
  end

  StationDeed
   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   200
   one    25
   two    50
   three 100
  end

  StationDeed
   Key 1 end
   List
    DeedPtr Key 2 end end 
   end
   Key player end 
   Key ONE end 
   1111 111
   false
   all   200
   one    25
   two    50
   three 100
  end

  StationDeed
   Key 2 end
   List
    DeedPtr Key 1 end end 
   end
   Key player end 
   Key TWO end 
   2222 222
   false
   all   200
   one    25
   two    50
   three 100
  end

  StationDeed
   Key nobody end
   List
   end
   Key Noone end 
   Key Nowhere end 
   99999 9999
   false
   all   200
   one    25
   two    50
   three 100
  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
  StationDeed
   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   200
   one    25
   two    50
   three 100
  end

  StationDeed
   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   200
   one    25
   two    50
   three 100
  end

  StationDeed
   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   200
   one    25
   two    50
   three 100
  end

  StationDeed
   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   200
   one    25
   two    50
   three 100
  end

  StationDeed
   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   200
   one    25
   two    50
   three 100
  end

  StationDeed
   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   200
   one    25
   two    50
   three 100
  end

  StationDeed
   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   200
   one    25
   two    50
   three 100
  end

  StationDeed
   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   200
   one    25
   two    50
   three 100
  end

  StationDeed
   Key 1 end
   List
    DeedPtr Key 2 end end 
   end
   Key player end 
   Key ONE end 
   1111 111
   false
   all   200
   one    25
   two    50
   three 100
  end

  StationDeed
   Key 2 end
   List
    DeedPtr Key 1 end end 
   end
   Key player end 
   Key TWO end 
   2222 222
   false
   all   200
   one    25
   two    50
   three 100
  end

  StationDeed
   Key nobody end
   List
   end
   Key Noone end 
   Key Nowhere end 
   99999 9999
   false
   all   200
   one    25
   two    50
   three 100
  end
 end

 Dice 3 4 end
 
end 

50  #two (2/4)
50  #two (2/4)
25  #one (1/4)
25  #one (1/4)
100 #three     (3/4)
0   #mortgaged (3/4)
25  #one       (1/4)
0   #mortgaged (3/4)
200 #all (2/2)
200 #all (2/2)
200 #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
