Salome HOME
Merge branch 'master' into V9_merge
[tools/eficas.git] / Tests / testelem / testsimp5.py
1 # coding=utf-8
2 from Accas import SIMP,ASSD
3 from Extensions.param2 import Variable,cos
4
5 import unittest
6
7 class TestSimpCase(unittest.TestCase):
8    def setUp(self):
9        pass
10
11    def tearDown(self):
12        pass
13
14    def test001(self):
15        a=Variable("n",25.6)
16        self.assertEqual(repr(a),"Variable('n',25.6)")
17        self.assertEqual(str(a),"n")
18        self.assertEqual(a.eval(),25.6)
19        b=-a
20        self.assertEqual(str(b),"-(n)")
21        self.assertEqual(b.eval(),-25.6)
22        b=-a*100+3/2
23        self.assertEqual(str(b),'((-(n) * 100) + 1)')
24        self.assertEqual(b.eval(),-2559)
25        b=a/10
26        self.assertEqual(str(b),'(n / 10)')
27        self.assertEqual(b.eval(),2.56)
28        c=Variable('q',[1,a,3])
29        d=c[1]/3
30        self.assertEqual(str(d),'(q[1] / 3)')
31        self.assertEqual(d.eval(),25.6/3)
32        f=cos(d)
33        self.assertEqual(str(f),'cos((q[1] / 3))')
34        self.assertEqual(f.eval(),-0.628288791022798)
35        g=a**2
36        self.assertEqual(str(g),'(n ** 2)')
37        self.assertEqual(g.eval(),655.36000000000013)
38        h=2*Variable("x",2)
39        g=a**h
40        self.assertEqual(str(g),'(n ** (2 * x))')
41        self.assertEqual(g.eval(),429496.72960000008)
42
43    def test003(self):
44        """ Validation d'un parametre (instance de la classe Variable)
45        """
46        cata=SIMP(statut='o',typ='R',max=3)
47        liste=((1,1),(Variable('x',(0.,1.)),1), (1.,1),(Variable('x',(0.,1.)),1), (('RI',1,0),0),
48               (1+0j,0), ("('RI',1,0)",0), ("toto",0), (None,0),
49              )
50        for valeur,valid in liste:
51            o=cata(valeur,'mcs',None)
52            #print o.val,o.valeur
53            msg="erreur sur le test %s %s" % (valeur,valid)+'\n'+str(o.report())
54            self.assertEqual(o.isvalid(),valid,msg=msg)
55
56    def test004(self):
57        cata=SIMP(typ='C',statut='o',max=10)
58        liste=((1,1),("a",0), (1.,1),(('RI',1.,0.),1), (('RI',1,0),1), (1+0j,1),
59               (('RI',Variable('x',1.),0.),1),
60               (Variable('x',1.),1),
61               (Variable('x',1.)+0j,1),
62               ((Variable('x',1.)+0j,1.,0.,Variable('x',1.+2j),Variable('x',Variable('y',1.)+2j)),1),
63               ("('RI',1,0)",0), ("toto",0), (None,0),
64               (Variable('x',(1,2,2+5j)),1),
65               (Variable('x',(1,2,2+5j,5,6,7,8,9,10,11,12)),0),
66               (Variable('x',(1,2,2+5j,5,6,Variable('y',1+4j),8,9,10,11,12)),0),
67               (Variable('x',(1,"aaaa",2+5j,5,6,Variable('y',1+4j),8,9,10,11,12)),0),
68               (1+Variable('x',1.)*1j,1),
69              )
70        for valeur,valid in liste:
71            o=cata(valeur,'mcs',None)
72            self.assertEqual(o.isvalid(),valid,"erreur sur le test %s %s" % (valeur,valid)+'\n'+str(o.report()))
73            if valid: self.assertEqual(o.get_valeur(),valeur)
74
75    def test005(self):
76        t=Variable('t',None)
77        assert len(t) == 0
78
79    def test006(self):
80        cata=SIMP(statut='o',typ='R',val_min=0,val_max=3,max=5)
81        liste=((1,1),("a",0), (1.,1),(('RI',1.,0.),0), (('RI',1,0),0), (1+0j,0),
82               (('RI',Variable('x',1.),0.),0),
83               (Variable('x',1.),1),
84               (Variable('x',1.)+0j,0),
85               ((Variable('x',1.)+0j,1.,0.,Variable('x',1.+2j),Variable('x',Variable('y',1.)+2j)),0),
86               ("('RI',1,0)",0), ("toto",0), (None,0),
87               (Variable('x',(1,2,2+5j)),0),
88               (Variable('x',(1,2,2+5j,5,6,7,8,9,10,11,12)),0),
89               (Variable('x',(1,2,2+5j,5,6,Variable('y',1+4j),8,9,10,11,12)),0),
90               (Variable('x',(1,"aaaa",2+5j,5,6,Variable('y',1+4j),8,9,10,11,12)),0),
91               (1+Variable('x',1.)*1j,0),
92               (Variable('x',4.),0),
93               (4.,0),
94              )
95        for valeur,valid in liste:
96            o=cata(valeur,'mcs',None)
97            self.assertEqual(o.isvalid(),valid,"erreur sur le test %s %s" % (valeur,valid)+'\n'+str(o.report()))
98            if valid: self.assertEqual(o.get_valeur(),valeur)