Metafor

ULiege - Aerospace & Mechanical Engineering

User Tools

Site Tools


doc:user:results:testsuitechecker

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
doc:user:results:testsuitechecker [2013/07/12 18:47] – created jorisdoc:user:results:testsuitechecker [2018/08/29 13:57] (current) – [TestSuiteChecker] laruelle
Line 1: Line 1:
 +====== TestSuiteChecker ======
 +L'objet ''TestSuiteChecker'' de ''Metafor'' est un objet de validation de la [[doc:user:general:glossaire#batterie de tests]]. En écrivant en fin de calcul, un certain nombre de grandeurs caractéristiques du déroulement du calcul. Par défaut, les valeurs suivantes sont extraites : 
  
 +| ''[TSC_STP]'' |Nombre de pas de temps  |
 +| ''[TSC-ITE]'' |Nombre d'itérations (Mécaniques, Thermiques selon le calcul)|
 +| ''[TSC-INW]'' |Energie interne (variation d'énergie potentielle)|
 +| ''[TSC-EXW]'' |Travail des forces externes|
 +| ''[TSC-CPU]'' |Temps CPU|
 +| ''[TSC-MEM]'' |Memoire Maximum durant le calcul|
 +| ''[TSC-EXT]'' |Valeur spécifiques extraite du test|
 +
 +Les sorties ''[TSC_EXT]'' sont des valeurs spécifiques extraites du problème (mesures caractéristiques du problème). La personalisation du ''TestSuiteChecker'' au problème se fait à l'aide des fonctions suivantes : 
 +
 +| ''testSuite = metafor.getTestSuiteChecker()'' | Récupération de la référence vers le ''TestSuiteChecker'' |
 +| ''testSuite.checkExtractor(noExtr)'' | Test de la valeur finale de l'extracteur (la courbe) numéro ''noExtr'' |
 +| ''testSuite.checkExtractor(noExtr, noComp)'' | Test de la composante ''noComp'' (commençant à 0) de l'extracteur (la courbe) numéro ''noExtr'' |
 +| ''testSuite.checkExtractorV2sOp(noExtr,VectorToScalarOperator())'' | Test de la valeur scalaire obtenue après application de l'opérateur [[doc:user:results:courbes_res#vectortoscalaroperator|''VectorToScalarOperator'']]  sur l'extracteur (la courbe) numéro ''noExtr'' |
 +| ''testSuite.checkObjectiveFunction(noObj)'' | Test de la valeur de la fonction objective numéro ''noObj'' |
 +
 +
 +===== Classe PythonTestCheck =====
 +
 +Il est possible de faire appel à des fonctions matlab de post-traitement à la fin de l'exécution d'un cas test. Cela permet notamment de tester ces fonctions Matlab dans la batterie de Metafor. Pour pouvoir afficher les résultats obtenus avec le post-traitment matlab à côté des autres grandeurs [TSC-EXT] (à la fin du fichier res de Metafor), il faut créer un objet Python dans le cas test (en dehors des fonctions **getMetafor()** et **buildDomain()**) qui dérivera de PythonTestCheck . Cet objet python ira relire le fichier matlab.log généré par Matlab.
 +
 +Exemple : 
 +<code>
 +class ReadMatlabLog(PythonTestCheck):
 +    def __init__(self):
 +        PythonTestCheck.__init__(self)
 +    def __del__(self):
 +        print "ReadMatlabLog : __del__"
 +        print "callToDestructor of ReadMatlabLog not allowed. Add ReadMatlabLog.__disown__()"
 +        raw_input('')
 +        exit(1)
 +    def eval(self):
 +        inirep = os.getcwd()
 +        moutfile = os.path.abspath(os.path.join("matlab.log"))
 +        
 +        fm = open(moutfile,'r')
 +        lines = fm.readlines()
 +        for i in lines:
 +            if ('[TSC-EXT]' in i):
 +                print i
 +        fm.close()
 +</code>        
 +
 +Pour faire appel à **ReadMatlabLog** a la fin de l'exécution du calcul Metafor, il faut rajouter les commandes ci-dessous dans le jeu de données
 +
 +    testSuite = metafor.getTestSuiteChecker()
 +    testSuite.checkPythonTestCheck(ReadMatlabLog())
 +    
 +On trouvera plus d'infos à ce sujet dans le jeu de données **oo_meta.aspCrushing.tests.twoD.ecrasementProfilBetrandie**

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki