#TODO --> si UserDefined et Uranie alors UserDefined
-# a faire
-class infFrereMC(Valid):
- def __init__(self,nomMCFrere):
- self.nomMCFrere = nomMCFrere
+
+class CataError(Exception):
+ pass
+
+
+class compareAutreMC(Valid) :
+#----------------------------
+ def __init__(self,frere=None):
+ Valid.__init__(self, frere=frere)
+ self.nomFrere=frere
+
+ def set_MCSimp (self, MCSimp):
+ print ('je passe la pour ', self, MCSimp.nom)
+ self.MCSimp=MCSimp
+
+class supValeurProbabiliste(compareAutreMC):
+#-------------------------------------------
+ def convert(self, valeur):
+ try : VP=self.MCSimp.parent.parent.parent.variableDeterministe.valeur
+ except : return valeur
+ if VP == None : return valeur
+ if VP > valeur :
+ raise CataError('la valeur de la variable Probabiliste est superieure a la valeur entree ')
+ return valeur
+
+ def verifItem(self, valeur):
+ try : VP=self.MCSimp.parent.parent.parent.variableDeterministe.valeur
+ except : return valeur
+ if VP== None : return 1
+ if VP > valeur :
+ raise CataError(' la valeur de la variable Probabiliste est superieure a la valeur entree et doit etre inferieure')
+ return 0
+ return 1
+
+ def infoErreurItem(self, valeur):
+ return 'la valeur de la variable Probabiliste est superieure a la valeur entree et doit etre inferieure'
+
+
+class infValeurProbabiliste(compareAutreMC):
+#-------------------------------------------
+ def convert(self, valeur):
+ valeur=valeur
+ try : VP=self.MCSimp.parent.parent.parent.variableDeterministe.valeur
+ except : return valeur
+ VP=self.MCSimp.parent.parent.parent.variableDeterministe.valeur
+ if VP < valeur :
+ raise CataError('la valeur de la variable Probabiliste est inferieure a la valeur entree ')
+ return valeur
+
+ def verifItem(self, valeur):
+ try : VP=self.MCSimp.parent.parent.parent.variableDeterministe.valeur
+ except : return valeur
+ if VP== None : return 1
+ if VP < valeur :
+ raise CataError(' la valeur de la variable Probabiliste est inferieure a la valeur entree et doit etre superieure')
+ return 0
+ return 1
+
+ def infoErreurItem(self, valeur):
+ return 'la valeur de la variable Probabiliste est inferieure a la valeur entree et doit etre superieure'
+
+class infFrereMC(compareAutreMC):
+#-------------------------------
+ def convert(self, valeur):
+ # on sort de cardProto on a une liste
+ valeur=valeur[0]
+ MCFrere=self.MCSimp.parent.getChildOrChildInBloc(self.nomFrere)
+ if not MCFrere : return valeur
+ if MCFrere== None : return valeur
+ if MCFrere.valeur < valeur :
+ raise CataError('la valeur de '+self.nomFrere + ' est inferieure a la valeur entree ')
+ return valeur
+
+ def verifItem(self, valeur):
+ MCFrere=self.MCSimp.parent.getChildOrChildInBloc(self.nomFrere)
+ if not MCFrere : return 1
+ if MCFrere== None : return 1
+ if MCFrere.valeur < valeur :
+ raise CataError('la valeur de '+self.nomFrere + ' est inferieure a la valeur entree et doit etre superieure')
+ return 0
+ return 1
+
+ def infoErreurItem(self, valeur):
+ return 'la valeur de '+self.nomFrere + ' est inferieure a la valeur entree et doit etre superieure'
+
+ def info(self):
+ return 'la valeur de '+self.nomFrere + ' est inferieure a la valeur entree et doit etre superieure'
+
+class supFrereMC(compareAutreMC):
+#--------------------------------
+ def convert(self, valeur):
+ # on sort de cardProto on a une liste
+ valeur=valeur[0]
+ MCFrere=self.MCSimp.parent.getChildOrChildInBloc(self.nomFrere)
+ if not MCFrere : return valeur
+ if MCFrere== None : return valeur
+ if MCFrere.valeur > valeur :
+ raise CataError('la valeur de '+self.nomFrere + ' est superieure a la valeur entree et doit etre inferieure')
+ return valeur
+
+ def verifItem(self, valeur):
+ MCFrere=self.MCSimp.parent.getChildOrChildInBloc(self.nomFrere)
+ if not MCFrere : return 1
+ if MCFrere== None : return 1
+ if MCFrere.valeur > valeur :
+ raise CataError('la valeur de '+self.nomFrere + ' est superieure a la valeur entree et doit etre inferieure')
+ return 0
+ return 1
+
+ def infoErreurItem(self, valeur):
+ return 'la valeur de '+self.nomFrere + ' est superieure a la valeur entree et doit etre inferieure'
+
+ def info(self):
+ return 'la valeur de '+self.nomFrere + ' est superieure a la valeur entree '
#
#listeLoiDistribution= ( #"Beta", #"Exponential", #"Gamma", #"Geometric", #"Gumbel", #"Histogram", #"Laplace", #"Logistic", #"LogNormal", #"MultiNomial",
#"NonCentralStudent", #"Normal", #"Poisson", #"Rayleigh", #"Student", #"Triangular", "TruncatedNormal", "Uniform", "UserDefined",
defaut=0,
#fr = "Borne inferieure du support de la loi | A < B",
#ang = "Support lower bound | A < B",
+ validators=[infFrereMC(frere='B'),infValeurProbabiliste()],
+ #validators=infFrereMC(frere='B')
),
B = SIMP( statut = "o",
defaut=200,
#fr = "Borne superieure du support de la loi | A < B",
#ang = "Support upper bound | A < B",
- #siValide=verifieBorneInUniforme,
- #validators=[infFrereMC('A'),]
+ validators=[infFrereMC(frere='A'),supValeurProbabiliste()],
),
) # Fin BLOC UNIFORM
return UNIFORM
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
+xmlns="http://chercheurs.edf.com/logiciels/RN_EDG"
+xmlns:RN_EDG="http://chercheurs.edf.com/logiciels/RN_EDG"
+targetNamespace="http://chercheurs.edf.com/logiciels/RN_EDG"
+elementFormDefault="qualified" attributeFormDefault="unqualified" version="0">
+ <xs:simpleType name="AccasAssd">
+ <xs:restriction base="xs:string">
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="T_rod_bank_names_n1_tuple">
+ <xs:restriction base="xs:string"/>
+ </xs:simpleType>
+ <xs:simpleType name="T_rod_bank_names_n2_tuple">
+ <xs:restriction base="xs:string"/>
+ </xs:simpleType>
+ <xs:complexType name="T_rod_bank_names">
+ <xs:sequence>
+ <xs:element name="n1" type="T_rod_bank_names_n1_tuple" minOccurs="1" maxOccurs="1"/>
+ <xs:element name="n2" type="T_rod_bank_names_n2_tuple" minOccurs="1" maxOccurs="1"/>
+ </xs:sequence>
+ <xs:attribute name="sdType" type="xs:string" fixed="Tuple"/>
+ </xs:complexType>
+ <xs:complexType name="T_AssemblyDKLibFile" >
+ <xs:sequence>
+ <xs:element name="rod_bank_names" type="RN_EDG:T_rod_bank_names" minOccurs="1" maxOccurs="unbounded"/>
+ </xs:sequence>
+ <xs:attribute name="sdName" type="xs:string"/>
+ <xs:attribute name="sdType" type="xs:string" fixed="ASSD"/>
+ <xs:attribute name="typeUtilisateur" type="xs:string" fixed="_AssemblyDKLibFile"/>
+ </xs:complexType>
+ <xs:element name="RN_EDG" type="RN_EDG:T_RN_EDG"/>
+ <xs:complexType name="T_RN_EDG">
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element name="AssemblyDKLibFile" type="RN_EDG:T_AssemblyDKLibFile" minOccurs="0" maxOccurs="1">
+ <xs:annotation>
+ <xs:documentation>Description of a fuel assembly DKLib file</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ </xs:choice>
+ </xs:complexType>
+</xs:schema>