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