ProductPiecewisePolynomialInterpolator1D extends Interpolator1D { @Override public double[] getNodeSensitivitiesForValue(final Interpolator1DDataBundle data, final Double value) { ArgumentChecker.notNull(value, "value"); ArgumentChecker.notNull(data, "data bundle"); ArgumentChecker.isTrue(data instanceof Interpolator1DPiecewisePoynomialWithExtraKnotsDataBundle, "data should be instance of Interpolator1DPiecewisePoynomialWithExtraKnotsDataBundle"); Interpolator1DPiecewisePoynomialWithExtraKnotsDataBundle polyData = (Interpolator1DPiecewisePoynomialWithExtraKnotsDataBundle) data; return getNodeSensitivitiesForValue(polyData, value, FUNC, SMALL); } ProductPiecewisePolynomialInterpolator1D(PiecewisePolynomialInterpolator baseInterpolator);  ProductPiecewisePolynomialInterpolator1D(PiecewisePolynomialInterpolator baseInterpolator,
      double[] xValuesClamped, double[] yValuesClamped); @Override Double interpolate(Interpolator1DDataBundle data, Double value); @Override double firstDerivative(final Interpolator1DDataBundle data, final Double value); @Override double[] getNodeSensitivitiesForValue(final Interpolator1DDataBundle data, final Double value); @Override Interpolator1DDataBundle getDataBundle(final double[] x, final double[] y); @Override Interpolator1DDataBundle getDataBundleFromSortedArrays(final double[] x, final double[] y);  }
@Test(expectedExceptions = IllegalArgumentException.class) public void nullDataSenseTest() { S_INTERP.getNodeSensitivitiesForValue(null, 1.5); }
@Test(expectedExceptions = IllegalArgumentException.class) public void nullValueSenseTest() { S_INTERP.getNodeSensitivitiesForValue(S_DATA, null); }