#!/bin/csh

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

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

  echo "5\n\
    1 2  9\n\
    1 3 12\n\
    2 4 18\n\
    2 3  6\n\
    2 5 20\n\
    3 5 12\n\
    0\n\
    1 5\n"      > data/data2

  echo "6\n\
    1 3 20\n\
    1 5 5\n\
    1 2 5\n\
    3 5 10\n\
    3 2 30\n\
    2 6 10\n\
    6 4 3\n\
    1 4 80\n\
    0\n\
    3 4\n"      > data/data3

  echo "7\n\
    1 2 5\n\
    1 3 4\n\
    1 4 3\n\
    1 5 2\n\
    1 6 1\n\
    2 7 1.5\n\
    3 7 10.5\n\
    4 7 10.5\n\
    5 7 10.5\n\
    6 7 10.5\n\
    0\n\
    1 7\n"      > data/data4

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

  echo "4\n\
    1 2 1.8\n\
    2 3 1.8\n\
    3 4 1.8\n\
    1 4 4.0\n\
    0\n\
    1 4\n"      > data/data6
endif

limit cputime 1
foreach i ( 1 2 3 4 5 6 )
  echo "---------------------------------------"
  echo "testing on data/data${i}"
  echo
  if ( $# >= 1 ) then
    ./dijkstra -t < data/data${i}
  else
    ./dijkstra  < data/data${i}
  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
