2
0
Fork 0
Verif_Herezh/Batterie/FONCTION_UNIQUE/UTILITAIRES/Test_R_fusion-elements-supperposes/fusion_elements_supperposes.verif1

237 lines
10 KiB
Perl
Executable file

#!/usr/bin/env perl
use strict;
use warnings;
###############################################################################################
# Script pour une comparaison entre deux fichiers de même extension #
# Auteur: Erwan KERGOURLAY #
# Script qui compare un fichier de références avec le fichier résultat sortit par Herezh #
###############################################################################################
my $version = "1.";
#------------------- écriture de l'entete à l'écran -----------------#
print ("\n");
print ("\n" . '#############################################################################');
print ("\n" . '# #');
print ("\n" . '# comparaison.pl #');
print ("\n" . '#############################################################################');
print ("\n" . '# licence GPL, erwan.kergourlay@univ-ubs.fr #');
print ("\n" . '# #');
print ("\n" . '# version '."$version".' #');
print ("\n" . '#############################################################################');
print ("\n\n\n");
#------------------- fin écriture de l'entete à l'écran -----------------#
my $HZ=$ARGV[0];
print("La version d'herezh testée est: $HZ \n");
#------------------- déclaration des variables -----------------#
my $valeur;
#**Déclaration des variables qui contiennent les fichiers de références**#
#------------------------------------------------------------------------#
my $fichier_her_ref = "cube_soude_nevez.her.ref1";
my $fichier_lis_ref = "cube_soude_nevez.lis.ref1";
#------------------------------------------------------------------------#
#**Déclaration des variables qui contiennent les fichiers résultats sortis par Herezh**#
#------------------------------------------------------------------------#
#**Avec vérification que le fichier existe, sinon une erreure est générée et la comparaison ne peut pas être faites**#
#**Utilisation de l'opérateur de comparaison de chaînes de caractère**#
#------------------------------------------------------------------------#
my $fichier_her_test = "cube_soude_nevez.her";
my $fichier_lis_test = "cube_soude_nevez.lis";
if( -e "$fichier_her_test" && -e "$fichier_lis_test") #commande -e permet de voir si le fichier existe
{
#print("Les fichiers .her et .lis ont été créés lors du test de la version d'Herezh \n");
$valeur=0;
}
else
{
#print("Les fichiers .her et .lis n'ont pas été créés lors du test de la version d'Herezh \n");
$valeur=1;
}
#**Déclaration des fichiers temporaires*#
#------------------------------------------------------------------------#
my $fichier_temp_her_ref = "fichier_temp_her_ref.txt";
my $fichier_temp_her_test = "fichier_temp_her_test.txt";
my $fichier_temp_lis_ref = "fichier_temp_lis_ref.txt";
my $fichier_temp_lis_test = "fichier_temp_lis_test.txt";
#------------------- fin déclaration des variables -----------------#
#------------------- programme de comparaison -----------------#
if($valeur==0)
{
#---On commence par faire une lecture du fichier .her de référence et le fichier .her de test---#
#---On extrait de ces fichiers uniquement les parties données puis on va les comparer entre-elles par rapport à des fichiers temporaires---#
open (HER_REF, "$fichier_her_ref");
open (HER_TEST, "$fichier_her_test");
open (FICHIER_TEMP_HER_REF,">$fichier_temp_her_ref");
open (FICHIER_TEMP_HER_TEST,">$fichier_temp_her_test");
while(<HER_REF>)
{
my $ligne_ref = $_; #on déclare une variable qui va sauvegarder la ligne en cours
chomp($ligne_ref); #on retire à la fin de cette ligne, le retour à la ligne
$ligne_ref=~ s/^[ \t]+//mg; #on supprimme toutes les combinaisons de tabulation et d'espace
#Si on n'a pas de '#' et 'noeuds' et 'elements', la condition est validée
if(index($ligne_ref,'#') == -1 && index($ligne_ref,'noeuds') == -1 && index($ligne_ref,'elements') == -1)
{
my @tab_ref = split (/\s+/,$ligne_ref);
if(defined($tab_ref[0]))
{
print FICHIER_TEMP_HER_REF ("@tab_ref \n");
}
}
}
close FICHIER_TEMP_HER_REF;
close HER_REF;
while(<HER_TEST>)
{
my $ligne_test = $_;
chomp($ligne_test);
$ligne_test=~ s/^[ \t]+//mg;
if(index($ligne_test,'#') == -1 && index($ligne_test,'noeuds') == -1 && index($ligne_test,'elements') == -1)
{
my @tab_test = split (/\s+/,$ligne_test);
if(defined($tab_test[0]))
{
print FICHIER_TEMP_HER_TEST ("@tab_test \n");
}
}
}
close FICHIER_TEMP_HER_TEST;
close HER_TEST;
#---On commence par faire une lecture du fichier .lis de référence et le fichier .lis de test---#
#---On extrait de ces fichiers uniquement les parties données puis on va les comparer entre-elles par rapport à des fichiers temporaires---#
open (LIS_REF, "$fichier_lis_ref");
open (LIS_TEST, "$fichier_lis_test");
open (FICHIER_TEMP_LIS_REF,">$fichier_temp_lis_ref");
open (FICHIER_TEMP_LIS_TEST,">$fichier_temp_lis_test");
while(<LIS_REF>)
{
my $ligne_ref = $_; #on déclare une variable qui va sauvegarder la ligne en cours
chomp($ligne_ref); #on retire à la fin de cette ligne, le retour à la ligne
$ligne_ref=~ s/^[ \t]+//mg; #on supprimme toutes les combinaisons de tabulation et d'espace
#Si on n'a pas de '#' et 'noeuds' et 'elements', la condition est validée
if(index($ligne_ref,'#') == -1)
{
my @tab_ref = split (/\s+/,$ligne_ref);
if(defined($tab_ref[0]))
{
print FICHIER_TEMP_LIS_REF ("@tab_ref \n");
}
}
}
close FICHIER_TEMP_LIS_REF;
close LIS_REF;
while(<LIS_TEST>)
{
my $ligne_test = $_;
chomp($ligne_test);
$ligne_test=~ s/^[ \t]+//mg;
if(index($ligne_test,'#') == -1)
{
my @tab_test = split (/\s+/,$ligne_test);
if(defined($tab_test[0]))
{
print FICHIER_TEMP_LIS_TEST ("@tab_test \n");
}
}
}
close FICHIER_TEMP_LIS_TEST;
close LIS_TEST;
#---On verifie si les deux fichiers .her sont identiques---#
system ("cmp $fichier_temp_her_test $fichier_temp_her_ref");
if ( $? == 0 )
{
print("Les deux fichiers .her sont identiques\n");
$valeur=$valeur+2; #on ajoute 2 dans le cas où le fichier .her est correct
}
elsif ( $? != 0 )
{
print("Les deux fichiers .her sont différents\n");
$valeur=$valeur+1; #on ajoute 1 dans le cas où le fichier .her est incorrect
}
#---On verifie si les deux fichiers .lis sont identiques---#
system ("cmp $fichier_temp_lis_test $fichier_temp_lis_ref");
if ( $? == 0 )
{
print("Les deux fichiers .lis sont identiques\n");
$valeur=$valeur+3; #on ajoute 3 dans le cas où le fichier .lis est correct
}
elsif ( $? != 0 )
{
print("Les deux fichiers .lis sont différents\n");
$valeur=$valeur+1; #on ajoute 1 dans le cas où le fichier .lis est incorrect
}
}
#------------------- Fin programme de comparaison -----------------#
#------------------- Bilan comparaison fichier -----------------#
#----Remarques----#
# Si valeur=1, alors les nouveaux fichiers .her et .lis n'ont pas été créés.
# Si valeur=2, alors le fichier .her et le fichier .lis sont incorrects.
# Si valeur=3, alors le fichier .her est correct mais le fichier .lis est incorrect.
# Si valeur=4, alors le fichier .her est incorrect mais le fichier .lis est correct.
# Si valeur=5, alors les deux fichiers sont corrects
#----Fin remarques----#
if($valeur==1)
{
print("Les fichiers $fichier_her_test et $fichier_lis_test n'ont pas été créés avec la version d'herezh testée: $HZ\n");
print ("resultat verification: ECHEC\n");
}
elsif($valeur==2)
{
print("Le fichier $fichier_her_test a bien été créé mais son contenu est différent du fichier $fichier_her_ref et le fichier $fichier_lis_test a bien été créé mais son contenu est différent du fichier $fichier_lis_ref\n");
print ("resultat verification: ECHEC\n");
}
elsif($valeur==3)
{
print("Le fichier $fichier_her_test a bien été créé et son contenu est similaire au fichier $fichier_her_ref mais le fichier $fichier_lis_test a bien été créé mais son contenu est différent du fichier $fichier_lis_ref\n");
print ("resultat verification: ECHEC\n");
}
elsif($valeur==4)
{
print("Le fichier $fichier_her_test a bien été créé mais son contenu est différent du fichier $fichier_her_ref et le fichier $fichier_lis_test a bien été créé et son contenu est similaire au fichier $fichier_lis_ref\n");
print ("resultat verification: ECHEC\n");
}
elsif($valeur==5)
{
print("Le fichier $fichier_her_test a bien été créé et son contenu est similaire au fichier $fichier_her_ref et le fichier $fichier_lis_test a bien été créé et son contenu est similaire au fichier $fichier_lis_ref\n");
print ("resultat verification: OK\n");
}
#------------------- Fin bilan comparaison fichier -----------------#
#------------------- Ménage dans le répertoire -----------------#
system ("rm -f $fichier_her_test $fichier_lis_test $fichier_temp_her_test $fichier_temp_her_ref $fichier_temp_lis_test $fichier_temp_lis_ref");