9 from InterfaceTK 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)))
28 class TestCase(unittest.TestCase):
33 CONTEXT.unset_current_step()
36 """ Test de construction du fichier de commandes az.comm de zero"""
38 app=appli.STANDALONE(version='v7')
41 co=j.addentite("DEBUT",0)
43 co=j.addentite("FIN",1)
47 co=add_param(j,pos,"P1","9.8")
49 co=add_param(j,pos,"P2","8.8")
51 co=add_param(j,pos,"P3","7")
53 co=add_param(j,pos,"P5","P3*P1")
55 co=add_param(j,pos,"P6","P1-3")
57 co=add_param(j,pos,"P4","[2,3,4]")
60 co=j.addentite("COMMENTAIRE",pos)
61 co.set_valeur("Pas trouve shellpanel")
62 # commande LIRE_MAILLAGE
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)
71 co=j.addentite("FORMULE",pos)
72 co.update_formule_python(("aaa","REEL","a+z","(a,z)"))
73 # commande LIRE_MAILLAGE
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)
82 co=j.addentite("COMMENTAIRE",pos)
83 co.set_valeur(" 'LIRE_MAILLAGE', 'UNITE' --> uniquebasepanel")
86 co=j.addentite("FORMULE",pos)
87 co.update_formule_python(("az","REEL","aaaaa","(ae,inst)"))
88 # commande AFFE_MODELE
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',))
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')
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'")
123 # commande AFFE_MODELE
125 co=j.addentite("AFFE_MODELE",pos)
126 mcs=co.get_child("MAILLAGE")
127 mcs.set_valeur(mcs.eval_val("MAIL"))
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')
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')
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')
152 #CARA=AFFE_CARA_ELEM(MODELE=MOD,
153 # POUTRE=_F(GROUP_MA='MA',
156 # VALE=(3.0,P6,),),);
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'))
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"""
179 #F1=DEFI_FONCTION(NOM_PARA='DX',
180 # VALE=(5.0,3.0,P4[1],P3,),);
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"))
188 #F3=DEFI_FONCTION(NOM_PARA='DRX',
189 # VALE_C=(5.0,7.0,9.0,9.0,8.0,7.0,),);
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"))
199 co=j.addentite("COMMENTAIRE",pos)
200 co.set_valeur(" 'DEFI_FONCTION', 'VALE' --> fonctionpanel ")
201 #MATER2=DEFI_MATERIAU(ELAS=_F(E=100000000000.0,
203 # ECRO_ASYM_LINE=_F(DC_SIGM_EPSI=0.0,
206 # SY_T=50000000.0,),);
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,);
228 co=j.addentite("DEFI_PARA_SENSI",pos)
229 mcs=co.get_child("VALE")
230 mcs.set_valeur(mcs.eval_val("1.0"))
233 co=j.addentite("DEFI_PARA_SENSI",pos)
234 mcs=co.get_child("VALE")
235 mcs.set_valeur(mcs.eval_val("1.0"))
238 co=j.addentite("DEFI_PARA_SENSI",pos)
239 mcs=co.get_child("VALE")
240 mcs.set_valeur(mcs.eval_val("1.0"))
242 #CHMAT2=AFFE_MATERIAU(MAILLAGE=MAIL,
243 # AFFE=_F(TOUT='OUI',
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',
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")
262 #TH1=THER_LINEAIRE(MODELE=AFFE1,
264 # EXCIT=_F(CHARGE=AAAZ,),
265 # SENSIBILITE=(PS1,PS2,),);
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")
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,),),);
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")
290 co=j.addentite("COMMENTAIRE",pos)
291 co.set_valeur(" 'AFFE_CHAR_ACOU', 'PRES_IMPO', 'PRES' --> uniquecomppanel")
293 # 'AFFE_CHAR_ACOU', 'PRES_IMPO', 'PRES' --> uniquecomppanel
295 #MACRO_MATR_ASSE(MODELE=AFFE1,
296 # NUME_DDL=CO('DDL1'),
297 # MATR_ASSE=_F(MATRICE=CO('MAT1'),
298 # OPTION='RIGI_THER',),);
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')
310 co=j.addentite("COMMENTAIRE",pos)
311 co.set_valeur(" 'MACRO_MATR_ASSE', 'MATR_ASSE', 'MATRICE' --> uniquesdcopanel")
313 assert j.isvalid(),j.report()
315 text1=app.get_text_JDC(j,'python')
316 file=os.path.join(prefs.INSTALLDIR,"Tests/testelem/az.comm")
320 assert text1 == text2 , cdiff(text1,text2)
323 """ Test de construction d'un fichier de commandes avec DEFI_LIST_REEL, fonction et parametre de zero"""
325 app=appli.STANDALONE(version='v7')
328 co=j.addentite("DEBUT",0)
330 co=j.addentite("FIN",1)
334 co=add_param(j,pos,"P1","9.8")
336 co=add_param(j,pos,"P2","sin(P1)")
339 co=j.addentite("FORMULE",pos)
340 co.update_formule_python(("aaa","REEL","a+z","(a,z)"))
341 #parametre de formule
343 co=add_param(j,pos,"P3","aaa(P1,2.)")
344 #commande defi_list_reel
346 co=j.addentite("DEFI_LIST_REEL",pos)
347 add_mcsimp(co,"VALE","1.,2.,3.")
349 #commande defi_list_reel
351 co=j.addentite("DEFI_LIST_REEL",pos)
352 add_mcsimp(co,"VALE","sin(1.)")
354 #commande defi_list_reel
356 co=j.addentite("DEFI_LIST_REEL",pos)
357 add_mcsimp(co,"VALE","aaa(1.,2.)")
359 #commande defi_list_reel
361 co=j.addentite("DEFI_LIST_REEL",pos)
362 add_mcsimp(co,"VALE","sin(1.,2)")
364 #commande defi_list_reel
366 co=j.addentite("DEFI_LIST_REEL",pos)
367 add_mcsimp(co,"VALE","aaa(1.)")
369 #commande defi_list_reel
371 co=j.addentite("DEFI_LIST_REEL",pos)
372 add_mcsimp(co,"VALE","1,sin(1.),2")
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
399 assert compare.check(expected,msg),cdiff(expected,msg)