Salome HOME
Merge tag 'V8_3_0a2' into ngr/python3_dev
[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