1 #@ MODIF sd_cham_elem SD DATE 07/10/2008 AUTEUR PELLET J.PELLET
2 # -*- coding: iso-8859-1 -*-
3 # CONFIGURATION MANAGEMENT OF EDF VERSION
4 # ======================================================================
5 # COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG
6 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
7 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
8 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
9 # (AT YOUR OPTION) ANY LATER VERSION.
11 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
12 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
13 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
14 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
16 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
17 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
18 # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
19 # ======================================================================
22 from SD.sd_titre import sd_titre
24 from SD.sd_ligrel import sd_ligrel
27 class sd_cham_elem(sd_titre):
28 #-------------------------------------
30 CELD = AsVI(docu='CHML', )
31 CELV = AsObject(genr='V', xous='S', type=Parmi('C', 'I', 'K', 'R'), ltyp=Parmi(4,8,16), )
32 CELK = AsVK24(lonmax=7, )
36 # retourne "vrai" si la SD semble exister (et donc qu'elle peut etre vérifiée)
37 return self.CELK.exists
39 def check_1(self, checker):
40 if not self.exists() : return
41 celk=self.CELK.get_stripped()
42 sd2=sd_ligrel(celk[0]); sd2.check(checker)
43 assert celk[1] != '' , celk
44 assert celk[2] in ('ELNO','ELGA','ELEM') , celk
45 assert celk[4] in ('','INF','MOY','SUP') , celk
46 assert celk[5] != '' , celk
47 assert celk[6] in ('MPI_COMPLET','MPI_INCOMPLET') , celk
49 def check_2(self, checker):
50 if not checker._profond : return
51 if not self.exists() : return
53 assert celd[0] > 0 , celd
55 assert ngrel > 0 , celd
57 assert mxsp > 0 , celd
60 for kgrel in range(ngrel) :
61 debugr= celd[4+kgrel]-1
63 modelo= celd[debugr+2]
64 lgcata= celd[debugr+3]
65 lggrel= celd[debugr+4]
67 assert nbel > 0 , (nbel,kgrel)
68 assert modelo >= 0 , (modelo,kgrel)
70 assert lgcata == 0 , (lgcata,kgrel)
71 assert lggrel == 0 , (lggrel,kgrel)
74 assert lgcata > 0 , (lgcata,kgrel)
75 assert lggrel > 0 , (lggrel,kgrel)
76 assert lggrel >= nbel*lgcata , (lggrel,kgrel,nbel,lgcata)
79 for iel in range(nbel) :
80 nbsp =celd[debugr+4+4*iel+1]
81 ncdyn =celd[debugr+4+4*iel+2]
82 lgchel=celd[debugr+4+4*iel+3]
83 adiel =celd[debugr+4+4*iel+4]
84 assert nbsp > 0 , (nbsp,kgrel,iel)
86 assert ncdyn > 0 , (ncdyn,kgrel,iel)
87 assert lgchel == lgcata*nbsp*ncdyn , (lgchel,lgcata,nbsp,ncdyn,kgrel,iel)
89 assert ncdyn == 0 , (ncdyn,kgrel,iel)
90 assert lgchel == lgcata*nbsp , (lgchel,lgcata,nbsp,kgrel,iel)
91 assert adiel > 0 , (adiel,kgrel,iel)