Salome HOME
PN bug
[tools/eficas.git] / Tests / testelem / cata1.py
1 from Accas import SIMP,FACT,OPER,ASSD,AsException,AsType
2
3 class CATA:
4    def __init__(self):
5       CONTEXT.unset_current_cata()
6       CONTEXT.set_current_cata(self)
7    def enregistre(self,cmd):
8       pass
9
10 cata=CATA()
11
12 class concept(ASSD):pass
13
14 OP1 = OPER(nom='OP1',op=1,sd_prod=concept,
15            a=SIMP(typ='I'),
16            c=SIMP(typ='I',position='global'),
17           )
18
19 class concept2(ASSD):pass
20 class concept3(ASSD):pass
21
22 def op2_prod(TYPE_RESU,**args):
23    if TYPE_RESU == "TRANS" : return concept2
24    if TYPE_RESU == "HARMO" : return concept3
25    raise AsException("type de concept resultat non prevu")
26
27 OP2=OPER(nom='OP2',op=2,sd_prod=op2_prod,
28           TYPE_RESU       =SIMP(statut='f',typ='TXM',defaut="TRANS",into=("TRANS","HARMO") ),
29         )
30
31 def op3_prod(MATR,**args):
32    if AsType(MATR) == concept : return concept2
33    raise AsException("type de concept resultat non prevu")
34
35 OP3=OPER(nom='OP3',op=3,sd_prod=op3_prod,
36            MATR    =SIMP(statut='o',typ=concept),
37         )
38
39 def op4_prod(MESURE,**args):
40    vale=MESURE['NOM_PARA']
41    if  vale == 'INST'   : return concept
42    raise AsException("type de concept resultat non prevu")
43
44 OP4=OPER(nom='OP4',op=4,sd_prod=op4_prod,
45             MESURE  =FACT(statut='o',min=01,max=01,
46                           NOM_PARA  =SIMP(statut='f',typ='TXM',defaut="INST",into=("INST",) ),
47                          )
48         )
49
50 def op5_prod(FFT,**args):
51    if (FFT != None)        :
52       vale=FFT.get_child('FONCTION').get_valeur()
53       if (AsType(vale) == concept )  : return concept
54       if (AsType(vale) == concept2) : return concept2
55    raise AsException("type de concept resultat non prevu")
56
57
58 OP5=OPER(nom='OP5',op=5,sd_prod=op5_prod,
59          FFT =FACT(statut='f',min=1,max=1,
60                     FONCTION =SIMP(statut='o',typ=(concept,concept2) )
61                    ),
62          )
63
64 def op6_prod(FILTRE,**args):
65    vale=FILTRE[0]['MODE']
66    if  AsType(vale) == concept : return concept
67    if  AsType(vale) == concept2 : return concept2
68    raise AsException("type de concept resultat non prevu")
69
70 OP6=OPER(nom='OP6',op=6,sd_prod=op6_prod,
71             FILTRE  =FACT(statut='o',min=01,max='**',
72                           MODE  =SIMP(statut='o',typ=(concept,concept2) ),
73                          )
74         )
75
76