### Question:
ClampedPiecewisePolynomialInterpolator extends PiecewisePolynomialInterpolator { @Override public PiecewisePolynomialResultsWithSensitivity interpolateWithSensitivity(double[] xValues, double[] yValues) { ArgChecker.notNull(xValues, "xValues"); ArgChecker.notNull(yValues, "yValues"); ArgChecker.isTrue(xValues.length == yValues.length, "xValues length = yValues length"); double[][] xyValuesAll = getDataTotal(xValues, yValues); return _baseMethod.interpolateWithSensitivity(xyValuesAll[0], xyValuesAll[1]); } ClampedPiecewisePolynomialInterpolator(
      PiecewisePolynomialInterpolator baseMethod,
      double[] xValuesClamped,
      double[] yValuesClamped); @Override PiecewisePolynomialResult interpolate(double[] xValues, double[] yValues); @Override PiecewisePolynomialResult interpolate(double[] xValues, double[][] yValuesMatrix); @Override PiecewisePolynomialResultsWithSensitivity interpolateWithSensitivity(double[] xValues, double[] yValues); @Override PiecewisePolynomialInterpolator getPrimaryMethod();  }### Answer:
@Test public void testInterpolateWithSensitivity() { for (PiecewisePolynomialInterpolator baseInterp : BASE_INTERP) { ClampedPiecewisePolynomialInterpolator interp = new ClampedPiecewisePolynomialInterpolator(baseInterp, X_CLAMPED, Y_CLAMPED); PiecewisePolynomialResultsWithSensitivity computed = interp.interpolateWithSensitivity(X_VALUES, Y_VALUES); PiecewisePolynomialResultsWithSensitivity expected = baseInterp.interpolateWithSensitivity(X_VALUES_TOTAL, Y_VALUES_TOTAL); assertThat(computed).isEqualTo(expected); } }