#!/bin/csh

if ( ! -e dijkstra ) then
  echo "dijkstra.cpp has not been compiled."
  exit 1
endif

if ( ! -d data ) then
  mkdir data
  echo 5         > data/data1.txt
  echo 1 2 5.1   >> data/data1.txt
  echo 2 3 4.2   >> data/data1.txt
  echo 3 4 3.0   >> data/data1.txt
  echo 4 5 7.9   >> data/data1.txt
  echo 0         >> data/data1.txt
  echo 3 2       >> data/data1.txt

  echo 5         > data/data2.txt
  echo 1 2  9    >> data/data2.txt
  echo 1 3 12    >> data/data2.txt
  echo 2 4 18    >> data/data2.txt
  echo 2 3  6    >> data/data2.txt
  echo 2 5 20    >> data/data2.txt
  echo 3 5 12    >> data/data2.txt
  echo 0         >> data/data2.txt
  echo 1 5       >> data/data2.txt

  echo 6         > data/data3.txt
  echo 1 3 20    >> data/data3.txt
  echo 1 5 5     >> data/data3.txt
  echo 1 2 5     >> data/data3.txt
  echo 3 5 10    >> data/data3.txt
  echo 3 2 30    >> data/data3.txt
  echo 2 6 10    >> data/data3.txt
  echo 6 4 3     >> data/data3.txt
  echo 1 4 80    >> data/data3.txt
  echo 0         >> data/data3.txt
  echo 3 4       >> data/data3.txt

  echo 7         > data/data4.txt
  echo 1 2 5     >> data/data4.txt
  echo 1 3 4     >> data/data4.txt
  echo 1 4 3     >> data/data4.txt
  echo 1 5 2     >> data/data4.txt
  echo 1 6 1     >> data/data4.txt
  echo 2 7 1.5   >> data/data4.txt
  echo 3 7 10.5  >> data/data4.txt
  echo 4 7 10.5  >> data/data4.txt
  echo 5 7 10.5  >> data/data4.txt
  echo 6 7 10.5  >> data/data4.txt
  echo 0         >> data/data4.txt
  echo 1 7       >> data/data4.txt

  echo 8         > data/data5.txt
  echo 1 5 4.0   >> data/data5.txt
  echo 2 8 5.0   >> data/data5.txt
  echo 4 1 1.0   >> data/data5.txt
  echo 4 2 3.0   >> data/data5.txt
  echo 3 1 5.0   >> data/data5.txt
  echo 5 3 3.0   >> data/data5.txt
  echo 2 7 19.0  >> data/data5.txt
  echo 3 7 4.0   >> data/data5.txt
  echo 8 4 10.0  >> data/data5.txt
  echo 7 6 5.0   >> data/data5.txt
  echo 0         >> data/data5.txt
  echo 8 6       >> data/data5.txt

  echo 4         > data/data6.txt
  echo 1 2 1.8   >> data/data6.txt
  echo 2 3 1.8   >> data/data6.txt
  echo 3 4 1.8   >> data/data6.txt
  echo 1 4 4.0   >> data/data6.txt
  echo 0         >> data/data6.txt
  echo 1 4       >> data/data6.txt
endif

limit cputime 1
foreach i ( 1 2 3 4 5 6 )
  echo "---------------------------------------"
  echo "testing on data/data${i}.txt"
  echo
  if ( $# >= 1 ) then
    ./dijkstra -t < data/data${i}.txt
  else
    ./dijkstra  < data/data${i}.txt
  endif
  set s = $status
  if ($s == 152) then
    echo "Time limit exceeded"
  else if ($s == 139) then
    echo "Segmentation fault"
  else if ($s != 0) then
    echo "Fault" $s
  endif
end
