9 from Editeur import appli
11 def add_param(j,pos,nom,valeur):
12 co=j.addentite("PARAMETRE",pos)
17 def add_mcsimp(obj,nom,valeur):
18 mcs=obj.get_child(nom,restreint='oui')
20 pos=obj.get_index_child(nom)
21 mcs=obj.addentite(nom,pos)
22 mcs.set_valeur(mcs.eval_val(valeur))
25 def cdiff(text1,text2):
26 return " ".join(difflib.context_diff(text1.splitlines(1),text2.splitlines(1)))
30 class TestCase(unittest.TestCase):
35 CONTEXT.unset_current_step()
38 app=appli.STANDALONE(version=version)
42 co=j.addentite("DEBUT",0)
43 co=add_param(j,1,"P1",None)
44 x=co.valeur or "coucou"
53 """ Test d'insertion de commandes dans fichier toto.comm"""
54 app=appli.STANDALONE(version=version)
55 file=os.path.join(prefs.INSTALLDIR,"Tests/testelem/toto.comm")
56 j=app.openJDC(file=file)
57 expected="""DEBUT CR validation : toto.comm
58 FIN CR validation :toto.comm
61 assert cr == expected, cr + "!=" + expected
63 mcs=co.addentite("INFO")
65 cr=app.get_text_JDC(j,'python')
70 MA=LIRE_MAILLAGE(INFO=1,);
74 assert cr == expected, cr + "!=" + expected
75 co=j.addentite("LIRE_MAILLAGE",2)
76 test,mess=co.nomme_sd("MA2")
79 cr=app.get_text_JDC(j,'python')
84 MA=LIRE_MAILLAGE(INFO=1,);
90 assert cr == expected, cr + "!=" + expected
93 """ Test de construction du fichier de commandes az.comm de zero"""
95 app=appli.STANDALONE(version=version)
98 co=j.addentite("DEBUT",0)
100 co=j.addentite("FIN",1)
104 co=add_param(j,pos,"P1","9.8")
106 co=add_param(j,pos,"P2","8.8")
108 co=add_param(j,pos,"P3","7")
110 co=add_param(j,pos,"P5","P3*P1")
112 co=add_param(j,pos,"P6","P1-3")
114 co=add_param(j,pos,"P4","[2,3,4]")
117 co=j.addentite("COMMENTAIRE",pos)
118 co.set_valeur("Pas trouve shellpanel")
119 # commande LIRE_MAILLAGE
121 co=j.addentite("LIRE_MAILLAGE",pos)
122 test,mess=co.nomme_sd("MAILLA2")
123 mcs=co.addentite("UNITE")
124 valeur=mcs.eval_val("P4[1]")
125 test=mcs.set_valeur(valeur)
128 co=j.addentite("FORMULE",pos)
129 co.update_formule_python(("aaa","REEL","a+z","(a,z)"))
130 # commande LIRE_MAILLAGE
132 ma=co=j.addentite("LIRE_MAILLAGE",pos)
133 test,mess=co.nomme_sd("MAIL")
134 mcs=co.addentite("UNITE")
135 valeur,validite=mcs.eval_valeur("P3")
136 test=mcs.set_valeur(valeur)
139 co=j.addentite("COMMENTAIRE",pos)
140 co.set_valeur(" 'LIRE_MAILLAGE', 'UNITE' --> uniquebasepanel")
143 co=j.addentite("FORMULE",pos)
144 co.update_formule_python(("az","REEL","aaaaa","(ae,inst)"))
145 # commande AFFE_MODELE
147 co=j.addentite("AFFE_MODELE",pos)
148 mcs=co.get_child("MAILLAGE")
149 valeur,validite=mcs.eval_valeur("MAIL")
150 assert valeur == ma.sd
151 test=mcs.set_valeur(valeur)
152 assert valeur == co["MAILLAGE"]
153 mcf=co.addentite("AFFE")
154 mcs=mcf[0].get_child("PHENOMENE")
155 valeur=mcs.eval_val_item('MECANIQUE')
156 assert valeur=='MECANIQUE',str(valeur)
157 test=mcs.set_valeur(valeur)
158 assert mcf["PHENOMENE"] == 'MECANIQUE'
159 mcs=mcf[0].get_child("b_mecanique").get_child("MODELISATION")
160 mcs.set_valeur(mcs.eval_val_item('DIS_T'))
161 assert mcf["MODELISATION"] == 'DIS_T'
162 mcs=add_mcsimp(mcf[0],"GROUP_MA",('RESSORT','eee',))
164 mcf=co.addentite("AFFE")
165 mcs=mcf[1].get_child("PHENOMENE")
166 mcs.set_valeur(mcs.eval_val_item('MECANIQUE'))
167 mcs=mcf[1].get_child("b_mecanique").get_child("MODELISATION")
168 mcs.set_valeur(mcs.eval_val_item('DIS_T'))
169 mcs=add_mcsimp(mcf[1],"GROUP_MA",'MASSES')
171 mcf=co.addentite("AFFE")
172 mcs=mcf[2].get_child("PHENOMENE")
173 mcs.set_valeur(mcs.eval_val_item('ACOUSTIQUE'))
174 mcs=mcf[2].get_child("b_acoustique").get_child("MODELISATION")
175 mcs.set_valeur(mcs.eval_val_item('PLAN'))
176 #mcs=add_mcsimp(mcf[2],"GROUP_NO",'GNP3,GNP5,GNP6,GNP7,GNP8,GNP9,GNP10,GNP11,GNP12')
177 mcs=add_mcsimp(mcf[2],"GROUP_NO","'GNP3','GNP5','GNP6','GNP7','GNP8','GNP9','GNP10','GNP11','GNP12'")
180 # commande AFFE_MODELE
182 co=j.addentite("AFFE_MODELE",pos)
183 mcs=co.get_child("MAILLAGE")
184 mcs.set_valeur(mcs.eval_val("MAIL"))
186 mcf=co.addentite("AFFE")
187 mcs=mcf[0].get_child("PHENOMENE")
188 valeur=mcs.eval_val_item('MECANIQUE')
189 test=mcs.set_valeur(valeur)
190 mcs=mcf[0].get_child("b_mecanique").get_child("MODELISATION")
191 mcs.set_valeur(mcs.eval_val_item('DIS_T'))
192 mcs=add_mcsimp(mcf[0],"GROUP_MA",'RESSORT')
194 mcf=co.addentite("AFFE")
195 mcs=mcf[1].get_child("PHENOMENE")
196 mcs.set_valeur(mcs.eval_val_item('MECANIQUE'))
197 mcs=mcf[1].get_child("b_mecanique").get_child("MODELISATION")
198 mcs.set_valeur(mcs.eval_val_item('DIS_T'))
199 mcs=add_mcsimp(mcf[1],"GROUP_MA",'MASSES')
201 mcf=co.addentite("AFFE")
202 mcs=mcf[2].get_child("PHENOMENE")
203 mcs.set_valeur(mcs.eval_val_item('THERMIQUE'))
204 mcs=mcf[2].get_child("b_thermique").get_child("MODELISATION")
205 mcs.set_valeur(mcs.eval_val_item('COQUE'))
206 mcs=add_mcsimp(mcf[2],"TOUT",'OUI')
209 #CARA=AFFE_CARA_ELEM(MODELE=MOD,
210 # POUTRE=_F(GROUP_MA='MA',
213 # VALE=(3.0,P6,),),);
215 co=j.addentite("AFFE_CARA_ELEM",pos)
216 mcs=co.get_child("MODELE")
217 mcs.set_valeur(mcs.eval_val("MOD"))
218 mcf=co.addentite("POUTRE")
219 mcs=mcf[0].get_child("SECTION")
220 mcs.set_valeur(mcs.eval_val('CERCLE'))
221 assert mcf[0]["SECTION"] == 'CERCLE'
222 mcs=add_mcsimp(mcf[0],"GROUP_MA",'MA')
223 mcs=mcf[0].get_child("b_cercle").get_child("b_constant").get_child("CARA")
224 mcs.set_valeur(mcs.eval_val('R'))
225 mcs=mcf[0].get_child("b_cercle").get_child("b_constant").get_child("VALE")
226 mcs.set_valeur(mcs.eval_val('3.0,P6'))
230 co=j.addentite("COMMENTAIRE",pos)
231 text=""" 'AFFE_MODELE', 'MAILLAGE' --> uniqueassdpanel
232 AFFE_MODELE', 'AFFE', 'GROUP_MA' --> plusieursbasepanel
233 'AFFE_MODELE', 'AFFE', 'PHENOMENE' --> uniqueintopanel
234 'AFFE_MODELE', 'AFFE', 'b_mecanique'--> plusieursintopanel"""
236 #F1=DEFI_FONCTION(NOM_PARA='DX',
237 # VALE=(5.0,3.0,P4[1],P3,),);
239 co=j.addentite("DEFI_FONCTION",pos)
240 mcs=co.get_child("NOM_PARA")
241 mcs.set_valeur(mcs.eval_val("DX"))
242 mcs=co.addentite("VALE")
243 mcs.set_valeur(mcs.eval_val("5.0,3.0,P4[1],P3"))
245 #F3=DEFI_FONCTION(NOM_PARA='DRX',
246 # VALE_C=(5.0,7.0,9.0,9.0,8.0,7.0,),);
248 co=j.addentite("DEFI_FONCTION",pos)
249 mcs=co.get_child("NOM_PARA")
250 mcs.set_valeur(mcs.eval_val("DRX"))
251 mcs=co.addentite("VALE_C")
252 mcs.set_valeur(mcs.eval_val("5.0,7.0,9.0,9.0,8.0,7.0"))
256 co=j.addentite("COMMENTAIRE",pos)
257 co.set_valeur(" 'DEFI_FONCTION', 'VALE' --> fonctionpanel ")
258 #MATER2=DEFI_MATERIAU(ELAS=_F(E=100000000000.0,
260 # ECRO_ASYM_LINE=_F(DC_SIGM_EPSI=0.0,
263 # SY_T=50000000.0,),);
265 co=j.addentite("DEFI_MATERIAU",pos)
266 mcf=co.addentite("ELAS")
267 mcs=mcf[0].get_child("E")
268 mcs.set_valeur(mcs.eval_val("100000000000.0"))
269 mcs=mcf[0].get_child("NU")
270 mcs.set_valeur(mcs.eval_val("0.0"))
271 mcf=co.addentite("ECRO_ASYM_LINE")
272 mcs=mcf[0].get_child("DC_SIGM_EPSI")
273 mcs.set_valeur(mcs.eval_val("0.0"))
274 mcs=mcf[0].get_child("DT_SIGM_EPSI")
275 mcs.set_valeur(mcs.eval_val("0.0"))
276 mcs=mcf[0].get_child("SY_C")
277 mcs.set_valeur(mcs.eval_val("200000000.0"))
278 mcs=mcf[0].get_child("SY_T")
279 mcs.set_valeur(mcs.eval_val("50000000.0"))
280 co.nomme_sd("MATER2")
281 #PS1=DEFI_PARA_SENSI(VALE=1.0,);
282 #PS2=DEFI_PARA_SENSI(VALE=1.0,);
283 #PS3=DEFI_PARA_SENSI(VALE=1.0,);
285 co=j.addentite("DEFI_PARA_SENSI",pos)
286 mcs=co.get_child("VALE")
287 mcs.set_valeur(mcs.eval_val("1.0"))
290 co=j.addentite("DEFI_PARA_SENSI",pos)
291 mcs=co.get_child("VALE")
292 mcs.set_valeur(mcs.eval_val("1.0"))
295 co=j.addentite("DEFI_PARA_SENSI",pos)
296 mcs=co.get_child("VALE")
297 mcs.set_valeur(mcs.eval_val("1.0"))
299 #CHMAT2=AFFE_MATERIAU(MAILLAGE=MAIL,
300 # AFFE=_F(TOUT='OUI',
303 co=j.addentite("AFFE_MATERIAU",pos)
304 add_mcsimp(co,"MAILLAGE","MAIL")
305 mcf=co.get_child("AFFE")
306 add_mcsimp(mcf[0],"TOUT","OUI")
307 add_mcsimp(mcf[0],"MATER","MATER2")
308 co.nomme_sd("CHMAT2")
309 #AAAZ=AFFE_CHAR_THER(MODELE=AFFE1,
310 # TEMP_IMPO=_F(TOUT='OUI',
313 co=j.addentite("AFFE_CHAR_THER",pos)
314 add_mcsimp(co,"MODELE","AFFE1")
315 mcf=co.addentite("TEMP_IMPO")
316 add_mcsimp(mcf[0],"TOUT","OUI")
317 add_mcsimp(mcf[0],"TEMP","0.0")
319 #TH1=THER_LINEAIRE(MODELE=AFFE1,
321 # EXCIT=_F(CHARGE=AAAZ,),
322 # SENSIBILITE=(PS1,PS2,),);
324 co=j.addentite("THER_LINEAIRE",pos)
325 add_mcsimp(co,"MODELE","AFFE1")
326 add_mcsimp(co,"CHAM_MATER","CHMAT2")
327 mcf=co.get_child("EXCIT")
328 add_mcsimp(mcf[0],"CHARGE","AAAZ")
329 add_mcsimp(co,"SENSIBILITE","PS1,PS2")
333 co=j.addentite("COMMENTAIRE",pos)
334 co.set_valeur(" 'THER_LINEAIRE', 'SENSIBILITE' --> plusieursassdpanel")
335 #ACA1=AFFE_CHAR_ACOU(MODELE=AFFE1,
336 # PRES_IMPO=_F(TOUT='OUI',
337 # PRES=('RI',3.0,3.0,),),);
339 co=j.addentite("AFFE_CHAR_ACOU",pos)
340 add_mcsimp(co,"MODELE","AFFE1")
341 mcf=co.addentite("PRES_IMPO")
342 add_mcsimp(mcf[0],"TOUT","OUI")
343 add_mcsimp(mcf[0],"PRES","'RI',3.0,3.0")
347 co=j.addentite("COMMENTAIRE",pos)
348 co.set_valeur(" 'AFFE_CHAR_ACOU', 'PRES_IMPO', 'PRES' --> uniquecomppanel")
350 # 'AFFE_CHAR_ACOU', 'PRES_IMPO', 'PRES' --> uniquecomppanel
352 #MACRO_MATR_ASSE(MODELE=AFFE1,
353 # NUME_DDL=CO('DDL1'),
354 # MATR_ASSE=_F(MATRICE=CO('MAT1'),
355 # OPTION='RIGI_THER',),);
357 co=j.addentite("MACRO_MATR_ASSE",pos)
358 add_mcsimp(co,"MODELE","AFFE1")
359 mcs=co.get_child("NUME_DDL")
360 mcs.set_valeur_co('DDL1')
361 mcf=co.get_child("MATR_ASSE")
362 add_mcsimp(mcf[0],"OPTION","RIGI_THER")
363 mcs=mcf[0].get_child("MATRICE")
364 mcs.set_valeur_co('MAT1')
367 co=j.addentite("COMMENTAIRE",pos)
368 co.set_valeur(" 'MACRO_MATR_ASSE', 'MATR_ASSE', 'MATRICE' --> uniquesdcopanel")
370 assert j.isvalid(),j.report()
372 text1=app.get_text_JDC(j,'python')
373 file=os.path.join(prefs.INSTALLDIR,"Tests/testelem/az.comm")
377 assert text1 == text2 , cdiff(text1,text2)
380 """ Test de construction du fichier de commandes az.comm de zero"""
382 app=appli.STANDALONE(version=version)
385 co=j.addentite("DEBUT",0)
387 co=j.addentite("FIN",1)
391 co=add_param(j,pos,"P1","9.8")
393 co=add_param(j,pos,"P2","sin(P1)")
396 co=j.addentite("FORMULE",pos)
397 co.update_formule_python(("aaa","REEL","a+z","(a,z)"))
398 #parametre de formule
400 co=add_param(j,pos,"P3","aaa(P1,2.)")
401 #commande defi_list_reel
403 co=j.addentite("DEFI_LIST_REEL",pos)
404 add_mcsimp(co,"VALE","1.,2.,3.")
406 #commande defi_list_reel
408 co=j.addentite("DEFI_LIST_REEL",pos)
409 add_mcsimp(co,"VALE","sin(1.)")
411 #commande defi_list_reel
413 co=j.addentite("DEFI_LIST_REEL",pos)
414 add_mcsimp(co,"VALE","aaa(1.,2.)")
416 #commande defi_list_reel
418 co=j.addentite("DEFI_LIST_REEL",pos)
419 add_mcsimp(co,"VALE","sin(1.,2)")
421 #commande defi_list_reel
423 co=j.addentite("DEFI_LIST_REEL",pos)
424 add_mcsimp(co,"VALE","aaa(1.)")
426 #commande defi_list_reel
428 co=j.addentite("DEFI_LIST_REEL",pos)
429 add_mcsimp(co,"VALE","1,sin(1.),2")
432 expected="""DEBUT CR validation : SansNom
433 Etape : DEFI_LIST_REEL ligne : ...
434 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
435 ! Concept retourné non défini !
436 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
437 Mot-clé simple : VALE
438 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
439 ! 'sin(1.,2)' n'est pas d'un type autorisé: ('R',) !
440 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
441 Fin Mot-clé simple : VALE
442 Fin Etape : DEFI_LIST_REEL
443 Etape : DEFI_LIST_REEL ligne : ...
444 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
445 ! Concept retourné non défini !
446 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
447 Mot-clé simple : VALE
448 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
449 ! 'aaa(1.)' n'est pas d'un type autorisé: ('R',) !
450 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
451 Fin Mot-clé simple : VALE
452 Fin Etape : DEFI_LIST_REEL
453 FIN CR validation :SansNom
456 assert compare.check(expected,msg),cdiff(expected,msg)