### Question:
ExceptionCurveExtrapolator implements CurveExtrapolator, BoundCurveExtrapolator, Serializable { @Override public BoundCurveExtrapolator bind(DoubleArray xValues, DoubleArray yValues, BoundCurveInterpolator interpolator) { return this; } private  ExceptionCurveExtrapolator(); @Override String getName(); @Override BoundCurveExtrapolator bind(DoubleArray xValues, DoubleArray yValues, BoundCurveInterpolator interpolator); @Override double leftExtrapolate(double xValue); @Override double leftExtrapolateFirstDerivative(double xValue); @Override DoubleArray leftExtrapolateParameterSensitivity(double xValue); @Override double rightExtrapolate(double xValue); @Override double rightExtrapolateFirstDerivative(double xValue); @Override DoubleArray rightExtrapolateParameterSensitivity(double xValue); @Override String toString(); static final String NAME; static final ExceptionCurveExtrapolator INSTANCE; }### Answer:
@Test public void test_exceptionThrown() { BoundCurveInterpolator bci = CurveInterpolators.LINEAR.bind(X_DATA, Y_DATA, EXCEPTION_EXTRAPOLATOR, EXCEPTION_EXTRAPOLATOR); assertThatExceptionOfType(UnsupportedOperationException.class).isThrownBy(() -> bci.interpolate(-1d)); assertThatExceptionOfType(UnsupportedOperationException.class).isThrownBy(() -> bci.firstDerivative(-1d)); assertThatExceptionOfType(UnsupportedOperationException.class).isThrownBy(() -> bci.parameterSensitivity(-1d)); assertThatExceptionOfType(UnsupportedOperationException.class).isThrownBy(() -> bci.interpolate(10d)); assertThatExceptionOfType(UnsupportedOperationException.class).isThrownBy(() -> bci.firstDerivative(10d)); assertThatExceptionOfType(UnsupportedOperationException.class).isThrownBy(() -> bci.parameterSensitivity(10d)); }