#! /bin/tcsh -f
# Script to run tests on MacAnova
# Version of 020809
# Run Version 4.13 tests

# usage: dotest [-v version] [id1 [id2 ...]] [-new] [-d dir] [-f macanova] [-h helpfile]
set PROG = $0
set PROG = $PROG:t

set VERSION = 4.13
if ($#argv >= 2 && A"$1" == "A-v") then
	set VERSION = "$2"
	shift
	shift
endif

set SRCDIR = ~kb/src/macanova/macanova$VERSION
set PUBLIC = ~kb/public
set TESTFILES = testfiles$VERSION

set NEW = 0
set ID = ()

while($#argv > 0 && A$1 =~ A[0-9]*)
	set ID = ($ID $1)
	shift
end
while($#argv > 0 && A$1 =~ A-*)
	set CMD = $1
	if (A$CMD =~ A-n*)then
		set NEW = 1
	else
		shift
		if ($#argv == 0)goto usage
		switch ($CMD)
		  case -i:
			set ID = ($ID $1)
			breaksw
		  case -d:
			set DIR = $1
			set MACANOVA = $DIR/macanova
			set HELP = $DIR/macanova.hlp
			breaksw
		  case -f:
			set MACANOVA = $1
			breaksw
		  case -h:
			set HELP = $1
			breaksw
		  default:
			echo $PROG": unrecognized option $CMD"
			exit 1
		endsw
	endif
	shift
end
if ($#ID == 0)set ID = (2a 2b 3 4 5 6 7 8 9 10)

if($?HELP && !($?MACANOVA) || !($?HELP) && $?MACANOVA)then
	echo $PROG": You must either use both -f and -h or neither"
	exit 1
endif

if($#argv > 0)then
	set MACANOVA = ($1 -h $SRCDIR/macanova.hlp)
else if($?MACANOVA)then
	set MACANOVA = ($MACANOVA -h $HELP)
else if(-e $SRCDIR/macanova)then
	set MACANOVA = ($SRCDIR/macanova -h $SRCDIR/macanova.hlp -dp $SRCDIR)
else
	set MACANOVA = ($PUBLIC/macanova$VERSION -h $PUBLIC/macanova$VERSION.hlp)
endif

set D = $SRCDIR/$TESTFILES
cd $D

foreach arg ($ID)
	set F = TestChapter$arg.in
	set OUT = TestChapter$arg.out.unx
	echo "macanova < $F | diff $OUT -"
	if ($NEW) then
		$MACANOVA < $F > $OUT.new
		diff $OUT $OUT.new |less -g
	else
		$MACANOVA < $F |diff $OUT - |less -g
	endif
end
endif
rm -f session.sav spool.tst
exit 0

usage:
	echo usage: "$PROG [id1 [id2 ...]] [-new] [-d dir] [-f macanova] [-h helpfile]"
	exit 1
