9 from InterfaceTK import appli
10 #from Editeur import appli
12 def add_param(j,pos,nom,valeur):
13 co=j.addentite("PARAMETRE",pos)
18 def add_mcsimp(obj,nom,valeur):
19 mcs=obj.get_child(nom,restreint='oui')
21 pos=obj.get_index_child(nom)
22 mcs=obj.addentite(nom,pos)
23 mcs.set_valeur(mcs.eval_val(valeur))
26 def cdiff(text1,text2):
27 return " ".join(difflib.context_diff(text1.splitlines(1),text2.splitlines(1)))
31 class TestCase(unittest.TestCase):
36 CONTEXT.unset_current_step()
39 app=appli.STANDALONE(version=version)
43 co=j.addentite("DEBUT",0)
44 co=add_param(j,1,"P1",None)
45 x=co.valeur or "coucou"
54 """ Test d'insertion de commandes dans fichier toto.comm"""
55 app=appli.STANDALONE(version=version)
56 file=os.path.join(prefs.INSTALLDIR,"Tests/testelem/toto.comm")
57 j=app.openJDC(file=file)
58 expected="""DEBUT CR validation : toto.comm
59 FIN CR validation :toto.comm
62 assert cr == expected, cr + "!=" + expected
64 mcs=co.addentite("INFO")
66 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')
83 MA=LIRE_MAILLAGE(INFO=1,);
89 assert cr == expected, cr + "!=" + expected
92 """ Test de construction du fichier de commandes az.comm de zero"""
94 app=appli.STANDALONE(version=version)
97 co=j.addentite("DEBUT",0)
99 co=j.addentite("FIN",1)
103 co=add_param(j,pos,"P1","9.8")
105 co=add_param(j,pos,"P2","8.8")
107 co=add_param(j,pos,"P3","7")
109 co=add_param(j,pos,"P5","P3*P1")
111 co=add_param(j,pos,"P6","P1-3")
113 co=add_param(j,pos,"P4","[2,3,4]")
116 co=j.addentite("COMMENTAIRE",pos)
117 co.set_valeur("Pas trouve shellpanel")
118 # commande LIRE_MAILLAGE
120 co=j.addentite("LIRE_MAILLAGE",pos)
121 test,mess=co.nomme_sd("MAILLA2")
122 mcs=co.addentite("UNITE")
123 valeur=mcs.eval_val("P4[1]")
124 test=mcs.set_valeur(valeur)
127 co=j.addentite("FORMULE",pos)
128 co.update_formule_python(("aaa","REEL","a+z","(a,z)"))
129 # commande LIRE_MAILLAGE
131 ma=co=j.addentite("LIRE_MAILLAGE",pos)
132 test,mess=co.nomme_sd("MAIL")
133 mcs=co.addentite("UNITE")
134 valeur,validite=mcs.eval_valeur("P3")
135 test=mcs.set_valeur(valeur)
138 co=j.addentite("COMMENTAIRE",pos)
139 co.set_valeur(" 'LIRE_MAILLAGE', 'UNITE' --> uniquebasepanel")
142 co=j.addentite("FORMULE",pos)
143 co.update_formule_python(("az","REEL","aaaaa","(ae,inst)"))
144 # commande AFFE_MODELE
146 co=j.addentite("AFFE_MODELE",pos)
147 mcs=co.get_child("MAILLAGE")
148 valeur,validite=mcs.eval_valeur("MAIL")
149 assert valeur == ma.sd
150 test=mcs.set_valeur(valeur)
151 assert valeur == co["MAILLAGE"]
152 mcf=co.addentite("AFFE")
153 mcs=mcf[0].get_child("PHENOMENE")
154 valeur=mcs.eval_val_item('MECANIQUE')
155 assert valeur=='MECANIQUE',str(valeur)
156 test=mcs.set_valeur(valeur)
157 assert mcf["PHENOMENE"] == 'MECANIQUE'
158 mcs=mcf[0].get_child("b_mecanique").get_child("MODELISATION")
159 mcs.set_valeur(mcs.eval_val_item('DIS_T'))
160 assert mcf["MODELISATION"] == 'DIS_T'
161 mcs=add_mcsimp(mcf[0],"GROUP_MA",('RESSORT','eee',))
163 mcf=co.addentite("AFFE")
164 mcs=mcf[1].get_child("PHENOMENE")
165 mcs.set_valeur(mcs.eval_val_item('MECANIQUE'))
166 mcs=mcf[1].get_child("b_mecanique").get_child("MODELISATION")
167 mcs.set_valeur(mcs.eval_val_item('DIS_T'))
168 mcs=add_mcsimp(mcf[1],"GROUP_MA",'MASSES')
170 mcf=co.addentite("AFFE")
171 mcs=mcf[2].get_child("PHENOMENE")
172 mcs.set_valeur(mcs.eval_val_item('ACOUSTIQUE'))
173 mcs=mcf[2].get_child("b_acoustique").get_child("MODELISATION")
174 mcs.set_valeur(mcs.eval_val_item('PLAN'))
175 #mcs=add_mcsimp(mcf[2],"GROUP_NO",'GNP3,GNP5,GNP6,GNP7,GNP8,GNP9,GNP10,GNP11,GNP12')
176 mcs=add_mcsimp(mcf[2],"GROUP_NO","'GNP3','GNP5','GNP6','GNP7','GNP8','GNP9','GNP10','GNP11','GNP12'")
179 # commande AFFE_MODELE
181 co=j.addentite("AFFE_MODELE",pos)
182 mcs=co.get_child("MAILLAGE")
183 mcs.set_valeur(mcs.eval_val("MAIL"))
185 mcf=co.addentite("AFFE")
186 mcs=mcf[0].get_child("PHENOMENE")
187 valeur=mcs.eval_val_item('MECANIQUE')
188 test=mcs.set_valeur(valeur)
189 mcs=mcf[0].get_child("b_mecanique").get_child("MODELISATION")
190 mcs.set_valeur(mcs.eval_val_item('DIS_T'))
191 mcs=add_mcsimp(mcf[0],"GROUP_MA",'RESSORT')
193 mcf=co.addentite("AFFE")
194 mcs=mcf[1].get_child("PHENOMENE")
195 mcs.set_valeur(mcs.eval_val_item('MECANIQUE'))
196 mcs=mcf[1].get_child("b_mecanique").get_child("MODELISATION")
197 mcs.set_valeur(mcs.eval_val_item('DIS_T'))
198 mcs=add_mcsimp(mcf[1],"GROUP_MA",'MASSES')
200 mcf=co.addentite("AFFE")
201 mcs=mcf[2].get_child("PHENOMENE")
202 mcs.set_valeur(mcs.eval_val_item('THERMIQUE'))
203 mcs=mcf[2].get_child("b_thermique").get_child("MODELISATION")
204 mcs.set_valeur(mcs.eval_val_item('COQUE'))
205 mcs=add_mcsimp(mcf[2],"TOUT",'OUI')
208 #CARA=AFFE_CARA_ELEM(MODELE=MOD,
209 # POUTRE=_F(GROUP_MA='MA',
212 # VALE=(3.0,P6,),),);
214 co=j.addentite("AFFE_CARA_ELEM",pos)
215 mcs=co.get_child("MODELE")
216 mcs.set_valeur(mcs.eval_val("MOD"))
217 mcf=co.addentite("POUTRE")
218 mcs=mcf[0].get_child("SECTION")
219 mcs.set_valeur(mcs.eval_val('CERCLE'))
220 assert mcf[0]["SECTION"] == 'CERCLE'
221 mcs=add_mcsimp(mcf[0],"GROUP_MA",'MA')
222 mcs=mcf[0].get_child("b_cercle").get_child("b_constant").get_child("CARA")
223 mcs.set_valeur(mcs.eval_val('R'))
224 mcs=mcf[0].get_child("b_cercle").get_child("b_constant").get_child("VALE")
225 mcs.set_valeur(mcs.eval_val('3.0,P6'))
229 co=j.addentite("COMMENTAIRE",pos)
230 text=""" 'AFFE_MODELE', 'MAILLAGE' --> uniqueassdpanel
231 AFFE_MODELE', 'AFFE', 'GROUP_MA' --> plusieursbasepanel
232 'AFFE_MODELE', 'AFFE', 'PHENOMENE' --> uniqueintopanel
233 'AFFE_MODELE', 'AFFE', 'b_mecanique'--> plusieursintopanel"""
235 #F1=DEFI_FONCTION(NOM_PARA='DX',
236 # VALE=(5.0,3.0,P4[1],P3,),);
238 co=j.addentite("DEFI_FONCTION",pos)
239 mcs=co.get_child("NOM_PARA")
240 mcs.set_valeur(mcs.eval_val("DX"))
241 mcs=co.addentite("VALE")
242 mcs.set_valeur(mcs.eval_val("5.0,3.0,P4[1],P3"))
244 #F3=DEFI_FONCTION(NOM_PARA='DRX',
245 # VALE_C=(5.0,7.0,9.0,9.0,8.0,7.0,),);
247 co=j.addentite("DEFI_FONCTION",pos)
248 mcs=co.get_child("NOM_PARA")
249 mcs.set_valeur(mcs.eval_val("DRX"))
250 mcs=co.addentite("VALE_C")
251 mcs.set_valeur(mcs.eval_val("5.0,7.0,9.0,9.0,8.0,7.0"))
255 co=j.addentite("COMMENTAIRE",pos)
256 co.set_valeur(" 'DEFI_FONCTION', 'VALE' --> fonctionpanel ")
257 #MATER2=DEFI_MATERIAU(ELAS=_F(E=100000000000.0,
259 # ECRO_ASYM_LINE=_F(DC_SIGM_EPSI=0.0,
262 # SY_T=50000000.0,),);
264 co=j.addentite("DEFI_MATERIAU",pos)
265 mcf=co.addentite("ELAS")
266 mcs=mcf[0].get_child("E")
267 mcs.set_valeur(mcs.eval_val("100000000000.0"))
268 mcs=mcf[0].get_child("NU")
269 mcs.set_valeur(mcs.eval_val("0.0"))
270 mcf=co.addentite("ECRO_ASYM_LINE")
271 mcs=mcf[0].get_child("DC_SIGM_EPSI")
272 mcs.set_valeur(mcs.eval_val("0.0"))
273 mcs=mcf[0].get_child("DT_SIGM_EPSI")
274 mcs.set_valeur(mcs.eval_val("0.0"))
275 mcs=mcf[0].get_child("SY_C")
276 mcs.set_valeur(mcs.eval_val("200000000.0"))
277 mcs=mcf[0].get_child("SY_T")
278 mcs.set_valeur(mcs.eval_val("50000000.0"))
279 co.nomme_sd("MATER2")
280 #PS1=DEFI_PARA_SENSI(VALE=1.0,);
281 #PS2=DEFI_PARA_SENSI(VALE=1.0,);
282 #PS3=DEFI_PARA_SENSI(VALE=1.0,);
284 co=j.addentite("DEFI_PARA_SENSI",pos)
285 mcs=co.get_child("VALE")
286 mcs.set_valeur(mcs.eval_val("1.0"))
289 co=j.addentite("DEFI_PARA_SENSI",pos)
290 mcs=co.get_child("VALE")
291 mcs.set_valeur(mcs.eval_val("1.0"))
294 co=j.addentite("DEFI_PARA_SENSI",pos)
295 mcs=co.get_child("VALE")
296 mcs.set_valeur(mcs.eval_val("1.0"))
298 #CHMAT2=AFFE_MATERIAU(MAILLAGE=MAIL,
299 # AFFE=_F(TOUT='OUI',
302 co=j.addentite("AFFE_MATERIAU",pos)
303 add_mcsimp(co,"MAILLAGE","MAIL")
304 mcf=co.get_child("AFFE")
305 add_mcsimp(mcf[0],"TOUT","OUI")
306 add_mcsimp(mcf[0],"MATER","MATER2")
307 co.nomme_sd("CHMAT2")
308 #AAAZ=AFFE_CHAR_THER(MODELE=AFFE1,
309 # TEMP_IMPO=_F(TOUT='OUI',
312 co=j.addentite("AFFE_CHAR_THER",pos)
313 add_mcsimp(co,"MODELE","AFFE1")
314 mcf=co.addentite("TEMP_IMPO")
315 add_mcsimp(mcf[0],"TOUT","OUI")
316 add_mcsimp(mcf[0],"TEMP","0.0")
318 #TH1=THER_LINEAIRE(MODELE=AFFE1,
320 # EXCIT=_F(CHARGE=AAAZ,),
321 # SENSIBILITE=(PS1,PS2,),);
323 co=j.addentite("THER_LINEAIRE",pos)
324 add_mcsimp(co,"MODELE","AFFE1")
325 add_mcsimp(co,"CHAM_MATER","CHMAT2")
326 mcf=co.get_child("EXCIT")
327 add_mcsimp(mcf[0],"CHARGE","AAAZ")
328 add_mcsimp(co,"SENSIBILITE","PS1,PS2")
332 co=j.addentite("COMMENTAIRE",pos)
333 co.set_valeur(" 'THER_LINEAIRE', 'SENSIBILITE' --> plusieursassdpanel")
334 #ACA1=AFFE_CHAR_ACOU(MODELE=AFFE1,
335 # PRES_IMPO=_F(TOUT='OUI',
336 # PRES=('RI',3.0,3.0,),),);
338 co=j.addentite("AFFE_CHAR_ACOU",pos)
339 add_mcsimp(co,"MODELE","AFFE1")
340 mcf=co.addentite("PRES_IMPO")
341 add_mcsimp(mcf[0],"TOUT","OUI")
342 add_mcsimp(mcf[0],"PRES","'RI',3.0,3.0")
346 co=j.addentite("COMMENTAIRE",pos)
347 co.set_valeur(" 'AFFE_CHAR_ACOU', 'PRES_IMPO', 'PRES' --> uniquecomppanel")
349 # 'AFFE_CHAR_ACOU', 'PRES_IMPO', 'PRES' --> uniquecomppanel
351 #MACRO_MATR_ASSE(MODELE=AFFE1,
352 # NUME_DDL=CO('DDL1'),
353 # MATR_ASSE=_F(MATRICE=CO('MAT1'),
354 # OPTION='RIGI_THER',),);
356 co=j.addentite("MACRO_MATR_ASSE",pos)
357 add_mcsimp(co,"MODELE","AFFE1")
358 mcs=co.get_child("NUME_DDL")
359 mcs.set_valeur_co('DDL1')
360 mcf=co.get_child("MATR_ASSE")
361 add_mcsimp(mcf[0],"OPTION","RIGI_THER")
362 mcs=mcf[0].get_child("MATRICE")
363 mcs.set_valeur_co('MAT1')
366 co=j.addentite("COMMENTAIRE",pos)
367 co.set_valeur(" 'MACRO_MATR_ASSE', 'MATR_ASSE', 'MATRICE' --> uniquesdcopanel")
369 assert j.isvalid(),j.report()
371 text1=app.get_text_JDC(j,'python')
372 file=os.path.join(prefs.INSTALLDIR,"Tests/testelem/az.comm")
376 assert text1 == text2 , cdiff(text1,text2)
379 """ Test de construction du fichier de commandes az.comm de zero"""
381 app=appli.STANDALONE(version=version)
384 co=j.addentite("DEBUT",0)
386 co=j.addentite("FIN",1)
390 co=add_param(j,pos,"P1","9.8")
392 co=add_param(j,pos,"P2","sin(P1)")
395 co=j.addentite("FORMULE",pos)
396 co.update_formule_python(("aaa","REEL","a+z","(a,z)"))
397 #parametre de formule
399 co=add_param(j,pos,"P3","aaa(P1,2.)")
400 #commande defi_list_reel
402 co=j.addentite("DEFI_LIST_REEL",pos)
403 add_mcsimp(co,"VALE","1.,2.,3.")
405 #commande defi_list_reel
407 co=j.addentite("DEFI_LIST_REEL",pos)
408 add_mcsimp(co,"VALE","sin(1.)")
410 #commande defi_list_reel
412 co=j.addentite("DEFI_LIST_REEL",pos)
413 add_mcsimp(co,"VALE","aaa(1.,2.)")
415 #commande defi_list_reel
417 co=j.addentite("DEFI_LIST_REEL",pos)
418 add_mcsimp(co,"VALE","sin(1.,2)")
420 #commande defi_list_reel
422 co=j.addentite("DEFI_LIST_REEL",pos)
423 add_mcsimp(co,"VALE","aaa(1.)")
425 #commande defi_list_reel
427 co=j.addentite("DEFI_LIST_REEL",pos)
428 add_mcsimp(co,"VALE","1,sin(1.),2")
431 expected="""DEBUT CR validation : SansNom
432 Etape : DEFI_LIST_REEL ligne : ...
433 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
434 ! Concept retourné non défini !
435 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
436 Mot-clé simple : VALE
437 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
438 ! 'sin(1.,2)' (de type <type 'str'>) n'est pas d'un type autorisé: ('R',) !
439 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
440 Fin Mot-clé simple : VALE
441 Fin Etape : DEFI_LIST_REEL
442 Etape : DEFI_LIST_REEL ligne : ...
443 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
444 ! Concept retourné non défini !
445 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
446 Mot-clé simple : VALE
447 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
448 ! 'aaa(1.)' (de type <type 'str'>) n'est pas d'un type autorisé: ('R',) !
449 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
450 Fin Mot-clé simple : VALE
451 Fin Etape : DEFI_LIST_REEL
452 FIN CR validation :SansNom
455 assert compare.check(expected,msg),cdiff(expected,msg)