#!/usr/bin/env bash
# $Id:  $

if [ -n "$SKIP_CHECK" ]; then
    echo "Skipping checks"
    exit 0
fi

if [ -z "$srcdir" ]; then
  srcdir="./"
fi

if [ -z "$tmpdir" ]; then
  tmpdir="/tmp"
fi

if [ -z "$builddir" ]; then
  builddir="./"
fi

fail=0
echo -e "\033[33;1mComparing against reference data\033[0m"
for i in `ls $srcdir/regression/*.pol.bz2 | sort`; do
  func=`basename $i .pol.bz2`
  fname=`printf '%-30s' $func`

  echo -ne "\033[0m :: Testing \033[35;1m$fname"

  bunzip2 -c $srcdir/regression/$func.pol.bz2 > $tmpdir/$$.pol_ref
  bunzip2 -c $srcdir/regression/$func.unpol.bz2 > $tmpdir/$$.unpol_ref

  $builddir/xc-regression $func $srcdir/input/BrOH+ $tmpdir/$$.pol $tmpdir/$$.unpol > /dev/null

  # Spin-restricted
  res=`$builddir/xc-error $tmpdir/$$.unpol $tmpdir/$$.unpol_ref`
  if [ "x$res" = "x1" ]; then
      echo -ne "\033[32;1mOK"
  else
      echo -ne "\033[31;1mFAIL"
      let fail++
  fi

  # Spin-unrestricted
  res=`$builddir/xc-error $tmpdir/$$.pol $tmpdir/$$.pol_ref`
  if [ "x$res" = "x1" ]; then
      echo -e "\t\033[32;1mOK"
      let ok++
  else
      echo -e "\t\033[31;1mFAIL"
  fi
done
echo -e "\033[0m"

exit $fail

