#!/bin/csh -f

# GRAPE-DR functionality test program (check)
# version 0.1

set cmdname  = $0:t;
set rootpath = $0:h/../..
pushd $rootpath > /dev/null
set rootpath = `pwd`
popd > /dev/null

#setenv HIB_WARNLEVEL "1"

#if($?GDEVICE) then
# set gdevice = ${GDEVICE};
#else
 set gdevice = 0;
#endif
set flag = $1

echo "-------------------------------------------------"
echo " GRAPE-DR functionality test program (check)"
echo ""
echo "  usage: check"
echo "-------------------------------------------------"
echo "Start the tests. It may take a few minutes." 
echo

set tmpdir = ${rootpath}/tmp
set tmpout = ${tmpdir}/tmpouts8
cd ${rootpath}/sample/s8

foreach n (64k)
    endif
    if(${n} == "64k") then 
      echo "---------- s8: pl64k ----------------------------"
      echo 1024.0 600.0 0.5 0.0625 ../s9/pl64k 0.01 0.03 > inputpara.${gdevice}
    endif
    ./s8_gdr inputpara.${gdevice} |& tee ${tmpout}.${gdevice}
    grep -v speed ${tmpout}.${gdevice} | grep -v cputime | grep -v nplus | grep -v devid > ${tmpout}2.${gdevice}
    grep -v speed sample.${n}.m4000 | grep -v cputime | grep -v nplus > ${tmpout}3.${gdevice}
    diff -w ${tmpout}2.${gdevice} ${tmpout}3.${gdevice} > /dev/null
    set s = ${status}
    if (${s} == 0) then
      echo OK 
    else
      echo NG 
      exit 1
    endif
end

set tmpout = ${tmpdir}/tmpouts9
cd ../s9

foreach n (64k 256k)
    echo
    if (${n} == "64k") then
      echo "---------- s9: pl64k ----------------------------"
      echo 128.0 256.0 0.5 0.0625 pl64k 2 8.0 7 > inputpara9.${gdevice}
    endif
    if (${n} == "256k") then
      echo "---------- s9: pl256k ----------------------------"
      echo 128.0 256.0 0.5 0.0625 pl256k 2 8.0 7 > inputpara9.${gdevice}
    endif
    ./s9_gdr inputpara9.${gdevice} |& tee ${tmpout}.${gdevice}
    grep -v speed ${tmpout}.${gdevice} | grep -v cputime | grep -v nplus | grep -v closed | grep -v opened | grep -v devid > ${tmpout}2.${gdevice}
    grep -v speed sample.${n}.m4000 | grep -v cputime | grep -v nplus > ${tmpout}3.${gdevice}
    diff -w ${tmpout}2.${gdevice} ${tmpout}3.${gdevice} > /dev/null
    set s = ${status}
    if (${s} == 0) then
      echo OK 
    else
      echo NG 
      exit 1
    endif
end

echo
cd ../..
echo "Passed all tests." 
echo

exit 0

