#!/bin/bash

EXE_NAME=./gaussSeidel_write

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

PROCS="1 4 5 9 10 13 16 25"
SIZES="10 100"
ITERATIONS="1 10 100"

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

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

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

RESULT_DIR=CorrectResults

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

	CHECK=""
	diff Result.out.dtxt $RESULT_DIR/Result.$2.$3 >/dev/null || CHECK=Result
	if [ "$CHECK" != "" ]
	then 
		echo ERROR !!  $CHECK
	else
		echo OK
	fi
}

for size in $SIZES
do
	for iter in $ITERATIONS
	do
		for procs in $PROCS
		do
			doTest $procs $size $iter
		done
	done
done

rm -f *.dtxt
