#!/bin/sh
echo Starting the trap tests...
# integer overflow (no longer checked)
#if [ `echo '
#i=1;while(i>0){i+=i;};
#i=1;while(i>0){i+=i;};
#' | ../src/algae -V -i -S 2>&1 | grep -i -c 'overflow'` -lt 2 ]
#then
# if [ `echo '
# i=1;while(i>0){i+=i;};
# i=1;while(i>0){i+=i;};
# ' | ../src/algae -V -i -S 2>&1 | grep -i -c 'run time error'` -lt 2 ]
# then
# echo ...failed to trap integer overflow
# else
# echo ...sloppy handling of integer overflow
# fi
#fi
# floating point overflow
if [ `echo '
i=1.0;while(i<i*1e6){i=i*1e6;};
i=1.0;while(i<i*1e6){i=i*1e6;};
' | ../src/algae -V -i -S 2>&1 | grep -i -c 'point overflow'` -lt 2 ]
then
if [ `echo '
i=1.0;while(i<i*1e6){i=i*1e6;};
i=1.0;while(i<i*1e6){i=i*1e6;};
' | ../src/algae -V -i -S 2>&1 | grep -i -c 'run time error'` -lt 2 ]
then
echo ...failed to trap floating point overflow
else
echo '...sloppy (but acceptable) handling of floating point overflow'
fi
fi
# floating point divide by zero
if [ `echo '
[1.0,2.0]/[0.0,1.0]
[1.0,2.0]/[0.0,1.0]
' | ../src/algae -V -i -S 2>&1 | grep -i -c 'Divide by zero'` -lt 2 ]
then
if [ `echo '
[1.0,2.0]/[0.0,1.0]
[1.0,2.0]/[0.0,1.0]
' | ../src/algae -V -i -S 2>&1 | grep -i -c 'run time error'` -lt 2 ]
then
echo ...failed to trap floating point divide by zero
else
echo '...sloppy (but acceptable) handling of floating point divide by zero'
fi
fi
# range error
if [ `echo '
d=1.0;while(d<exp(d)){d=exp(d);}
d=1.0;while(d<exp(d)){d=exp(d);}
' | ../src/algae -V -i -S 2>&1 | grep -i -c 'out of range'` -lt 2 ]
then
if [ `echo '
d=1.0;while(d<exp(d)){d=exp(d);}
d=1.0;while(d<exp(d)){d=exp(d);}
' | ../src/algae -V -i -S 2>&1 | grep -i -c 'run time error'` -lt 2 ]
then
echo ...failed to trap range error in math library
else
echo '...sloppy (but acceptable) handling of range error in math library'
fi
fi
# domain error
if [ `echo '
log(0)
log(0)
' | ../src/algae -V -i -S 2>&1 | grep -i -c 'out of domain'` -lt 2 ]
then
if [ `echo '
log(0)
log(0)
' | ../src/algae -V -i -S 2>&1 | grep -i -c 'run time error'` -lt 2 ]
then
echo ...failed to trap domain error in math library
else
echo '...sloppy (but acceptable) handling of domain error in math library'
fi
fi
echo ...done.
syntax highlighted by Code2HTML, v. 0.9.1