diff --git a/baybe/constraints/continuous.py b/baybe/constraints/continuous.py index 4675ac9d1..ce70d00c7 100644 --- a/baybe/constraints/continuous.py +++ b/baybe/constraints/continuous.py @@ -219,7 +219,6 @@ def get_threshold(self, parameter: NumericalContinuousParameter) -> Interval: * If lower < 0 and upper = 0, any value v with lower < v <= upper are treated zero. - Args: parameter: The parameter object. @@ -229,12 +228,18 @@ def get_threshold(self, parameter: NumericalContinuousParameter) -> Interval: Raises: ValueError: when parameter_name is not present in parameter list of this constraint. + ValueError: when parameter bounds do not cover zero. """ if parameter.name not in self.parameters: raise ValueError( f"The given parameter with name: {parameter.name} cannot " f"be found in the parameter list: {self.parameters}." ) + if parameter.bounds.contains(0.0): + raise ValueError( + f"The bounds of the given parameter must cover zero but its bounds " + f"are ({parameter.bounds.lower}, {parameter.bounds.upper})." + ) return Interval( lower=self.relative_threshold * parameter.bounds.lower,