Opened 14 years ago
Last modified 13 years ago
#644 new task
Aviso cuando faltan los atributos necesarios
Reported by: | imendez | Owned by: | Pedro Gea |
---|---|---|---|
Priority: | major | Milestone: | Next |
Component: | General | Keywords: | |
Cc: |
Description
Hola, cuando para modificar algún punto de un modelo (una constraint, un prior, etc.) falta un atributo obligatorio, MMS no da ningún aviso y, además, hace la modificación con los valores por defecto.
Creo que debería dar un error ya que no puede ejecutar lo que le está solicitando el usuario.
Por ejemplo, en el siguiente código se pretende poner una constraint a un parámetro:
Real limInf = 0; Real limSup = 1; Real parameter::SetConstraint([[ limInf, limSup ]])
MMS no avisa que los argumentos deberían llamarse, respectivamente, _.inferiorValue y _.superiorValue, y sustituye los límites de la restricción que hubiera antes por los valores por defecto (+INF y -INF)
Al corregir el código todo funciona perfectamente:
Real limInf = 0; Real limSup = 1; Real parameter::SetConstraint([[ Real _.inferiorValue = limInf, Real _.superiorValue = limSup ]])
Un saludo.
De acuerdo, curiosamente es que los dos argumentos:
_.inferiorValue
y_.superiorValue
son opcionales, pero quizá no deberían ser opcionales los dos a la vez.También se observa la necesidad de que las funciones que reciben un nameblock de argumentos pudieran informar adecuadamente de los argumentos obligatorios y opcionales y advertir cuando llegan argumentos inesperados.