]> SALOME platform Git repositories - tools/eficas.git/commitdiff
Salome HOME
CCAR: ajout tests de adaptation pour validation parametres
authoreficas <>
Mon, 23 Jan 2006 09:44:22 +0000 (09:44 +0000)
committereficas <>
Mon, 23 Jan 2006 09:44:22 +0000 (09:44 +0000)
22 files changed:
Tests/testcomm/a.comm
Tests/testcomm/c.comm
Tests/testcomm/e.comm [new file with mode: 0644]
Tests/testcomm/f.comm [new file with mode: 0644]
Tests/testcomm/g.comm [new file with mode: 0644]
Tests/testcomm/testaster1.py
Tests/testcomm/testaster10.py
Tests/testcomm/testaster2.py
Tests/testcomm/testaster3.py
Tests/testcomm/testaster4.py
Tests/testcomm/testaster5.py
Tests/testcomm/testaster6.py
Tests/testcomm/testaster7.py
Tests/testcomm/testaster8.py
Tests/testcomm/testaster9.py
Tests/testelem/params.comm [new file with mode: 0644]
Tests/testelem/testjdc1.py
Tests/testelem/testjdc3.py
Tests/testelem/testjdc4.py [new file with mode: 0644]
Tests/testelem/testsimp1.py
Tests/testelem/testsimp3.py
Tests/testelem/testvalidator2.py

index 812f1bc0243b0272f09479ec62841362363c1562..665f63fe2f2a6d25234385927cabcc67b06bfa13 100644 (file)
@@ -1,3 +1,5 @@
 DEBUT()
 inf=1
+p2=inf+1
+p3=sin(p2)
 FIN()
index e4dfab333b7ac89685a7f6bcef309546b5fad1c9..36906c57dea13363929059003588eb8c53c19654 100644 (file)
@@ -4,11 +4,13 @@ RAYCRA=1.
 EPCRA=0.1
 S_CR=3.1415*(RAYCRA**2-(RAYCRA-EPCRA)**2)
 T_CR=3.1415
+NOMF="nomfichier"
 n=2
 
 MA=LIRE_MAILLAGE(  )
 
 MO=AFFE_MODELE(  MAILLAGE=MA,
+          #test de validateur GEOM (typ=grma) avec grma derive de GEOM
                  AFFE=(_F(GROUP_MA = ('LI1'),
                           PHENOMENE = 'MECANIQUE',
                           MODELISATION = 'DIS_TR'),
@@ -32,4 +34,16 @@ CAREG=AFFE_CARA_ELEM(MODELE=MO,
                            ),
                         );
 
+DEFI_FICHIER(UNITE=50, FICHIER='./REPE_OUT/zzzz206a_resu.mail')
+#test de validateur LongStr avec parametre instance de PARAMETRE
+DEFI_FICHIER(UNITE=50, FICHIER=NOMF)
+#test de validateur LongStr avec parametre instance de Formula
+u=DEFI_FICHIER( FICHIER=NOMF*2)
+DEFI_FICHIER (ACTION='LIBERER',UNITE=50)
+#test de validateur d'objet entier (typ='I'), instance de la classe entier
+DEFI_FICHIER (ACTION='LIBERER',UNITE=u)
+
+# test de validateur qui accepte tout (typ=assd)
+IMPR_CO(CO=MA)
+
 FIN()
diff --git a/Tests/testcomm/e.comm b/Tests/testcomm/e.comm
new file mode 100644 (file)
index 0000000..ffd1185
--- /dev/null
@@ -0,0 +1,70 @@
+DEBUT()
+MAYA=LIRE_MAILLAGE()
+
+MAYA=DEFI_GROUP( reuse=MAYA,   MAILLAGE=MAYA,
+  CREA_GROUP_MA=_F(  NOM = 'TOUT', TOUT = 'OUI'))
+
+BARRE1=AFFE_MODELE(  MAILLAGE=MAYA,
+                            AFFE=_F( GROUP_MA='SS1',
+                                  MODELISATION = 'POU_D_E',
+                                  PHENOMENE = 'MECANIQUE'))
+#
+MATERIO1=DEFI_MATERIAU(  ELAS=_F( RHO = 1.E08,  NU = 0.3,  E = 1.E10))
+
+MATERIO2=DEFI_MATERIAU(  ELAS=_F( RHO = 0.,  NU = 0.,   E = 1.E15))
+#
+CHMAT=AFFE_MATERIAU(  MAILLAGE=MAYA,AFFE=(
+                              #_F( TOUT = 'OUI',      MATER = MATERIO1),
+                              _F( GROUP_MA = 'SS1',   MATER = MATERIO1),
+                              _F( GROUP_MA = 'SS2',   MATER = MATERIO1),
+                              _F( GROUP_MA = 'SS3',   MATER = MATERIO1),
+                              _F( GROUP_MA = 'RIGIDE', MATER = MATERIO2),
+)) # commentaire test
+
+CARA1=AFFE_CARA_ELEM(  MODELE=BARRE1,
+                           POUTRE=_F(
+                                    GROUP_MA = 'TOUT',
+                                    SECTION = 'CERCLE',
+                                    CARA = ('R', 'EP',),  
+                                    VALE = (0.1, 0.01,)))
+
+GUIDAGE1=AFFE_CHAR_MECA(    MODELE=BARRE1,DDL_IMPO=(
+                           _F( GROUP_MA='SS1',
+                                     DX = 0., DZ = 0., DRX = 0., DRY = 0.),
+                           _F( GROUP_NO = 'L1',  DY = 0., DRZ = 0.),
+                           ))
+
+K_ELEM1=CALC_MATR_ELEM(      MODELE=BARRE1,
+                             CARA_ELEM=CARA1,
+                            CHAM_MATER=CHMAT,
+                               OPTION='RIGI_MECA',
+                               CHARGE=GUIDAGE1)
+
+NUM1=NUME_DDL(  MATR_RIGI=K_ELEM1)
+
+#
+K_ASSE1=ASSE_MATRICE(  MATR_ELEM=K_ELEM1,
+                           NUME_DDL=NUM1)
+
+MODESTA1=MODE_STATIQUE(  MATR_RIGI=K_ASSE1,
+                     MODE_STAT=_F(
+                     GROUP_NO=('L12'),
+                     AVEC_CMP = ('DY','DRZ'),
+                                 ))
+
+# parse: -affectation
+
+DS1=[None]*5
+DS2=[None]*5
+DS3=[None]*5
+DS4=[None]*5
+CHS1=[None]*5
+CHS2=[None]*5
+
+# parse: +affectation
+
+for k in range(1,5):
+  DS1[k] = CREA_CHAMP( OPERATION='EXTR', TYPE_CHAM='NOEU_DEPL_R',
+                  RESULTAT= MODESTA1, NUME_ORDRE=k, NOM_CHAM = 'DEPL');
+
+FIN()
diff --git a/Tests/testcomm/f.comm b/Tests/testcomm/f.comm
new file mode 100644 (file)
index 0000000..d15a617
--- /dev/null
@@ -0,0 +1,18 @@
+from Numeric import size
+
+DEBUT()
+
+# Definition des parametres de l'excitation sinusoidale
+freq=1500.0
+periode=1.0/freq
+pas=periode/100.0
+
+LISTTM=DEFI_LIST_REEL(DEBUT=0.0*periode,
+                       INTERVALLE=_F(JUSQU_A=100.0*periode,
+                                     PAS=pas,),);
+
+LISTRD=DEFI_LIST_REEL(DEBUT=(98.0)*periode+pas,
+                       INTERVALLE=_F(JUSQU_A=(100.0)*periode,
+                                     PAS=pas,),);
+
+FIN()
diff --git a/Tests/testcomm/g.comm b/Tests/testcomm/g.comm
new file mode 100644 (file)
index 0000000..f839314
--- /dev/null
@@ -0,0 +1,11 @@
+DEBUT()
+sensible=[2.1E11, 0.3,  1.E-6,   1.E-6,   ]
+
+# parse: -affectation
+n=len(sensible)
+PS=[None]*n
+
+for i in range(n):
+    PS[i]=DEFI_PARA_SENSI(VALE=sensible[i])
+
+FIN()
index b3c8f1d4baabdf45430f858b1425017cc4abaeb5..6984f60b1c53456690f9ea943cc3f41d8ac9039d 100644 (file)
@@ -20,7 +20,7 @@ class TestCase(unittest.TestCase):
       ff=open(f)
       text=ff.read()
       ff.close()
-      if text.find("VISU_EFICAS") != -1:continue
+      if text.find("VISU_EFICAS='NON'") != -1:continue
       for o in ('3','2','1','0','m'):
        f=f[:-1]+o
        if os.path.isfile(f):break
index 850a651e907120fcb3bcc8e396adb06bff55a795..8e7a405369ad45b184690b2cc0a1e9873eda063d 100644 (file)
@@ -17,12 +17,10 @@ class TestCase(unittest.TestCase):
 
    i=0
    for f in glob.glob(os.path.join(ASTERDIR,"z*.comm")):
-      if f == os.path.join(ASTERDIR,"zzzz118c.comm"):continue
-      if f == os.path.join(ASTERDIR,"zzzz118d.comm"):continue
       ff=open(f)
       text=ff.read()
       ff.close()
-      if text.find("VISU_EFICAS") != -1:continue
+      if text.find("VISU_EFICAS='NON'") != -1:continue
       for o in ('3','2','1','0','m'):
        f=f[:-1]+o
        if os.path.isfile(f):break
index 97de2bee28cda659956f7bc57864fbd9773d281b..729c663344808fb10a591cf8dff857d3a56eda0f 100644 (file)
@@ -20,7 +20,7 @@ class TestCase(unittest.TestCase):
       ff=open(f)
       text=ff.read()
       ff.close()
-      if text.find("VISU_EFICAS") != -1:continue
+      if text.find("VISU_EFICAS='NON'") != -1:continue
       for o in ('3','2','1','0','m'):
        f=f[:-1]+o
        if os.path.isfile(f):break
index 85d4d0d2ec6085ebb07d27531ed98dab92ed6347..f0338b29cd1edda79ce0bc88cd2b30ff920203f4 100644 (file)
@@ -20,7 +20,7 @@ class TestCase(unittest.TestCase):
       ff=open(f)
       text=ff.read()
       ff.close()
-      if text.find("VISU_EFICAS") != -1:continue
+      if text.find("VISU_EFICAS='NON'") != -1:continue
       for o in ('3','2','1','0','m'):
        f=f[:-1]+o
        if os.path.isfile(f):break
index 66fcd82924fb8107a983f8f121b4a3fd326a44b7..9d34bdc5df713dea763142feed3082832614d9b1 100644 (file)
@@ -20,7 +20,7 @@ class TestCase(unittest.TestCase):
       ff=open(f)
       text=ff.read()
       ff.close()
-      if text.find("VISU_EFICAS") != -1:continue
+      if text.find("VISU_EFICAS='NON'") != -1:continue
       for o in ('3','2','1','0','m'):
        f=f[:-1]+o
        if os.path.isfile(f):break
index 91d9917d00d02ea84135254819d4d6250240c96e..8b4687fa4feb6368290931d4f8c9f70d9c2f306a 100644 (file)
@@ -20,10 +20,14 @@ class TestCase(unittest.TestCase):
       ff=open(f)
       text=ff.read()
       ff.close()
-      if text.find("VISU_EFICAS") != -1:continue
+      if text.find("VISU_EFICAS='NON'") != -1:continue
       for o in ('3','2','1','0','m'):
        f=f[:-1]+o
-       if os.path.isfile(f):break
+       if os.path.isfile(f):
+          ff=open(f)
+          text=ff.read()
+          ff.close()
+          if text.find("VISU_EFICAS='NON'") == -1: break
       i=i+1
       exec """def test%s(self,file="%s"):
                   self.commtest(file)
index cb47f3a26f53a5918e7265a7b7c5e13e786db69d..c1c458314dc9b1951a284ecef3c7e22bb78c7122 100644 (file)
@@ -20,7 +20,7 @@ class TestCase(unittest.TestCase):
       ff=open(f)
       text=ff.read()
       ff.close()
-      if text.find("VISU_EFICAS") != -1:continue
+      if text.find("VISU_EFICAS='NON'") != -1:continue
       for o in ('3','2','1','0','m'):
        f=f[:-1]+o
        if os.path.isfile(f):break
index 5ade9873f26fa1527652909c433375d36f21f885..df4fab183e2a02eb28cc6b3845207a7a77dc13d9 100644 (file)
@@ -20,10 +20,14 @@ class TestCase(unittest.TestCase):
       ff=open(f)
       text=ff.read()
       ff.close()
-      if text.find("VISU_EFICAS") != -1:continue
+      if text.find("VISU_EFICAS='NON'") != -1:continue
       for o in ('3','2','1','0','m'):
        f=f[:-1]+o
-       if os.path.isfile(f):break
+       if os.path.isfile(f):
+          ff=open(f)
+          text=ff.read()
+          ff.close()
+          if text.find("VISU_EFICAS='NON'") == -1: break
       i=i+1
       exec """def test%s(self,file="%s"):
                   self.commtest(file)
index 91a044805d5ae014bd9f17da81fac70ba9c818c1..8111717b105392e3b5506c547856d1ff3edd07da 100644 (file)
@@ -20,7 +20,7 @@ class TestCase(unittest.TestCase):
       ff=open(f)
       text=ff.read()
       ff.close()
-      if text.find("VISU_EFICAS") != -1:continue
+      if text.find("VISU_EFICAS='NON'") != -1:continue
       for o in ('3','2','1','0','m'):
        f=f[:-1]+o
        if os.path.isfile(f):break
index 60841bd2d91bfeef12d1ab22e5b80c788e7dfcee..890a42a18e9c4d9b3081b6c23334e22581f6c49a 100644 (file)
@@ -20,7 +20,7 @@ class TestCase(unittest.TestCase):
       ff=open(f)
       text=ff.read()
       ff.close()
-      if text.find("VISU_EFICAS") != -1:continue
+      if text.find("VISU_EFICAS='NON'") != -1:continue
       for o in ('3','2','1','0','m'):
        f=f[:-1]+o
        if os.path.isfile(f):break
diff --git a/Tests/testelem/params.comm b/Tests/testelem/params.comm
new file mode 100644 (file)
index 0000000..1745633
--- /dev/null
@@ -0,0 +1,26 @@
+
+
+DEBUT();
+a = 1.0;
+
+b = 3;
+
+c = 15;
+
+d = 5;
+
+x = (1, 2);
+
+y = [3, 4];
+
+z = 'a';
+
+zz = 'v';
+
+t = a;
+
+v = """aaaa
+bbbb""";
+
+
+FIN();
index d904bb657fd19be6a424314a9b07553ab4a1d1bd..6f2011f8d7cd2e73ee21f03d34ee73651c56528b 100644 (file)
@@ -1,6 +1,9 @@
+# coding=utf-8
+
 import os
 import unittest
 import difflib
+import compare
 
 import prefs
 from Editeur import appli
@@ -153,7 +156,8 @@ FIN();
       mcs.set_valeur(mcs.eval_val_item('ACOUSTIQUE'))
       mcs=mcf[2].get_child("b_acoustique").get_child("MODELISATION")
       mcs.set_valeur(mcs.eval_val_item('PLAN'))
-      mcs=add_mcsimp(mcf[2],"GROUP_NO",'GNP3,GNP5,GNP6,GNP7,GNP8,GNP9,GNP10,GNP11,GNP12')
+      #mcs=add_mcsimp(mcf[2],"GROUP_NO",'GNP3,GNP5,GNP6,GNP7,GNP8,GNP9,GNP10,GNP11,GNP12')
+      mcs=add_mcsimp(mcf[2],"GROUP_NO","'GNP3','GNP5','GNP6','GNP7','GNP8','GNP9','GNP10','GNP11','GNP12'")
 
       co.nomme_sd("AFFE1")
 # commande AFFE_MODELE
@@ -338,15 +342,15 @@ FIN();
       mcs=co.get_child("NUME_DDL")
       mcs.set_valeur_co('DDL1')
       mcf=co.get_child("MATR_ASSE")
+      add_mcsimp(mcf[0],"OPTION","RIGI_THER")
       mcs=mcf[0].get_child("MATRICE")
       mcs.set_valeur_co('MAT1')
-      add_mcsimp(mcf[0],"OPTION","RIGI_THER")
 # commentaire
       pos=pos+1
       co=j.addentite("COMMENTAIRE",pos)
       co.set_valeur(" 'MACRO_MATR_ASSE', 'MATR_ASSE', 'MATRICE'  --> uniquesdcopanel")
 
-      assert j.isvalid()
+      assert j.isvalid(),j.report()
 
       text1=app.get_text_JDC(j,'python')
       file=os.path.join(prefs.INSTALLDIR,"Tests/testelem/az.comm")
@@ -354,3 +358,82 @@ FIN();
       text2=f.read()
       f.close()
       assert text1 == text2 , cdiff(text1,text2)
+
+   def test003(self):
+      """ Test de construction du fichier de commandes az.comm de zero"""
+
+      app=appli.STANDALONE(version='v8.2')
+      j=app.newJDC()
+# commande DEBUT
+      co=j.addentite("DEBUT",0)
+# commande FIN
+      co=j.addentite("FIN",1)
+#parametre
+      pos=0
+      pos=pos+1
+      co=add_param(j,pos,"P1","9.8")
+      pos=pos+1
+      co=add_param(j,pos,"P2","sin(P1)")
+# formule
+      pos=pos+1
+      co=j.addentite("FORMULE",pos)
+      co.update_formule_python(("aaa","REEL","a+z","(a,z)"))
+#parametre de formule
+      pos=pos+1
+      co=add_param(j,pos,"P3","aaa(P1,2.)")
+#commande defi_list_reel
+      pos=pos+1
+      co=j.addentite("DEFI_LIST_REEL",pos)
+      add_mcsimp(co,"VALE","1.,2.,3.")
+      co.nomme_sd("LI1")
+#commande defi_list_reel
+      pos=pos+1
+      co=j.addentite("DEFI_LIST_REEL",pos)
+      add_mcsimp(co,"VALE","sin(1.)")
+      co.nomme_sd("LI2")
+#commande defi_list_reel
+      pos=pos+1
+      co=j.addentite("DEFI_LIST_REEL",pos)
+      add_mcsimp(co,"VALE","aaa(1.,2.)")
+      co.nomme_sd("LI3")
+#commande defi_list_reel
+      pos=pos+1
+      co=j.addentite("DEFI_LIST_REEL",pos)
+      add_mcsimp(co,"VALE","sin(1.,2)")
+      co.nomme_sd("LI4")
+#commande defi_list_reel
+      pos=pos+1
+      co=j.addentite("DEFI_LIST_REEL",pos)
+      add_mcsimp(co,"VALE","aaa(1.)")
+      co.nomme_sd("LI5")
+#commande defi_list_reel
+      pos=pos+1
+      co=j.addentite("DEFI_LIST_REEL",pos)
+      add_mcsimp(co,"VALE","1,sin(1.),2")
+      co.nomme_sd("LI6")
+
+      expected="""DEBUT CR validation : SansNom
+   Etape : DEFI_LIST_REEL    ligne : ...
+      !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+      ! Concept retourné non défini !
+      !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+      Mot-clé simple : VALE
+         !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+         ! 'sin(1.,2)' n'est pas d'un type autorisé !
+         !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+      Fin Mot-clé simple : VALE
+   Fin Etape : DEFI_LIST_REEL
+   Etape : DEFI_LIST_REEL    ligne : ...
+      !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+      ! Concept retourné non défini !
+      !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+      Mot-clé simple : VALE
+         !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+         ! 'aaa(1.)' n'est pas d'un type autorisé !
+         !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+      Fin Mot-clé simple : VALE
+   Fin Etape : DEFI_LIST_REEL
+FIN CR validation :SansNom
+"""
+      msg=str( j.report())
+      assert compare.check(expected,msg),cdiff(expected,msg)
index 8c980e8eb759191a860c2b8b76f49b9a38ee00b5..3e6ae647a023d23f1292e37fd1ae211f52a0eda5 100644 (file)
@@ -1,9 +1,12 @@
+# coding=utf-8
 import os
 import unittest
 import difflib
+import compare
 
 import prefs
 from Editeur import appli
+from Accas import AsException
 
 def add_param(j,pos,nom,valeur):
     co=j.addentite("PARAMETRE",pos)
@@ -52,3 +55,84 @@ class TestCase(unittest.TestCase):
       f.close()
       assert text1 == text2 , cdiff(text1,text2)
 
+   def test002(self):
+      """ Test de commentarisation/decommentarisation de macro commande dans fichier az.comm"""
+      app=appli.STANDALONE(version='v8.2')
+      file=os.path.join(prefs.INSTALLDIR,"Tests/testelem/az.comm")
+      j=app.openJDC(file=file)
+      assert j.isvalid(),j.report()
+      # on commente la commande MACRO_MATR_ASSE
+      for co in j.etapes:
+        if co.nom == "MACRO_MATR_ASSE" :break
+      cco=co.get_objet_commentarise(format=app.format_fichier.get())
+      # on decommente la commande MACRO_MATR_ASSE
+      commande,nom = cco.uncomment()
+      assert j.isvalid(),j.report()
+
+   def test003(self):
+      """ Test de commentarisation/decommentarisation de commandes dans fichier az.comm"""
+      app=appli.STANDALONE(version='v8.2')
+      text="""
+DEBUT()
+MA=LIRE_MAILLAGE()
+FIN()
+"""
+      j=app.openTXT(text)
+      assert j.isvalid(),j.report()
+      # on commente la commande LIRE_MAILLAGE
+      co=j.etapes[1]
+      cco=co.get_objet_commentarise(format=app.format_fichier.get())
+      co=j.addentite("LIRE_MAILLAGE",2)
+      test,mess=co.nomme_sd("MA")
+      # on decommente la commande LIRE_MAILLAGE
+      commande,nom = cco.uncomment()
+      expected="""DEBUT CR validation : TEXT
+   Etape : LIRE_MAILLAGE    ligne : ...
+      !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+      ! Concept retourné non défini !
+      !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+   Fin Etape : LIRE_MAILLAGE
+FIN CR validation :TEXT
+"""
+      msg=str( j.report())
+      assert compare.check(expected,msg),cdiff(expected,msg)
+
+   def test004(self):
+      """ Test de commentarisation/decommentarisation de commandes dans fichier az.comm"""
+      app=appli.STANDALONE(version='v8.2')
+      text="""
+DEBUT()
+MA=LIRE_MAILLAGE()
+AFFE_MODELE(MAILLAGE=MA)
+FIN()
+"""
+      j=app.openTXT(text)
+      # on commente la commande LIRE_MAILLAGE
+      co=j.etapes[1]
+      cco=co.get_objet_commentarise(format=app.format_fichier.get())
+      # on commente la commande AFFE_MODELE
+      co=j.etapes[2]
+      cco2=co.get_objet_commentarise(format=app.format_fichier.get())
+      # on decommente la commande AFFE_MODELE
+      commande,nom = cco2.uncomment()
+      assert commande["MAILLAGE"] == None
+
+   def test005(self):
+      """ Test de commentarisation/decommentarisation de commandes dans fichier az.comm"""
+      app=appli.STANDALONE(version='v8.2')
+      text="""
+DEBUT()
+MA=LIRE_MAILLAGE()
+AFFE_MODELE(MAILLAGE=MA)
+FIN()
+"""
+      j=app.openTXT(text)
+      # on commente la commande AFFE_MODELE
+      co=j.etapes[2]
+      cco2=co.get_objet_commentarise(format=app.format_fichier.get())
+      # on commente la commande LIRE_MAILLAGE
+      co=j.etapes[1]
+      cco=co.get_objet_commentarise(format=app.format_fichier.get())
+      # on decommente la commande AFFE_MODELE
+      self.assertRaises(AsException, cco2.uncomment, )
+
diff --git a/Tests/testelem/testjdc4.py b/Tests/testelem/testjdc4.py
new file mode 100644 (file)
index 0000000..8351954
--- /dev/null
@@ -0,0 +1,56 @@
+# coding=utf-8
+import os
+import unittest
+import difflib
+import compare
+
+import prefs
+from Editeur import appli
+from Accas import AsException
+
+def add_param(j,pos,nom,valeur):
+    co=j.addentite("PARAMETRE",pos)
+    co.set_nom(nom)
+    co.set_valeur(valeur)
+    return co
+
+def add_mcsimp(obj,nom,valeur):
+    mcs=obj.get_child(nom,restreint='oui')
+    if mcs is None:
+       pos=obj.get_index_child(nom)
+       mcs=obj.addentite(nom,pos)
+    mcs.set_valeur(mcs.eval_val(valeur))
+    return mcs
+
+def cdiff(text1,text2):
+    return " ".join(difflib.context_diff(text1.splitlines(1),text2.splitlines(1)))
+
+class TestCase(unittest.TestCase):
+   def setUp(self):
+      pass
+
+   def tearDown(self):
+      CONTEXT.unset_current_step()
+
+   i=0
+   for f in ("params.comm",):
+      file=os.path.join(prefs.INSTALLDIR,"Tests/testelem",f)
+      i=i+1
+      exec """def test%s(self,file="%s"):
+                  self.commtest(file)
+""" % (i,file)
+   del i
+
+   def commtest(self,file):
+      """ Test de lecture/ecriture de fichier .comm"""
+      print file
+      app=appli.STANDALONE(version='v8.2')
+      j=app.openJDC(file=file)
+      assert j.isvalid(),j.report()
+
+      text1=app.get_text_JDC(j,'python')
+      f=open(file)
+      text2=f.read()
+      f.close()
+      assert text1 == text2 , cdiff(text1,text2)
+
index c6f90a768f290a8ec97b5b65970d949f8ba70541..25cd7cae07ccefec79a47f5abc6d730ae828d566 100644 (file)
@@ -1,7 +1,9 @@
 # coding=utf-8
+import types
 from Accas import SIMP,ASSD
 class maillage(ASSD):pass
 class maillage_sdaster(ASSD):pass
+from Accas import ValidException
 
 import unittest
 
@@ -241,3 +243,25 @@ Fin Mot-cl
            self.assertEqual(o.isvalid(),valid,
                "erreur sur le test %s %s" % (valeur,valid)+'\n'+str(o.report()))
            if valid: self.assertEqual(o.get_valeur(),valeur)
+
+   def test014(self):
+       class LongStr:
+         def __init__(self,min,max):
+            self.min=min
+            self.max=max
+         def __convert__(self,valeur):
+            if type(valeur) == types.StringType:
+               if self.min < len(valeur) < self.max:return valeur
+            return None
+
+       cata=SIMP(typ=LongStr(5,8),statut='o')
+       liste=(("aaaaaa",1),
+              ("aaaaaaa",1),
+              ("aaaaaaaaaaaaaaa",0),
+              ("aa",0),
+             )
+       for valeur,valid in liste:
+           o=cata(valeur,'mcs',None)
+           self.assertEqual(o.isvalid(),valid,
+                     "erreur sur le test %s %s" % (valeur,valid)+'\n'+str(o.report()))
+           if valid: self.assertEqual(o.get_valeur(),valeur)
index de100f3219c9730513b54d871499cfb757c31305..85a10ee4eab7e12feab40bfa60c20124d1fcc4a1 100644 (file)
@@ -52,3 +52,23 @@ class TestSimpCase(unittest.TestCase):
            #print o.val,o.valeur
            msg="erreur sur le test %s %s" % (valeur,valid)+'\n'+str(o.report())
            self.assertEqual(o.isvalid(),valid,msg=msg)
+
+   def test004(self):
+       cata=SIMP(typ='C',statut='o',max=10)
+       liste=((1,1),("a",0), (1.,1),(('RI',1.,0.),1), (('RI',1,0),1), (1+0j,1),
+              (('RI',Variable('x',1.),0.),1),
+              (Variable('x',1.),1),
+              (Variable('x',1.)+0j,1),
+              ((Variable('x',1.)+0j,1.,0.,Variable('x',1.+2j),Variable('x',Variable('y',1.)+2j)),1),
+              ("('RI',1,0)",0), ("toto",0), (None,0),
+              (Variable('x',(1,2,2+5j)),1),
+              (Variable('x',(1,2,2+5j,5,6,7,8,9,10,11,12)),0),
+              (Variable('x',(1,2,2+5j,5,6,Variable('y',1+4j),8,9,10,11,12)),0),
+              (Variable('x',(1,"aaaa",2+5j,5,6,Variable('y',1+4j),8,9,10,11,12)),0),
+              (1+Variable('x',1.)*1j,1),
+             )
+       for valeur,valid in liste:
+           o=cata(valeur,'mcs',None)
+           self.assertEqual(o.isvalid(),valid,"erreur sur le test %s %s" % (valeur,valid)+'\n'+str(o.report()))
+           if valid: self.assertEqual(o.get_valeur(),valeur)
+
index ce843908e605561732ee3213a94ed3d138fd19f5..a8eb78f0118a2648b2b47f085d854bd79027ab71 100644 (file)
@@ -1,5 +1,6 @@
 # coding=utf-8
 from Accas import *
+from Extensions.param2 import Variable
 
 import unittest
 import compare
@@ -48,6 +49,14 @@ Fin Mot-cl
    ! Mot-clé :  mcs devrait avoir  longueur de la chaine entre 3 et 5 !
    !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 Fin Mot-clé simple : mcs
+"""),
+              (Variable('x',"aaa"),OK),
+              (Variable('x',"aaaaaaaaaaaa"),
+"""Mot-clé simple : mcs
+   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+   ! Mot-clé :  mcs devrait avoir  longueur de la chaine entre 3 et 5 !
+   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+Fin Mot-clé simple : mcs
 """),
              )
        self._test(cata,liste)
@@ -67,6 +76,22 @@ Fin Mot-cl
               (("aaaa","axyz","bbbb","zzz"),OK),
               ("aaaa",OK),("aaaaa",OK),
               ("axyzaa",OK),("bbbbaaa",OK),
+              (("aaa",Variable('x',"bbb")),OK),
+              (("aaa",Variable('x',"aaa")),
+"""Mot-clé simple : mcs
+   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+   ! Mot-clé :  mcs devrait avoir  : pas de présence de doublon dans la liste !
+   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+Fin Mot-clé simple : mcs
+"""),
+              (Variable('x',("aaa","bbb")),OK),
+              (Variable('x',("aaa","bbb","bbb")),
+"""Mot-clé simple : mcs
+   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+   ! Mot-clé :  mcs devrait avoir  : pas de présence de doublon dans la liste !
+   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+Fin Mot-clé simple : mcs
+"""),
              )
        self._test(cata,liste)