### Question:
SingleRangeLimitTransform implements ParameterLimitsTransform { @Override public double transformGradient(double x) { ArgChecker.isTrue(_sign * x >= _sign * _limit, "x not in limit"); double r = _sign * (x - _limit); if (r > EXP_MAX) { return 1.0; } double temp = Math.exp(r); return _sign * temp / (temp - 1); } SingleRangeLimitTransform(double a, LimitType limitType); @Override double inverseTransform(double y); @Override double transform(double x); @Override double inverseTransformGradient(double y); @Override double transformGradient(double x); @Override int hashCode(); @Override boolean equals(Object obj);  }### Answer:
@Test public void testOutOfRange3() { assertThatIllegalArgumentException() .isThrownBy(() -> LOWER_LIMIT.transformGradient(-3)); }
@Test public void testOutOfRange4() { assertThatIllegalArgumentException() .isThrownBy(() -> UPPER_LIMIT.transformGradient(1.01)); }