#!/bin/bash

#
# les fichiers de test (ex. <machin.truc>) doivent être placés
# dans $SRCDIR. 
#
# La liste espacée des configurations de test est $NATCONF
# (ex. "defaut.cfg linux.cfg")
#
# Les fichiers brailles de réference correspondant aux fichiers
# de test et à une configuration de test sont placés dans $REFDIR.
# ils doivent avoir la forme suivante : 
# fichier_d_entree.nom_config.braille
# (ex <machin.truc.defaut.cfg.braille> 
#
# Lorsqu'à l'execution, une différence est détectée, elle peut être
# lue dans $RESUDIR (ex. <machin.truc.defaut.cfg.diff>)
#

# sauvegarde de la date de début
echo "---------" >> temps
date >> temps;

HERE=`pwd`
NATDIR=$HERE/..

NATCONFDIR=$HERE/conf
NATCONFS="abregeNoMep abregeDBT abrege"

SRCDIR=$HERE/srcAbr     # sources (documents odt, txt d'entree)
OUTDIR=$HERE/out     # sortie braille de NAT (a tester)
REFDIR=$HERE/ref     # sortie braille de reference
RESUDIR=$HERE/resu   # diffs resultats du test.

rm $OUTDIR/*
rm $RESUDIR/*

CNOR='\033[0m'
CERR='\033[31m'
COK='\033[32m'
CBOL='\033[1m'
CWAR='\033[33m'

STATSRC=0
STATPASOK=0
STATPASREF=0
STATPASOUT=0
#lancement des transcriptions
for source in $SRCDIR/*;
do
	src=`basename "$source"`
	sources="$source:$sources"
	debdestinations="$debdestinations $OUTDIR/$src "
done;
#je vire le dernier :
sources=`echo $sources | sed -e s/:$//g`
cd $NATDIR
for conf in $NATCONFS
do	
	echo -ne "* test de "$CBOL$conf$CNOR"... "
	destinations=""
	for dest in $debdestinations
	do
		destinations="$dest.$conf.braille:$destinations"
	done;
	#je vire le dernier :
	destinations=`echo $destinations | sed -e s/:$//g`
	# ./nat-launch-no-gui -f $source -t $destination -c $NATCONFDIR/$conf &> /dev/null 
	./nat-launch-no-gui -q -f $sources -t $destinations -c $NATCONFDIR/$conf
	#echo $sources
	#echo $destinations
done;

#comparaison avec la référence
cd $HERE
for source in $SRCDIR/*;
do
	for conf in $NATCONFS
	do
		STATSRC=$(($STATSRC+1))

		src=`basename "$source"`
		destination="$OUTDIR/$src.$conf.braille"
		reference="$REFDIR/$src.$conf.braille"
		
		echo -ne "* résultat pour "$CBOL$src$CNOR "et" $conf"... "
		
		if [ -f "$destination" ]
		then
			if [ -f "$reference" ] 
			then
				resultat="$RESUDIR/$src.$conf.diff"
				diff $destination $reference > $resultat
				if [ -s $resultat ] 
				then
					echo -e [$CERR KO $CNOR]
					STATPASOK=$(($STATPASOK+1))
				else
					echo -e [$COK OK $CNOR]
				fi
			else
				echo -e [$CERR ERR $CNOR] pas de fichier braille de reference
				STATPASREF=$(($STATPASREF+1))
			fi;
		else
			echo -e [$CWAR ERR $CNOR] nat n a rien transcrit
			STATPASOUT=$(($STATPASOUT+1))
		fi;
	done;
done;

echo suppression des fichiers vides de resu
for x in $( find resu/ -size 0  )
do
	rm -f $x
done


echo 
echo "nombre de fichiers traités                    : "$STATSRC
echo "absence de transcription braille de reference : "$STATPASREF
echo "absence de transcription par NAT              : "$STATPASOUT  
echo "difference de transcription NAT/reference     : "$STATPASOK
echo
#sauvegarde de la date de fin
date >> temps


