:
# Script to do some testing of various transformation.
#
#
EXE=$1

usage()
{
    echo "Usage: ${0} <path to 'cs2cs' program>" 
    echo
    exit 1
}

if test -z "${EXE}"; then
    echo "*** ERROR: Missing path to 'cs2cs' program."
    usage
else
    if test ! -x ${EXE}; then
        echo "*** ERROR: Can not find '${EXE}' program!"
        exit 1
    fi
fi

echo "============================================"
echo "Running ${0} using ${EXE}:"
echo "============================================"

OUT=td_out
#EXE=../src/cs2cs
#
echo "doing tests into file ${OUT}, please wait"
rm -f ${OUT}
#
echo "##############################################################" >> ${OUT}
echo 1st through ntv1, 2nd through conus >> ${OUT}
#
$EXE +proj=latlong +ellps=clrk66 +nadgrids=ntv1_can.dat,conus \
 +to +proj=latlong +datum=NAD83 \
 -E >>${OUT} <<EOF
111d00'00.000"W 44d00'00.000"N 0.0
111d00'00.000"W 39d00'00.000"N 0.0
EOF

echo "##############################################################" >> ${OUT}
echo As above, but without ntv1 everything goes through conus file. >> ${OUT}
#
$EXE +proj=latlong +ellps=clrk66 +nadgrids=conus \
 +to +proj=latlong +datum=NAD83 \
 -E >>${OUT} <<EOF
111d00'00.000"W 44d00'00.000"N 0.0
111d00'00.000"W 39d00'00.000"N 0.0
EOF

echo "##############################################################" >> ${OUT}
echo Test MD used where available >> ${OUT}
#
$EXE +proj=latlong +ellps=clrk66 +nadgrids=MD,conus \
 +to +proj=latlong +datum=NAD83 \
 -E >>${OUT} <<EOF
79d58'00.000"W 37d02'00.000"N 0.0
79d58'00.000"W 36d58'00.000"N 0.0
EOF
#
$EXE +proj=latlong +ellps=clrk66 +nadgrids=conus \
 +to +proj=latlong +datum=NAD83 \
 -E >>${OUT} <<EOF
79d58'00.000"W 37d02'00.000"N 0.0
79d58'00.000"W 36d58'00.000"N 0.0
EOF
#
echo "##############################################################" >> ${OUT}
echo Test raw ellipse to raw ellipse >> ${OUT}
#
$EXE +proj=latlong +ellps=clrk66 \
 +to +proj=latlong +ellps=bessel \
 -E >>${OUT} <<EOF
79d58'00.000"W 37d02'00.000"N 0.0
79d58'00.000"W 36d58'00.000"N 0.0
EOF
#
echo "##############################################################" >> ${OUT}
echo Test NAD27 to raw ellipse >> ${OUT}
#
$EXE +proj=latlong +datum=NAD27 \
 +to +proj=latlong +ellps=bessel \
 -E >>${OUT} <<EOF
79d00'00.000"W 35d00'00.000"N 0.0
EOF
#
echo "##############################################################" >> ${OUT}
echo Between two 3parameter approximations on same ellipsoid >> ${OUT}
#
$EXE +proj=latlong +ellps=bessel +towgs84=5,0,0 \
 +to +proj=latlong +ellps=bessel +towgs84=1,0,0 \
 -E >>${OUT} <<EOF
0d00'00.000"W 0d00'00.000"N 0.0
79d00'00.000"W 45d00'00.000"N 0.0
EOF
#
echo "##############################################################" >> ${OUT}
echo 3param to raw ellipsoid on same ellipsoid >> ${OUT}
#
$EXE +proj=latlong +ellps=bessel +towgs84=5,0,0 \
 +to +proj=latlong +ellps=bessel  \
 -E >>${OUT} <<EOF
0d00'00.000"W 0d00'00.000"N 0.0
79d00'00.000"W 45d00'00.000"N 0.0
EOF
#
echo "##############################################################" >> ${OUT}
echo Test simple prime meridian handling. >> ${OUT}
#
$EXE +proj=latlong +datum=WGS84 +pm=greenwich  \
 +to +proj=latlong +datum=WGS84 +pm=1 \
 -E >>${OUT} <<EOF
0d00'00.000"W 0d00'00.000"N 0.0
79d00'00.000"W 45d00'00.000"N 0.0
EOF
#
echo "##############################################################" >> ${OUT}
echo Test simple prime meridian handling within a projection. >> ${OUT}
#
$EXE +proj=utm +zone=11 +datum=WGS84 +pm=3 \
 +to +proj=latlong +datum=WGS84 +pm=1w \
 -E >>${OUT} <<EOF
500000 3000000
EOF
echo "##############################################################" >> ${OUT}
echo Test geocentric x/y/z generation. >> ${OUT}
#
$EXE +proj=latlong +datum=WGS84  \
 +to +proj=geocent +datum=WGS84  \
 -E >>${OUT} <<EOF
0d00'00.000"W 0d00'00.000"N 0.0
0d00'00.000"W 0d00'00.000"N 10.0
79d00'00.000"W 45d00'00.000"N 0.0
0d00'00.000"W 90d00'00.000"N 0.0
EOF
#
echo "##############################################################" >> ${OUT}
echo Test geocentric x/y/z consumption. >> ${OUT}
#
$EXE +proj=geocent +datum=WGS84  \
 +to +proj=latlong +datum=WGS84  \
 -E >>${OUT} <<EOF
6378137.00      -0.00 0.00
6378147.00      -0.00 0.00
861996.98       -4434590.01 4487348.41
0.00    -0.00 6356752.31
EOF
#
#echo "#############################################################" >> ${OUT}
#echo Test conversion between geocentric latlong and geodetic latlong >> ${OUT}
#
# The +geoc flag does not currently work with pj_transform() so this is 
# disabled. 
#
#$EXE +proj=latlong +datum=WGS84 +geoc \
# +to +proj=latlong +datum=WGS84  \
# -E >>${OUT} <<EOF
#0d00'00.000"W 0d00'00.000"N 0.0
#79d00'00.000"W 45d00'00.000"N 0.0
#12d00'00.000"W 45d00'00.000"N 0.0
#0d00'00.000"W 90d00'00.000"N 0.0
#EOF
#
echo "##############################################################" >> ${OUT}
echo "Test stere projection (re: win32 ticket 12)" >> ${OUT}
#
$EXE +proj=latlong +datum=WGS84 \
 +to +proj=stere +lat_0=90 +lon_0=0 +lat_ts=70 +datum=WGS84 \
 -E >>${OUT} <<EOF
105 40
EOF
#
##############################################################################
# Done! 
# do 'diff' with distribution results
echo "diff ${OUT} with ${OUT}.dist"
diff -b ${OUT} ${OUT}.dist
if [ $? -ne 0 ] ; then
	echo  ""
	echo "PROBLEMS HAVE OCCURED"
	echo "test file ${OUT} saved"
    echo
	exit 100
else
	echo "TEST OK"
	echo "test file ${OUT} removed"
    echo
	/bin/rm -f ${OUT}
	exit 0
fi
