Salome HOME
dernieres modifs
[tools/eficas.git] / Tests / testelem / testvalidator1.py
1 # coding=utf-8
2 from Accas import *
3
4 import unittest
5
6 class myparam:
7     def __init__(self,valeur):
8         self.valeur=valeur
9     def __adapt__(self,protocol):
10         return protocol.adapt(self.valeur)
11
12 from Noyau.N_VALIDATOR import listProto,TypeProtocol,IntoProtocol
13 class param:
14     def __init__(self,valeur):
15         self.valeur=valeur
16
17 def hasvaleur(obj,protocol,**args):
18     return protocol.adapt(obj.valeur)
19
20 listProto.register(param,hasvaleur)
21 TypeProtocol.register(param,hasvaleur)
22 IntoProtocol.register(param,hasvaleur)
23 OrdList.register(param,hasvaleur)
24
25 class TestValidCase(unittest.TestCase):
26    def setUp(self):
27        pass
28
29    def tearDown(self):
30        pass
31
32    def _test(self,cata,liste):
33        for valeur,valid in liste:
34            o=cata(valeur,'mcs',None)
35            msg=None
36            if valid != o.isvalid() :
37               if not valid:
38                  msg="erreur : le mot cle devrait etre invalide. valeur = %s, valid = %s " % (valeur,valid)
39               else:
40                  msg="erreur : le mot cle devrait etre valide. valeur = %s, valid = %s " % (valeur,valid) + '\n' + str(o.report())
41            self.assertEqual(o.isvalid(),valid,msg)
42            if valid: 
43               self.assertEqual(o.get_valeur(),valeur)
44
45    def test001(self):
46        cata=SIMP(typ='TXM',validators=LongStr(3,5))
47        liste=(("aa",0),("aaa",1),
48               ("aaaa",1),("aaaaa",1),
49               ("axyzaa",0),("bbbbaaa",0),
50              )
51        self._test(cata,liste)
52
53    def test002(self):
54        cata=SIMP(statut='o',typ='TXM',min=1,max=4,validators=LongStr(3,5))
55        liste=(
56               ("aa",0),("aaa",1),
57               (("aaaa","aaaaa","axyzaa","bbbbaaa","zzz"),0),
58               (("aaaa","aaaaa","axyz","bbbb","zzz"),0),
59               (("aaaa","axyz","bbbb","zzz"),1),
60               ("aaaa",1),("aaaaa",1),
61               ("axyzaa",0),("bbbbaaa",0),
62               (("aaaa",param("axyz"),"bbbb","zzz"),1),
63              )
64        self._test(cata,liste)
65
66    def test003(self):
67        cata=SIMP(statut='o',typ='I',validators=TypeVal(1))
68        liste=(
69                (1,1),(1.1,0),(1.25,0),
70                (('RI',0.,1.),0),
71              )
72        self._test(cata,liste)
73
74    def test004(self):
75        cata=SIMP(statut='o',typ='I',into=(1,2,3,4,5,6),max='**',validators=OrdList("croissant"))
76        liste=(
77               (1,1),((1,3),1),
78               ((3,1),0),
79               ((1,3,2),0),
80               ((1.1,2.),0),
81               (myparam((1.,2.)),0),
82               (myparam((1,2)),1),
83               (myparam((1,2,3,4,5)),1),
84               (myparam((1,2,myparam(3),4,5)),1),
85               (myparam((1,2,myparam(6),4,5)),0),
86               (param((1.,2.)),0),
87               (param((1,2)),1),
88               (param((1,2,3,4,5)),1),
89               (param((1,2,myparam(3),4,5)),1),
90               (param((1,2,param(3),4,5)),1),
91               (param((1,2,param(6),4,5)),0),
92              )
93        self._test(cata,liste)
94
95    def test005(self):
96        cata=SIMP(statut='o',typ='I',validators=EnumVal((3,2,4,8,9,15)))
97        liste=(
98               (1,0),(9,1),(15,1),
99               (50,0),(1.25,0),
100              )
101        self._test(cata,liste)
102
103    def test006(self):
104        cata=SIMP(statut='o',typ='I',max='**',validators=OrdList("croissant"))
105        liste=(
106               (1,1),((1,3),1),
107               ((50,60,701),1),
108               ((100,50,60,701),0),
109               ((3,1),0),
110               ((1,3,2),0),
111               ((1.1,2.),0),
112              )
113        self._test(cata,liste)
114
115    def test007(self):
116        cata=SIMP(statut='o',typ='I',min=1,max=4,validators=PairVal())
117        liste=(
118              (2,1),((2,4),1),
119              (3,0),((3,4),0),
120              ((2,3),0),((3,5),0),
121              ((2,4,6,8),1),
122              ((2,4,6,8,10),0),
123              )
124        self._test(cata,liste)
125
126    def test008(self):
127        cata=SIMP(statut='o',typ='I',validators=RangeVal(3,15))
128        liste=(
129              (2,0),(4,1),
130              (16,0),(14,1),
131              )
132        self._test(cata,liste)
133
134    def test009(self):
135        cata=SIMP(statut='o',typ='I',max='**',validators=CardVal(3,15))
136        liste=(
137              (2,0),((2,4),0),
138              (3,0),((3,4),0),
139              ((2,3),0),((3,5),0),
140              ((2,4,6,8),1),
141              ((2,4,6,8,10),1),
142              )
143        self._test(cata,liste)
144
145    def test010(self):
146        cata=SIMP(statut='o',typ='TXM',min=1,max=6,validators=NoRepeat())
147        liste=(
148               ("aa",1),("aaa",1),
149               (("aaaa","aaaaa","axyzaa","bbbbaaa","zzz"),1),
150               (("aaaa","aaaa","axyz","bbbb","zzz"),0),
151               (("aaaa","axyz","bbbb","zzz"),1),
152               ("aaaa",1),("aaaaa",1),
153               ("axyzaa",1),("bbbbaaa",1),
154               (("aaaa",param("aaaaa"),"axyzaa","bbbbaaa","zzz"),1),
155               (("aaaa",param("aaaa"),"axyzaa","bbbbaaa","zzz"),0),
156               (("aaaa",myparam("aaaaa"),"axyzaa","bbbbaaa","zzz"),1),
157               (("aaaa",myparam("aaaa"),"axyzaa","bbbbaaa","zzz"),0),
158              )
159        self._test(cata,liste)
160
161    def test011(self):
162        cata=SIMP(statut='o',typ='TXM',min=1,max=6,into =( "TUTU","TATA","CCCC"),validators=NoRepeat())
163        liste=(
164               ("TUTU",1),("TATA",1),
165               (("TUTU","TATA","CCCC"),1),
166               (("TUTU","TATA","CCCC","TUTU","TATA","CCCC"),0),
167               (("TUTU","TATA","CCCC","TUTU","TATA","CCCC","TUTU","TATA","CCCC"),0),
168              )
169        self._test(cata,liste)
170
171    def test012(self):
172        cata=SIMP(statut='o',typ='I',min=1,max=1,into =( 1,2,3),validators=PairVal())
173        liste=(
174               (2,1),(1,0),(3,0),(4,0),
175               (param(2),1),(param(3),0),
176               (myparam(2),1),(myparam(3),0),
177              )
178        self._test(cata,liste)
179
180    def test013(self):
181        cata=SIMP(statut='o',typ='I',min=1,max=1,validators=PairVal())
182        liste=(
183               (2,1),(1,0),(3,0),(4,1),
184              )
185        self._test(cata,liste)
186
187    def test014(self):
188        cata=SIMP(statut='o',typ='I',min=1,max=6,validators=PairVal())
189        liste=(
190               (2,1),(1,0),(3,0),(4,1),
191               ((2,4,6,8),1),((2,4,6,8,10,12,14),0),
192               ((2,4,6,8,7),0),((2,4,6,8,10,12,14,23),0),
193              )
194        self._test(cata,liste)
195
196    def test015(self):
197        """Test du validateur OU : pas de doublon OU valeur paire """
198        cata=SIMP(statut='o',typ='I',min=1,max=6,validators=(NoRepeat(),PairVal()))
199        liste=(
200               (2,1),(1,1),(3,1),(4,1),
201               ((2,4,6,8),1),((2,4,6,8,10,12,14),0),
202               ((1,2,3,4),1),
203               ((2,4,6,8,7),1),((2,4,6,8,10,12,14,23),0),
204              )
205        self._test(cata,liste)
206
207    def test016(self):
208        """Test du validateur ET : pas de doublon ET valeur paire """
209        cata=SIMP(statut='o',typ='I',min=1,max=6,validators=[NoRepeat(),PairVal()])
210        liste=( (2,1),(None,0),((1,3,5),0),
211                ((2,4,6),1),
212                ((1,3,5),0),
213                ((2,4,4),0),
214              )
215        self._test(cata,liste)