Code_Aster ®
Version
7.4

Titre :

Procédure TEST_FICHIER


Date :
12/01/05
Auteur(s) :
M. COURTOIS Clé
:
U4.92.04-A Page
: 1/6

Organisme(s) : EDF-R&D/AMA















Manuel d'Utilisation
Fascicule U4.9- : Impression des résultats et tests
Document : U4.92.04





Procédure TEST_FICHIER










1 But

Cette macro-commande permet de tester la non régression de fichiers produits par les commandes
Aster, principalement IMPR_RESU, mais on pourrait l'utiliser sur n'importe quel fichier.

L'intérêt de cette macro-commande est que l'on peut arrondir les nombres réels pour tolérer une
certaine variabilité des valeurs.

On utilise le module Python md5 qui fournit une « signature » du fichier arrondi (appelé md5sum).

Retourne OK si le fichier est identique, aux arrondis des nombres réels près, au fichier qui a servi de
référence,
NOOK sinon.

Cette commande est utilisée essentiellement par les cas tests pour valider la non-régression des
résultats.

Manuel d'Utilisation
Fascicule U4.9- : Impression des résultats et tests
HT-66/05/004/A

Code_Aster ®
Version
7.4

Titre :

Procédure TEST_FICHIER


Date :
12/01/05
Auteur(s) :
M. COURTOIS Clé
:
U4.92.04-A Page
: 2/6


2 Syntaxe

TEST_FICHIER (




UNITE
= /
unit,
[I]






/ 8,




FICHIER =
fich,
[Kn]



VALE_K
=
kval
,
[K32]



NB_CHIFFRE
=
/
nbch
,
[I]
/
6, [DEFAUT]


EPSILON
=
/
epsi
,
[R]
/
1.E-14
,

[DEFAUT]



EXPR_IGNORE
=
regexp,
[l_Kn]



REFERENCE
=
/
'ANALYTIQUE'
,

[Kn]
/
'NON_REGRESSION'
,









VERSION = vers,
/
'SOURCE_EXTERNE'
,
/
'AUTRE_ASTER'
,

INFO
=
/
1
,
[DEFAUT]
/
2
,





)
Manuel d'Utilisation
Fascicule U4.9- : Impression des résultats et tests
HT-66/05/004/A

Code_Aster ®
Version
7.4

Titre :

Procédure TEST_FICHIER


Date :
12/01/05
Auteur(s) :
M. COURTOIS Clé
:
U4.92.04-A Page
: 3/6


3 Généralités

Cette procédure permet de tester la non régression de fichiers produits par les commandes Aster,
principalement IMPR_RESU, mais on pourrait l'utiliser sur n'importe quel fichier.

L'intérêt de cette macro-commande est que l'on peut arrondir les nombres réels pour tolérer une
certaine variabilité des valeurs. On choisit :

· de conserver nbch chiffres significatifs,
· de considérer comme nulles les valeurs inférieures à epsi,
· d'ignorer certaines lignes du fichier selon des expressions régulières.

On utilise le module Python md5 qui fournit une « signature » du fichier arrondi (appelé md5sum).
De ce fait, toute autre variation par rapport à un fichier de référence telle une modification d'une texte
(titre, nom de composantes...) ou une numérotation entière (qui ne sera pas arrondie) entraînera un
changement de la signature du fichier par rapport à la valeur de référence.

Remarque 1 :

Le fichier doit être fermé pour que la valeur soit fiable (avec par exemple DEFI_FICHIER,
ACTION = 'LIBERER').


Remarque 2 :

Même si on peut utiliser la commande sur les fichiers binaires, cela n'a pas d'intérêt, car il n'y
aura pas d'arrondi possible, et donc la moindre variation sera répercutée sur le md5sum.


La méthode md5file peut être appelée hors de Code_Aster pour obtenir la valeur du md5sum d'un
fichier après arrondis :
iret, sum = md5file(fich='nom_fichier', nbch=6, epsi=1.e-14, info=2)


4 Opérandes

4.1 Opérande
UNITE

UNITE = unit

Numéro d'unité logique sur laquelle sera écrit le résultat du test (OK ou NOOK), sauf cas
particuliers, unit = 8 (fichier résultat).

4.2 Opérande
FICHIER

FICHIER = fich,

On fournit ici le nom du fichier à analyser avec son chemin d'accès en relatif par rapport au
répertoire d'exécution ou en absolu. Exemples
: 'fort.37' ou
'./REPE_OUT/resultats.pos'.

4.3 Opérande
VALE_K

VALE_K = kval

On fournit ici la valeur du md5sum obtenu sur le fichier de référence (produit lors d'une exécution
précédente), fournie sous forme d'une chaîne de 32 caractères par la méthode hexdigest ( ) du
module md5.
Manuel d'Utilisation
Fascicule U4.9- : Impression des résultats et tests
HT-66/05/004/A

Code_Aster ®
Version
7.4

Titre :

Procédure TEST_FICHIER


Date :
12/01/05
Auteur(s) :
M. COURTOIS Clé
:
U4.92.04-A Page
: 4/6


4.4 Opérande
NB_CHIFFRE

NB_CHIFFRE = nbch

Il s'agit du nombre de chiffres significatifs conservés lors de l'arrondi des nombres réels.
Plus précisément, ce nombre définit le format dans lequel seront fournis les réels au module md5.
Exemples : 1.123456789E+01 arrondi avec




nbch=6, on obtient 11.2346 (format %13.6g)




nbch=4, on obtient 11.23
(format %11.4g)

4.5 Opérande
EPSILON

EPSILON = epsi

Tous les nombres inférieurs à cette valeur sont pris comme nul.

4.6 Opérande
EXPR_IGNORE

EXPR_IGNORE = regexp

Les lignes du fichier satisfaisant les expressions régulières données derrière ce mot-clé seront
ignorées dans le calcul du md5sum.

Exemple :*

EXPR_IGNORE = ( 'DATE=[0-9]{2}/[0-9]{2}/[0-9]{4}',
'^VERSION' )

Ici les lignes contenant DATE = jj/mm/aaaa où j, m, a sont des chiffres ou commençant par
VERSION sont ignorées.

4.7
Définition de la valeur de référence


REFERENCE =

/ 'ANALYTIQUE' :
la valeur de référence fournie est "analytique"

/ 'NON_REGRESSION' :
la valeur de référence fournie a été obtenue lors d'un précédent
calcul par le Code_Aster


VERSION =
vers
vers est le numéro de la version d'Aster qui a permis d'obtenir la
valeur de référence (ex : '7.3.4')

/ 'SOURCE_EXTERNE' :
la valeur de référence fournie provient d'un programme autre
qu'Aster (ou d'une référence bibliographique)

/ 'AUTRE_ASTER' :
la valeur de référence fournie est celle obtenue par un autre
chemin Aster (autre commande, option de calcul, ...)

Manuel d'Utilisation
Fascicule U4.9- : Impression des résultats et tests
HT-66/05/004/A

Code_Aster ®
Version
7.4

Titre :

Procédure TEST_FICHIER


Date :
12/01/05
Auteur(s) :
M. COURTOIS Clé
:
U4.92.04-A Page
: 5/6


4.8 Opérande
INFO


INFO = inf

Précise le détail des informations imprimées dans le fichier message.
Si inf=1, on a le résumé suivant :

Fichier : ./REPE_OUT/post_resu.pos
Nombre de lignes : 6371
Format des reels : %13.6g
Epsilon : 1e-14
md5sum : c9a6b5c983c903473b0dc9f744f854dd
REFERENCE : c9a6b5c983c903473b0dc9f744f854dd

Si inf=2, on a pour chaque ligne les valeurs retenues pour calculer le md5sum (pour une chaîne
de caractères : la chaîne elle-même, pour un entier : l'entier lui-même, pour un réel : la valeur
arrondie), exemple :

...
LIGNE 4178 VALEUR RETENUE 0.269134
LIGNE 4179 VALEUR RETENUE 0.071175
LIGNE 4179 VALEUR RETENUE 0
LIGNE 4179 VALEUR RETENUE 0.0535577
LIGNE 4180 VALEUR RETENUE -5.7844e-05
LIGNE 4181 VALEUR RETENUE -4.28594e-05
LIGNE 4182 VALEUR RETENUE -3.61488e-05
LIGNE 4183 VALEUR RETENUE 2
LIGNE 4183 VALEUR RETENUE 2
...
LIGNE 4663 VALEUR RETENUE $EndView
...

Ceci permet de faire le 'diff' entre les valeurs retenues de deux fichiers pour voir quelles
valeurs ont été modifiées.

Manuel d'Utilisation
Fascicule U4.9- : Impression des résultats et tests
HT-66/05/004/A

Code_Aster ®
Version
7.4

Titre :

Procédure TEST_FICHIER


Date :
12/01/05
Auteur(s) :
M. COURTOIS Clé
:
U4.92.04-A Page
: 6/6



























Page laissée intentionnellement blanche.
Manuel d'Utilisation
Fascicule U4.9- : Impression des résultats et tests
HT-66/05/004/A

Document Outline