Salome HOME
Merge branch 'nouvelEficas' of http://git.forge-pleiade.der.edf.fr/git/eficas into...
[tools/eficas.git] / Tests / testelem7 / testaz76.py
1 # coding=utf-8
2
3 import os
4 import unittest
5 import difflib
6 import compare
7
8 import prefs
9 from InterfaceTK import appli
10
11 def add_param(j,pos,nom,valeur):
12     co=j.addentite("PARAMETRE",pos)
13     co.set_nom(nom)
14     co.set_valeur(valeur)
15     return co
16
17 def add_mcsimp(obj,nom,valeur):
18     mcs=obj.get_child(nom,restreint='oui')
19     if mcs is None:
20        pos=obj.get_index_child(nom)
21        mcs=obj.addentite(nom,pos)
22     mcs.set_valeur(mcs.eval_val(valeur))
23     return mcs
24
25 def cdiff(text1,text2):
26     return " ".join(difflib.context_diff(text1.splitlines(1),text2.splitlines(1)))
27
28 class TestCase(unittest.TestCase):
29    def setUp(self):
30       pass
31
32    def tearDown(self):
33       CONTEXT.unset_current_step()
34
35    def test000(self):
36       """ Test de construction du fichier de commandes az.comm de zero"""
37
38       app=appli.STANDALONE(version='v7')
39       j=app.newJDC()
40 # commande DEBUT
41       co=j.addentite("DEBUT",0)
42 # commande FIN
43       co=j.addentite("FIN",1)
44 # parametres
45       pos=0
46       pos=pos+1
47       co=add_param(j,pos,"P1","9.8")
48       pos=pos+1
49       co=add_param(j,pos,"P2","8.8")
50       pos=pos+1
51       co=add_param(j,pos,"P3","7")
52       pos=pos+1
53       co=add_param(j,pos,"P5","P3*P1")
54       pos=pos+1
55       co=add_param(j,pos,"P6","P1-3")
56       pos=pos+1
57       co=add_param(j,pos,"P4","[2,3,4]")
58 # commentaire
59       pos=pos+1
60       co=j.addentite("COMMENTAIRE",pos)
61       co.set_valeur("Pas trouve   shellpanel")
62 # commande LIRE_MAILLAGE
63       pos=pos+1
64       co=j.addentite("LIRE_MAILLAGE",pos)
65       test,mess=co.nomme_sd("MAILLA2")
66       mcs=co.addentite("UNITE")
67       valeur=mcs.eval_val("P4[1]")
68       test=mcs.set_valeur(valeur)
69 # formule
70       pos=pos+1
71       co=j.addentite("FORMULE",pos)
72       co.update_formule_python(("aaa","REEL","a+z","(a,z)"))
73 # commande LIRE_MAILLAGE
74       pos=pos+1
75       ma=co=j.addentite("LIRE_MAILLAGE",pos)
76       test,mess=co.nomme_sd("MAIL")
77       mcs=co.addentite("UNITE")
78       valeur,validite=mcs.eval_valeur("P3")
79       test=mcs.set_valeur(valeur)
80 #
81       pos=pos+1
82       co=j.addentite("COMMENTAIRE",pos)
83       co.set_valeur(" 'LIRE_MAILLAGE', 'UNITE'            --> uniquebasepanel")
84 # formule
85       pos=pos+1
86       co=j.addentite("FORMULE",pos)
87       co.update_formule_python(("az","REEL","aaaaa","(ae,inst)"))
88 # commande AFFE_MODELE
89       pos=pos+1
90       co=j.addentite("AFFE_MODELE",pos)
91       mcs=co.get_child("MAILLAGE")
92       valeur,validite=mcs.eval_valeur("MAIL")
93       assert valeur == ma.sd
94       test=mcs.set_valeur(valeur)
95       assert valeur == co["MAILLAGE"]
96       mcf=co.addentite("AFFE")
97       mcs=mcf[0].get_child("PHENOMENE")
98       valeur=mcs.eval_val_item('MECANIQUE')
99       assert valeur=='MECANIQUE',str(valeur)
100       test=mcs.set_valeur(valeur)
101       assert mcf["PHENOMENE"] == 'MECANIQUE'
102       mcs=mcf[0].get_child("b_mecanique").get_child("MODELISATION")
103       mcs.set_valeur(mcs.eval_val_item('DIS_T'))
104       assert mcf["MODELISATION"] == 'DIS_T'
105       mcs=add_mcsimp(mcf[0],"GROUP_MA",('RESSORT','eee',))
106
107       mcf=co.addentite("AFFE")
108       mcs=mcf[1].get_child("PHENOMENE")
109       mcs.set_valeur(mcs.eval_val_item('MECANIQUE'))
110       mcs=mcf[1].get_child("b_mecanique").get_child("MODELISATION")
111       mcs.set_valeur(mcs.eval_val_item('DIS_T'))
112       mcs=add_mcsimp(mcf[1],"GROUP_MA",'MASSES')
113
114       mcf=co.addentite("AFFE")
115       mcs=mcf[2].get_child("PHENOMENE")
116       mcs.set_valeur(mcs.eval_val_item('ACOUSTIQUE'))
117       mcs=mcf[2].get_child("b_acoustique").get_child("MODELISATION")
118       mcs.set_valeur(mcs.eval_val_item('PLAN'))
119       #mcs=add_mcsimp(mcf[2],"GROUP_NO",'GNP3,GNP5,GNP6,GNP7,GNP8,GNP9,GNP10,GNP11,GNP12')
120       mcs=add_mcsimp(mcf[2],"GROUP_NO","'GNP3','GNP5','GNP6','GNP7','GNP8','GNP9','GNP10','GNP11','GNP12'")
121
122       co.nomme_sd("AFFE1")
123 # commande AFFE_MODELE
124       pos=pos+1
125       co=j.addentite("AFFE_MODELE",pos)
126       mcs=co.get_child("MAILLAGE")
127       mcs.set_valeur(mcs.eval_val("MAIL"))
128
129       mcf=co.addentite("AFFE")
130       mcs=mcf[0].get_child("PHENOMENE")
131       valeur=mcs.eval_val_item('MECANIQUE')
132       test=mcs.set_valeur(valeur)
133       mcs=mcf[0].get_child("b_mecanique").get_child("MODELISATION")
134       mcs.set_valeur(mcs.eval_val_item('DIS_T'))
135       mcs=add_mcsimp(mcf[0],"GROUP_MA",'RESSORT')
136
137       mcf=co.addentite("AFFE")
138       mcs=mcf[1].get_child("PHENOMENE")
139       mcs.set_valeur(mcs.eval_val_item('MECANIQUE'))
140       mcs=mcf[1].get_child("b_mecanique").get_child("MODELISATION")
141       mcs.set_valeur(mcs.eval_val_item('DIS_T'))
142       mcs=add_mcsimp(mcf[1],"GROUP_MA",'MASSES')
143
144       mcf=co.addentite("AFFE")
145       mcs=mcf[2].get_child("PHENOMENE")
146       mcs.set_valeur(mcs.eval_val_item('THERMIQUE'))
147       mcs=mcf[2].get_child("b_thermique").get_child("MODELISATION")
148       mcs.set_valeur(mcs.eval_val_item('COQUE'))
149       mcs=add_mcsimp(mcf[2],"TOUT",'OUI')
150
151       co.nomme_sd("MOD")
152 #CARA=AFFE_CARA_ELEM(MODELE=MOD,
153 #                    POUTRE=_F(GROUP_MA='MA',
154 #                              SECTION='CERCLE',
155 #                              CARA='R',
156 #                              VALE=(3.0,P6,),),);
157       pos=pos+1
158       co=j.addentite("AFFE_CARA_ELEM",pos)
159       mcs=co.get_child("MODELE")
160       mcs.set_valeur(mcs.eval_val("MOD"))
161       mcf=co.addentite("POUTRE")
162       mcs=mcf[0].get_child("SECTION")
163       mcs.set_valeur(mcs.eval_val('CERCLE'))
164       assert mcf[0]["SECTION"] == 'CERCLE'
165       mcs=add_mcsimp(mcf[0],"GROUP_MA",'MA')
166       mcs=mcf[0].get_child("b_cercle").get_child("b_constant").get_child("CARA")
167       mcs.set_valeur(mcs.eval_val('R'))
168       mcs=mcf[0].get_child("b_cercle").get_child("b_constant").get_child("VALE")
169       mcs.set_valeur(mcs.eval_val('3.0,P6'))
170       co.nomme_sd("CARA")
171 # commentaire
172       pos=pos+1
173       co=j.addentite("COMMENTAIRE",pos)
174       text=""" 'AFFE_MODELE', 'MAILLAGE'           --> uniqueassdpanel
175   AFFE_MODELE', 'AFFE', 'GROUP_MA'   --> plusieursbasepanel 
176  'AFFE_MODELE', 'AFFE', 'PHENOMENE'  --> uniqueintopanel
177  'AFFE_MODELE', 'AFFE', 'b_mecanique'--> plusieursintopanel"""
178       co.set_valeur(text)
179 #F1=DEFI_FONCTION(NOM_PARA='DX',
180 #                 VALE=(5.0,3.0,P4[1],P3,),);
181       pos=pos+1
182       co=j.addentite("DEFI_FONCTION",pos)
183       mcs=co.get_child("NOM_PARA")
184       mcs.set_valeur(mcs.eval_val("DX"))
185       mcs=co.addentite("VALE")
186       mcs.set_valeur(mcs.eval_val("5.0,3.0,P4[1],P3"))
187       co.nomme_sd("F1")
188 #F3=DEFI_FONCTION(NOM_PARA='DRX',
189 #                 VALE_C=(5.0,7.0,9.0,9.0,8.0,7.0,),);
190       pos=pos+1
191       co=j.addentite("DEFI_FONCTION",pos)
192       mcs=co.get_child("NOM_PARA")
193       mcs.set_valeur(mcs.eval_val("DRX"))
194       mcs=co.addentite("VALE_C")
195       mcs.set_valeur(mcs.eval_val("5.0,7.0,9.0,9.0,8.0,7.0"))
196       co.nomme_sd("F3")
197 # commentaire
198       pos=pos+1
199       co=j.addentite("COMMENTAIRE",pos)
200       co.set_valeur(" 'DEFI_FONCTION', 'VALE'             --> fonctionpanel  ")
201 #MATER2=DEFI_MATERIAU(ELAS=_F(E=100000000000.0,
202 #                             NU=0.0,),
203 #                     ECRO_ASYM_LINE=_F(DC_SIGM_EPSI=0.0,
204 #                                       SY_C=200000000.0,
205 #                                       DT_SIGM_EPSI=0.0,
206 #                                       SY_T=50000000.0,),);
207       pos=pos+1
208       co=j.addentite("DEFI_MATERIAU",pos)
209       mcf=co.addentite("ELAS")
210       mcs=mcf[0].get_child("E")
211       mcs.set_valeur(mcs.eval_val("100000000000.0"))
212       mcs=mcf[0].get_child("NU")
213       mcs.set_valeur(mcs.eval_val("0.0"))
214       mcf=co.addentite("ECRO_ASYM_LINE")
215       mcs=mcf[0].get_child("DC_SIGM_EPSI")
216       mcs.set_valeur(mcs.eval_val("0.0"))
217       mcs=mcf[0].get_child("DT_SIGM_EPSI")
218       mcs.set_valeur(mcs.eval_val("0.0"))
219       mcs=mcf[0].get_child("SY_C")
220       mcs.set_valeur(mcs.eval_val("200000000.0"))
221       mcs=mcf[0].get_child("SY_T")
222       mcs.set_valeur(mcs.eval_val("50000000.0"))
223       co.nomme_sd("MATER2")
224 #PS1=DEFI_PARA_SENSI(VALE=1.0,);
225 #PS2=DEFI_PARA_SENSI(VALE=1.0,);
226 #PS3=DEFI_PARA_SENSI(VALE=1.0,);
227       pos=pos+1
228       co=j.addentite("DEFI_PARA_SENSI",pos)
229       mcs=co.get_child("VALE")
230       mcs.set_valeur(mcs.eval_val("1.0"))
231       co.nomme_sd("PS1")
232       pos=pos+1
233       co=j.addentite("DEFI_PARA_SENSI",pos)
234       mcs=co.get_child("VALE")
235       mcs.set_valeur(mcs.eval_val("1.0"))
236       co.nomme_sd("PS2")
237       pos=pos+1
238       co=j.addentite("DEFI_PARA_SENSI",pos)
239       mcs=co.get_child("VALE")
240       mcs.set_valeur(mcs.eval_val("1.0"))
241       co.nomme_sd("PS3")
242 #CHMAT2=AFFE_MATERIAU(MAILLAGE=MAIL,
243 #                     AFFE=_F(TOUT='OUI',
244 #                             MATER=MATER2,),);
245       pos=pos+1
246       co=j.addentite("AFFE_MATERIAU",pos)
247       add_mcsimp(co,"MAILLAGE","MAIL")
248       mcf=co.get_child("AFFE")
249       add_mcsimp(mcf[0],"TOUT","OUI")
250       add_mcsimp(mcf[0],"MATER","MATER2")
251       co.nomme_sd("CHMAT2")
252 #AAAZ=AFFE_CHAR_THER(MODELE=AFFE1,
253 #                    TEMP_IMPO=_F(TOUT='OUI',
254 #                                 TEMP=0.0,),);
255       pos=pos+1
256       co=j.addentite("AFFE_CHAR_THER",pos)
257       add_mcsimp(co,"MODELE","AFFE1")
258       mcf=co.addentite("TEMP_IMPO")
259       add_mcsimp(mcf[0],"TOUT","OUI")
260       add_mcsimp(mcf[0],"TEMP","0.0")
261       co.nomme_sd("AAAZ")
262 #TH1=THER_LINEAIRE(MODELE=AFFE1,
263 #                  CHAM_MATER=CHMAT2,
264 #                  EXCIT=_F(CHARGE=AAAZ,),
265 #                  SENSIBILITE=(PS1,PS2,),);
266       pos=pos+1
267       co=j.addentite("THER_LINEAIRE",pos)
268       add_mcsimp(co,"MODELE","AFFE1")
269       add_mcsimp(co,"CHAM_MATER","CHMAT2")
270       mcf=co.get_child("EXCIT")
271       add_mcsimp(mcf[0],"CHARGE","AAAZ")
272       add_mcsimp(co,"SENSIBILITE","PS1,PS2")
273       co.nomme_sd("TH1")
274 # commentaire
275       pos=pos+1
276       co=j.addentite("COMMENTAIRE",pos)
277       co.set_valeur(" 'THER_LINEAIRE', 'SENSIBILITE'       --> plusieursassdpanel")
278 #ACA1=AFFE_CHAR_ACOU(MODELE=AFFE1,
279 #                    PRES_IMPO=_F(TOUT='OUI',
280 #                                 PRES=('RI',3.0,3.0,),),);
281       pos=pos+1
282       co=j.addentite("AFFE_CHAR_ACOU",pos)
283       add_mcsimp(co,"MODELE","AFFE1")
284       mcf=co.addentite("PRES_IMPO")
285       add_mcsimp(mcf[0],"TOUT","OUI")
286       add_mcsimp(mcf[0],"PRES","'RI',3.0,3.0")
287       co.nomme_sd("ACA1")
288 # commentaire
289       pos=pos+1
290       co=j.addentite("COMMENTAIRE",pos)
291       co.set_valeur(" 'AFFE_CHAR_ACOU', 'PRES_IMPO', 'PRES' --> uniquecomppanel")
292
293 # 'AFFE_CHAR_ACOU', 'PRES_IMPO', 'PRES' --> uniquecomppanel
294
295 #MACRO_MATR_ASSE(MODELE=AFFE1,
296 #                NUME_DDL=CO('DDL1'),
297 #                MATR_ASSE=_F(MATRICE=CO('MAT1'),
298 #                             OPTION='RIGI_THER',),);
299       pos=pos+1
300       co=j.addentite("MACRO_MATR_ASSE",pos)
301       add_mcsimp(co,"MODELE","AFFE1")
302       mcs=co.get_child("NUME_DDL")
303       mcs.set_valeur_co('DDL1')
304       mcf=co.get_child("MATR_ASSE")
305       add_mcsimp(mcf[0],"OPTION","RIGI_THER")
306       mcs=mcf[0].get_child("MATRICE")
307       mcs.set_valeur_co('MAT1')
308 # commentaire
309       pos=pos+1
310       co=j.addentite("COMMENTAIRE",pos)
311       co.set_valeur(" 'MACRO_MATR_ASSE', 'MATR_ASSE', 'MATRICE'  --> uniquesdcopanel")
312
313       assert j.isvalid(),j.report()
314
315       text1=app.get_text_JDC(j,'python')
316       file=os.path.join(prefs.INSTALLDIR,"Tests/testelem/az.comm")
317       f=open(file)
318       text2=f.read()
319       f.close()
320       assert text1 == text2 , cdiff(text1,text2)
321
322    def test001(self):
323       """ Test de construction d'un fichier de commandes avec DEFI_LIST_REEL, fonction et parametre de zero"""
324
325       app=appli.STANDALONE(version='v7')
326       j=app.newJDC()
327 # commande DEBUT
328       co=j.addentite("DEBUT",0)
329 # commande FIN
330       co=j.addentite("FIN",1)
331 #parametre
332       pos=0
333       pos=pos+1
334       co=add_param(j,pos,"P1","9.8")
335       pos=pos+1
336       co=add_param(j,pos,"P2","sin(P1)")
337 # formule
338       pos=pos+1
339       co=j.addentite("FORMULE",pos)
340       co.update_formule_python(("aaa","REEL","a+z","(a,z)"))
341 #parametre de formule
342       pos=pos+1
343       co=add_param(j,pos,"P3","aaa(P1,2.)")
344 #commande defi_list_reel
345       pos=pos+1
346       co=j.addentite("DEFI_LIST_REEL",pos)
347       add_mcsimp(co,"VALE","1.,2.,3.")
348       co.nomme_sd("LI1")
349 #commande defi_list_reel
350       pos=pos+1
351       co=j.addentite("DEFI_LIST_REEL",pos)
352       add_mcsimp(co,"VALE","sin(1.)")
353       co.nomme_sd("LI2")
354 #commande defi_list_reel
355       pos=pos+1
356       co=j.addentite("DEFI_LIST_REEL",pos)
357       add_mcsimp(co,"VALE","aaa(1.,2.)")
358       co.nomme_sd("LI3")
359 #commande defi_list_reel
360       pos=pos+1
361       co=j.addentite("DEFI_LIST_REEL",pos)
362       add_mcsimp(co,"VALE","sin(1.,2)")
363       co.nomme_sd("LI4")
364 #commande defi_list_reel
365       pos=pos+1
366       co=j.addentite("DEFI_LIST_REEL",pos)
367       add_mcsimp(co,"VALE","aaa(1.)")
368       co.nomme_sd("LI5")
369 #commande defi_list_reel
370       pos=pos+1
371       co=j.addentite("DEFI_LIST_REEL",pos)
372       add_mcsimp(co,"VALE","1,sin(1.),2")
373       co.nomme_sd("LI6")
374
375       expected="""DEBUT CR validation : SansNom
376    Etape : DEFI_LIST_REEL    ligne : ...
377       !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
378       ! Concept retourné non défini !
379       !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
380       Mot-clé simple : VALE
381          !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
382          ! 'sin(1.,2)' (de type <type 'str'>) n'est pas d'un type autorisé: ('R',) !
383          !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
384       Fin Mot-clé simple : VALE
385    Fin Etape : DEFI_LIST_REEL
386    Etape : DEFI_LIST_REEL    ligne : ...
387       !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
388       ! Concept retourné non défini !
389       !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
390       Mot-clé simple : VALE
391          !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
392          ! 'aaa(1.)' (de type <type 'str'>) n'est pas d'un type autorisé: ('R',) !
393          !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
394       Fin Mot-clé simple : VALE
395    Fin Etape : DEFI_LIST_REEL
396 FIN CR validation :SansNom
397 """
398       msg=str( j.report())
399       assert compare.check(expected,msg),cdiff(expected,msg)