You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by er...@apache.org on 2013/06/11 00:22:31 UTC
svn commit: r1491625 - in /commons/proper/math/trunk/src:
main/java/org/apache/commons/math3/analysis/polynomials/PolynomialSplineFunction.java
test/java/org/apache/commons/math3/analysis/polynomials/PolynomialSplineFunctionTest.java
Author: erans
Date: Mon Jun 10 22:22:31 2013
New Revision: 1491625
URL: http://svn.apache.org/r1491625
Log:
MATH-991
Method to check whether a point is within the interpolation range.
Modified:
commons/proper/math/trunk/src/main/java/org/apache/commons/math3/analysis/polynomials/PolynomialSplineFunction.java
commons/proper/math/trunk/src/test/java/org/apache/commons/math3/analysis/polynomials/PolynomialSplineFunctionTest.java
Modified: commons/proper/math/trunk/src/main/java/org/apache/commons/math3/analysis/polynomials/PolynomialSplineFunction.java
URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math3/analysis/polynomials/PolynomialSplineFunction.java?rev=1491625&r1=1491624&r2=1491625&view=diff
==============================================================================
--- commons/proper/math/trunk/src/main/java/org/apache/commons/math3/analysis/polynomials/PolynomialSplineFunction.java (original)
+++ commons/proper/math/trunk/src/main/java/org/apache/commons/math3/analysis/polynomials/PolynomialSplineFunction.java Mon Jun 10 22:22:31 2013
@@ -229,4 +229,19 @@ public class PolynomialSplineFunction im
System.arraycopy(knots, 0, out, 0, n + 1);
return out;
}
+
+ /**
+ * Indicates whether a point is within the interpolation range.
+ *
+ * @param x Point.
+ * @return {@code true} if {@code x} is a valid point.
+ */
+ public boolean isValidPoint(double x) {
+ if (x < knots[0] ||
+ x > knots[n]) {
+ return false;
+ } else {
+ return true;
+ }
+ }
}
Modified: commons/proper/math/trunk/src/test/java/org/apache/commons/math3/analysis/polynomials/PolynomialSplineFunctionTest.java
URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/test/java/org/apache/commons/math3/analysis/polynomials/PolynomialSplineFunctionTest.java?rev=1491625&r1=1491624&r2=1491625&view=diff
==============================================================================
--- commons/proper/math/trunk/src/test/java/org/apache/commons/math3/analysis/polynomials/PolynomialSplineFunctionTest.java (original)
+++ commons/proper/math/trunk/src/test/java/org/apache/commons/math3/analysis/polynomials/PolynomialSplineFunctionTest.java Mon Jun 10 22:22:31 2013
@@ -134,6 +134,41 @@ public class PolynomialSplineFunctionTes
}
}
+ @Test
+ public void testIsValidPoint() {
+ final PolynomialSplineFunction spline =
+ new PolynomialSplineFunction(knots, polynomials);
+ final double xMin = knots[0];
+ final double xMax = knots[knots.length - 1];
+
+ double x;
+
+ x = xMin;
+ Assert.assertTrue(spline.isValidPoint(x));
+ // Ensure that no exception is thrown.
+ spline.value(x);
+
+ x = xMax;
+ Assert.assertTrue(spline.isValidPoint(x));
+ // Ensure that no exception is thrown.
+ spline.value(x);
+
+ final double xRange = xMax - xMin;
+ x = xMin + xRange / 3.4;
+ Assert.assertTrue(spline.isValidPoint(x));
+ // Ensure that no exception is thrown.
+ spline.value(x);
+
+ final double small = 1e-8;
+ x = xMin - small;
+ Assert.assertFalse(spline.isValidPoint(x));
+ // Ensure that an exception would have been thrown.
+ try {
+ spline.value(x);
+ Assert.fail("OutOfRangeException expected");
+ } catch (OutOfRangeException expected) {}
+ }
+
/**
* Do linear search to find largest knot point less than or equal to x.
* Implementation does binary search.