Salome HOME
Merge remote branch 'origin/V7_dev' into V8_0_0_BR
[modules/smesh.git] / src / Tools / Verima / Stats / ref.py
1 import os
2 import subprocess
3 import time
4
5 class Ref:
6   def __init__(self,maBase,idMaillage,idVersion,machine):    
7       self.maBase=maBase
8       self.idMaillage=idMaillage
9       self.idVersion=idVersion
10       self.machine=machine
11       self.idVersionRef=self.maBase.maTableVersions.getVersionRef()
12
13       self.existe=True
14       if self.maBase.maTablePerfs.getVal(self.idMaillage,self.idVersionRef,self.machine) == None:
15          self.existe=False
16
17
18
19   def verifieCpu(self,NbSec):
20       cpuAvant=self.maBase.maTablePerfs.getVal(self.idMaillage,self.idVersionRef,self.machine)
21       seuil=self.maBase.maTableMaillages.getVal(self.idMaillage,"seuilCPU")
22       seuilHaut=cpuAvant*(100+seuil)/100.
23       if NbSec > seuilHaut  :
24          print "Probleme consommation CPU : "
25          print "         cpu reference : ", cpuAvant
26          print "         seuil         : ", seuil
27          print "         CPU           : ", NbSec
28          return True
29       return False
30       
31   def verifieTailles(self,listeValeurs):
32       i=0
33       seuil=self.maBase.maTableMaillages.getVal(self.idMaillage,"seuilTaille")
34       for nomColonne in ('TailleMax','TailleMin','Quartile1','Mediane','Quartile3','Moyenne'):
35           valTrouvee=float(listeValeurs[i])
36           valAvant=float(self.maBase.maTableTailles.getVal(self.idMaillage,self.idVersionRef,self.machine,nomColonne))
37           seuilHaut=valAvant*(100+seuil)/100.
38           seuilBas=valAvant*(100-seuil)/100.
39           if (valTrouvee < seuilBas) or (valTrouvee > seuilHaut) :
40              print "Probleme sur le nombre de Mailles de type : ", nomColonne
41              print "         nb reference : ", valAvant
42              print "         seuil        : ", seuil
43              print "         nb           : ", valTrouvee
44              return True
45           i=i+1
46       return False
47
48   def verifieRatios(self,listeValeurs):
49       i=0
50       seuil=self.maBase.maTableMaillages.getVal(self.idMaillage,"seuilRatio")
51       for nomColonne in ('TailleMax','TailleMin','Quartile1','Mediane','Quartile3','Moyenne'):
52           valTrouvee=float(listeValeurs[i])
53           valAvant=float(self.maBase.maTableRatios.getVal(self.idMaillage,self.idVersionRef,self.machine,nomColonne))
54           seuilHaut=valAvant*(100+seuil)/100.
55           seuilBas=valAvant*(100-seuil)/100.
56           if (valTrouvee < seuilBas) or (valTrouvee > seuilHaut) :
57              print "Probleme sur le nombre de Mailles de type : ", nomColonne
58              print "         nb reference : ", valAvant
59              print "         seuil        : ", seuil
60              print "         nb           : ", valTrouvee
61              return True
62           i=i+1
63       return False
64
65       
66
67   def verifieMailles(self,listeValeurs,listeEntity):
68       seuil=self.maBase.maTableMaillages.getVal(self.idMaillage,"seuilNbMaille")
69       i=0
70       for nomColonne in listeEntity :
71           valTrouvee=int(listeValeurs[i])
72           i=i+1
73           valAvant=self.maBase.maTableMailles.getVal(self.idMaillage,self.idVersionRef,self.machine,nomColonne)
74           #print nomColonne, " ",valTrouvee, " ",valAvant 
75           seuilHaut=valAvant*(100+seuil)/100.
76           seuilBas=valAvant*(100-seuil)/100.
77           if (valTrouvee < seuilBas) or (valTrouvee > seuilHaut) :
78              print "Probleme sur le nombre de Mailles de type : ", nomColonne
79              print "         nb reference : ", valAvant
80              print "         seuil        : ", seuil
81              print "         nb           : ", valTrouvee
82              return True
83       return False
84
85   def verifieMaillesPourGroupes(self,nomGroupe,listeValeurs,listeEntity):
86       seuil=self.maBase.maTableMaillages.getVal(self.idMaillage,"seuilNbMaille")
87       i=0
88       #print nomGroupe,self.idMaillage,self.idVersion,self.machine
89       for nomColonne in listeEntity:
90           valTrouvee=int(listeValeurs[i])
91           i=i+1
92           valAvant=self.maBase.maTableGroupes.getVal(nomGroupe,self.idMaillage,self.idVersionRef,self.machine,nomColonne)
93           #print nomColonne, " ",valTrouvee, " ",valAvant 
94           seuilHaut=valAvant*(100+seuil)/100
95           seuilBas=valAvant*(100-seuil)/100
96           if (valTrouvee < seuilBas) or (valTrouvee > seuilHaut) :
97              print "Probleme sur le nombre de Mailles de type : ", nomColonne, "pour le groupe ", nomGroupe
98              print "         nb reference : ", valAvant
99              print "         seuil        : ", seuil
100              print "         nb           : ", valTrouvee
101              return True
102       return False
103