1 # -*- coding: utf-8 -*-
2 # Copyright (C) 2014-2021 EDF R&D
4 # This library is free software; you can redistribute it and/or
5 # modify it under the terms of the GNU Lesser General Public
6 # License as published by the Free Software Foundation; either
7 # version 2.1 of the License, or (at your option) any later version.
9 # This library is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 # Lesser General Public License for more details.
14 # You should have received a copy of the GNU Lesser General Public
15 # License along with this library; if not, write to the Free Software
16 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
20 """Lancement des cas-tests de blocFissure"""
27 from blocFissure.gmu import initLog
28 from blocFissure.gmu.casStandard import casStandard
30 # -----------------------------------------------------------------------------------------------
31 LOGFILE = os.path.join(tempfile.gettempdir(),"blocFissure.log")
32 #initLog.setDebug(LOGFILE) # debug = 10
33 #initLog.setVerbose(LOGFILE) # info = 20
34 #initLog.setRelease(LOGFILE) # warning = 30
35 #initLog.setPerfTests(LOGFILE) # critical = 50
36 #initLog.setAlways(LOGFILE) # critical = 50
38 # ---tous les cas en séquence, ou les cas sélectionnés ...
39 TORUNOK = [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0] # OK
40 # 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28
44 TORUN = [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
45 # 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28
49 TORUNPB.append((IAUX+1)%2)
50 print ("TORUN = {} # OK".format(TORUNOK))
51 print ("TORUN = {} # PB".format(TORUNPB))
53 TORUN = [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0] # aucun
54 TORUN = [ 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] # cubeAngle
55 TORUN = [ 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] # cubeFin
56 TORUN = [ 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] # decoupeCylindre
57 TORUN = [ 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] # disque_perce + ellipse_disque
58 TORUN = [ 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] # ellipse + fissureGauche2
59 TORUN = [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] # ellipse_probleme + fissureGauche2
60 TORUN = [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] # eprouvetteCourbe
61 TORUN = [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] # eprouvetteDroite
62 TORUN = [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] # fissureGauche
63 TORUN = [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] # fissureGauche2
64 TORUN = [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0] # vis
65 TORUN = [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1] # tube
66 # 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28
67 TORUN = [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0] # OK
68 # -----------------------------------------------------------------------------------------------
70 def caract_l_problemes ():
71 """Caractérisation des problèmes"""
76 # genereMateriel : cubeAngle
77 from blocFissure.CasTests.cubeAngle import cubeAngle
78 l_problemes.append(cubeAngle(n_cas))
81 # genereMateriel : cubeAngle
82 from blocFissure.CasTests.cubeAngle2 import cubeAngle2
83 l_problemes.append(cubeAngle2(n_cas))
86 # genereMateriel : cubeFin
87 from blocFissure.CasTests import cubeCoin
88 l_problemes.append(casStandard(cubeCoin.dicoParams, cubeCoin.referencesMaillageFissure, n_cas))
89 d_aux[n_cas] = "cubeCoin"
92 # genereMateriel : cubeFin
93 from blocFissure.CasTests import cubeMilieu
94 l_problemes.append(casStandard(cubeMilieu.dicoParams, cubeMilieu.referencesMaillageFissure, n_cas))
95 d_aux[n_cas] = "cubeMilieu"
98 # genereMateriel : cubeFin
99 from blocFissure.CasTests import cubeTransverse
100 l_problemes.append(casStandard(cubeTransverse.dicoParams, cubeTransverse.referencesMaillageFissure, n_cas))
101 d_aux[n_cas] = "cubeTransverse"
104 # genereMateriel : decoupeCylindre
105 from blocFissure.CasTests.cylindre import cylindre
106 l_problemes.append(cylindre(n_cas))
109 # genereMateriel : decoupeCylindre
110 from blocFissure.CasTests.cylindre_2 import cylindre_2
111 l_problemes.append(cylindre_2(n_cas))
114 # genereMateriel : disque_perce
115 # genereMateriel : ellipse_disque
116 from blocFissure.CasTests import disquePerce
117 l_problemes.append(casStandard(disquePerce.dicoParams, disquePerce.referencesMaillageFissure, n_cas))
118 d_aux[n_cas] = "disquePerce"
121 # genereMateriel: ellipse
122 # genereMateriel : fissureGauche2
123 from blocFissure.CasTests.ellipse_1 import ellipse_1
124 l_problemes.append(ellipse_1(n_cas))
127 # genereMateriel: ellipse_probleme
128 # genereMateriel : fissureGauche2
129 from blocFissure.CasTests.ellipse_2 import ellipse_2
130 l_problemes.append(ellipse_2(n_cas))
133 # genereMateriel : eprouvetteCourbe
134 from blocFissure.CasTests.eprouvetteCourbe import eprouvetteCourbe
135 l_problemes.append(eprouvetteCourbe(n_cas))
138 # genereMateriel : eprouvetteDroite
139 from blocFissure.CasTests.eprouvetteDroite import eprouvetteDroite
140 l_problemes.append(eprouvetteDroite(n_cas))
143 # genereMateriel : eprouvetteDroite
144 from blocFissure.CasTests.eprouvetteDroite_2 import eprouvetteDroite_2
145 l_problemes.append(eprouvetteDroite_2(n_cas))
148 # genereMateriel : fissureGauche
149 from blocFissure.CasTests.faceGauche import faceGauche
150 l_problemes.append(faceGauche(n_cas))
153 # genereMateriel : fissureGauche2
154 from blocFissure.CasTests.faceGauche_2 import faceGauche_2
155 l_problemes.append(faceGauche_2(n_cas))
158 # genereMateriel : aucun
159 from blocFissure.CasTests.fissureCoude_1 import fissureCoude_1
160 l_problemes.append(fissureCoude_1(n_cas))
163 # genereMateriel : aucun
164 from blocFissure.CasTests.fissureCoude_2 import fissureCoude_2
165 l_problemes.append(fissureCoude_2(n_cas))
168 # genereMateriel : aucun
169 from blocFissure.CasTests.fissureCoude_3 import fissureCoude_3
170 l_problemes.append(fissureCoude_3(n_cas))
173 # genereMateriel : aucun
174 from blocFissure.CasTests.fissureCoude_4 import fissureCoude_4
175 l_problemes.append(fissureCoude_4(n_cas))
178 # genereMateriel : aucun
179 from blocFissure.CasTests.fissureCoude_5 import fissureCoude_5
180 l_problemes.append(fissureCoude_5(n_cas))
183 # genereMateriel : aucun
184 from blocFissure.CasTests.fissureCoude_6 import fissureCoude_6
185 l_problemes.append(fissureCoude_6(n_cas))
188 # genereMateriel : aucun
189 from blocFissure.CasTests.fissureCoude_7 import fissureCoude_7
190 l_problemes.append(fissureCoude_7(n_cas))
193 # genereMateriel : aucun
194 from blocFissure.CasTests.fissureCoude_8 import fissureCoude_8
195 l_problemes.append(fissureCoude_8(n_cas))
198 # genereMateriel : aucun
199 from blocFissure.CasTests.fissureCoude_9 import fissureCoude_9
200 l_problemes.append(fissureCoude_9(n_cas))
203 # genereMateriel : aucun
204 from blocFissure.CasTests.fissureCoude_10 import fissureCoude_10
205 l_problemes.append(fissureCoude_10(n_cas))
208 # genereMateriel : aucun
209 from blocFissure.CasTests.fissure_Coude import fissure_Coude
210 l_problemes.append(fissure_Coude(n_cas))
213 # genereMateriel : aucun
214 from blocFissure.CasTests.fissure_Coude_4 import fissure_Coude_4
215 l_problemes.append(fissure_Coude_4(n_cas))
218 # genereMateriel : vis
219 from blocFissure.CasTests.vis_1 import vis_1
220 l_problemes.append(vis_1(n_cas))
223 # genereMateriel : tube
224 from blocFissure.CasTests.tube import tube
225 l_problemes.append(tube(n_cas))
226 #"Mesh_13" has not been computed:
227 #- "algo2d_facePeau_0" failed on "FACE_12 to mesh". Error: Algorithm failed. NgException at Surface meshing: Problem in Surface mesh generation
228 #- "algo1d_cercle1_0" failed on EDGE #20. Error: Algorithm failed. Source elements don't cover totally the geometrical edge
229 #- "algo1d_cercle1_0" failed on EDGE #17. Error: Algorithm failed. Source elements don't cover totally the geometrical edge
230 #- "algo1d_cercle1_0" failed on EDGE #15. Error: Algorithm failed. Source elements don't cover totally the geometrical edge
231 #- "algo1d_cercle1_0" failed on EDGE #12. Error: Algorithm failed. Source elements don't cover totally the geometrical edge
233 return l_problemes, d_aux
234 #=============================================================
235 def calcul_cas (n_cas, cas, d_aux, ligne):
236 """Calcul d'un cas"""
241 nom = cas.nomProbleme
242 texte_a = "\n=== Exécution du cas n° {}, '{}'".format(n_cas,nom)
243 logging.critical(ligne+texte_a)
246 ok_maillage = cas.executeProbleme()
248 traceback.print_exc()
251 texte = "Problème avec le cas n° {}, '{}'\n".format(n_cas,nom)
254 return ok_maillage, texte
255 #=============================================================
256 def calcul_tout (l_problemes, d_aux):
257 """Calcul de tous les cas"""
259 ligne = "---------------------------------------------------------------------"
263 for n_cas, cas in enumerate(l_problemes):
264 #print ("Cas n° {}, '{}'".format(n_cas,cas.nomProbleme))
266 ok_maillage, texte_a = calcul_cas (n_cas, cas, d_aux, ligne)
274 nb_cas = nb_cas_nook + nb_cas_ok
277 texte += ". Nombre de cas_tests OK : {}\n".format(nb_cas_ok)
278 texte += ". Nombre de cas_tests NOOK : {}\n".format(nb_cas_nook)
280 texte += "Les {} tests se sont bien passés.\n".format(nb_cas)
282 logging.critical(ligne+texte)
285 #=============================================================
286 #=============================================================
290 L_PROBLEMES, D_AUX = caract_l_problemes()
292 if ( len(L_PROBLEMES) != len(TORUN) ):
293 TEXTE = "\nNombre de problèmes définis : {}\n".format(len(L_PROBLEMES))
294 TEXTE += "Longueur de la liste 'TORUN' : {}\n".format(len(TORUN))
295 TEXTE += "\t==> Incohérence de programmation à corriger dans {}".format(__name__)
299 calcul_tout (L_PROBLEMES, D_AUX)