#!/bin/bash

EXE_NAME=./luOMP

if [ ! -x "$EXE_NAME" ]
then
	echo 
	echo "Before executing this check script compile with:"
	echo -e "\t$ make write"
	echo
	exit
fi

PROCS="1 4 9 10 13 16 "
SIZES="10 30 "
BLOQS="1 2 3 5 7 10"

if [ "$1" != "" ]
then
	PROCS=$1
fi

if [ "$2" != "" ]
then
	SIZES=$2
fi

if [ "$3" != "" ]
then
	BLOQS=$3
fi

RESULT_DIR=CorrectResults

function doTest() {
	echo -e -n "Test $1 $2 $3:\t"
	rm -f *.dtxt
	mpirun -n $1 $EXE_NAME $2 $3 4

	CHECK_A=""
	CHECK_B=""
	CHECK_LU=""
	CHECK_X=""
	diff A.dtxt $RESULT_DIR/A.$2 >/dev/null || CHECK_A=A
	diff B.dtxt $RESULT_DIR/B.$2 >/dev/null || CHECK_B=B
	diff LU.dtxt $RESULT_DIR/LU.$2 >/dev/null || CHECK_LU=LU
	diff X.dtxt $RESULT_DIR/X.$2 >/dev/null || CHECK_X=X
	if [ "$CHECK_A" != "" -o "$CHECK_B" != "" -o "$CHECK_LU" != "" -o "$CHECK_X" != "" ]
	then 
		echo ERROR !!  $CHECK_A - $CHECK_B - $CHECK_LU - $CHECK_X
	else
		echo OK
	fi
}

for size in $SIZES
do
	for bloq in $BLOQS
	do
		for procs in $PROCS
		do
			doTest $procs $size $bloq
		done
	done
done

rm -f *.dtxt
