Salome HOME
merge de la branche BR_dev_mars_06 (tag V1_10b5) dans la branche principale
[tools/eficas.git] / Tests / testelem / testparseur.py
1 import unittest
2 import difflib
3
4 from convert import parseur_python
5
6 def cdiff(text1,text2):
7         #return " ".join(difflib.unified_diff(text1.splitlines(1),text2.splitlines(1)))
8         return " ".join(difflib.context_diff(text1.splitlines(1),text2.splitlines(1)))
9         #return " ".join(difflib.ndiff(text1.splitlines(1),text2.splitlines(1)))
10
11 class appli:
12       dict_reels={}
13       liste_simp_reel=[]
14
15 class TestCase(unittest.TestCase):
16     def test01(self):
17         text="""
18 MA=LIRE_MAILLAGE()
19 """
20         expected="""MA=LIRE_MAILLAGE()
21
22 """
23         txt = parseur_python.PARSEUR_PYTHON(text).get_texte(appli())
24         assert txt == expected, cdiff(expected,txt)
25
26     def test02(self):
27         text="""
28 MA=LIRE_MAILLAGE()
29 MB=LIRE_MAILLAGE()
30 """
31         expected="""MA=LIRE_MAILLAGE()
32
33 MB=LIRE_MAILLAGE()
34
35 """
36         txt = parseur_python.PARSEUR_PYTHON(text).get_texte(appli())
37         assert txt == expected, cdiff(expected,txt)
38
39     def test03(self):
40         text="""
41 a=1.2
42 b=4
43 c="aa"
44 d=5 # parametre d
45 MA=LIRE_MAILLAGE()
46 MB=LIRE_MAILLAGE()
47 """
48         expected=r'''a = PARAMETRE(nom='a',valeur=1.2)
49 b = PARAMETRE(nom='b',valeur=4)
50 c = PARAMETRE(nom='c',valeur="aa")
51 COMMENTAIRE(' parametre d\n')
52 d = PARAMETRE(nom='d',valeur=5 )
53 MA=LIRE_MAILLAGE()
54
55 MB=LIRE_MAILLAGE()
56
57 '''
58         txt = parseur_python.PARSEUR_PYTHON(text).get_texte(appli())
59         assert txt == expected, cdiff(expected,txt)
60
61     def test04(self):
62         text='''
63 DEBUT();
64 a = 1.0;
65 b = 3;
66 c = 15;
67 d = 5;
68 x = (1, 2);
69 y = [3, 4];
70 y2 = (y * 2);
71 z = 'a';
72 zz = 'v';
73 t = a;
74 v = """aaaa
75 bbbb""";
76 xx = ceil(sqrt(d));
77 yy = cos(3.1);
78 ax = sin(2);
79 bx = cos(xx);
80 cx = sin(xx);
81 zy = y[1];
82 FIN();
83 '''
84         expected='''DEBUT();
85
86 a = PARAMETRE(nom='a',valeur= 1.0)
87 b = PARAMETRE(nom='b',valeur= 3)
88 c = PARAMETRE(nom='c',valeur= 15)
89 d = PARAMETRE(nom='d',valeur= 5)
90 x = PARAMETRE(nom='x',valeur= (1, 2))
91 y = PARAMETRE(nom='y',valeur= [3, 4])
92 y2 = PARAMETRE(nom='y2',valeur= (y * 2))
93 z = PARAMETRE(nom='z',valeur= 'a')
94 zz = PARAMETRE(nom='zz',valeur= 'v')
95 t = PARAMETRE(nom='t',valeur= a)
96 v = PARAMETRE(nom='v',valeur= """aaaa
97 bbbb""")
98 xx = PARAMETRE(nom='xx',valeur= ceil(sqrt(d)))
99 yy = PARAMETRE(nom='yy',valeur= cos(3.1))
100 ax = PARAMETRE(nom='ax',valeur= sin(2))
101 bx = PARAMETRE(nom='bx',valeur= cos(xx))
102 cx = PARAMETRE(nom='cx',valeur= sin(xx))
103 zy = PARAMETRE(nom='zy',valeur= y[1])
104 FIN();
105
106 '''
107         txt = parseur_python.PARSEUR_PYTHON(text).get_texte(appli())
108         assert txt == expected, cdiff(expected,txt)