====== 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 : 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() 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**