You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by ps...@apache.org on 2012/09/09 18:43:28 UTC

svn commit: r1382537 - in /commons/proper/math/trunk/src/main/java/org/apache/commons/math3/stat/descriptive/rank: Max.java Median.java Min.java Percentile.java

Author: psteitz
Date: Sun Sep  9 16:43:27 2012
New Revision: 1382537

URL: http://svn.apache.org/viewvc?rev=1382537&view=rev
Log:
Added missing throws declarations. JIRA: MATH-854.

Modified:
    commons/proper/math/trunk/src/main/java/org/apache/commons/math3/stat/descriptive/rank/Max.java
    commons/proper/math/trunk/src/main/java/org/apache/commons/math3/stat/descriptive/rank/Median.java
    commons/proper/math/trunk/src/main/java/org/apache/commons/math3/stat/descriptive/rank/Min.java
    commons/proper/math/trunk/src/main/java/org/apache/commons/math3/stat/descriptive/rank/Percentile.java

Modified: commons/proper/math/trunk/src/main/java/org/apache/commons/math3/stat/descriptive/rank/Max.java
URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math3/stat/descriptive/rank/Max.java?rev=1382537&r1=1382536&r2=1382537&view=diff
==============================================================================
--- commons/proper/math/trunk/src/main/java/org/apache/commons/math3/stat/descriptive/rank/Max.java (original)
+++ commons/proper/math/trunk/src/main/java/org/apache/commons/math3/stat/descriptive/rank/Max.java Sun Sep  9 16:43:27 2012
@@ -18,6 +18,7 @@ package org.apache.commons.math3.stat.de
 
 import java.io.Serializable;
 
+import org.apache.commons.math3.exception.MathIllegalArgumentException;
 import org.apache.commons.math3.exception.NullArgumentException;
 import org.apache.commons.math3.stat.descriptive.AbstractStorelessUnivariateStatistic;
 import org.apache.commons.math3.util.MathUtils;
@@ -63,8 +64,9 @@ public class Max extends AbstractStorele
      * to the {@code original}
      *
      * @param original the {@code Max} instance to copy
+     * @throws NullArgumentException if original is null
      */
-    public Max(Max original) {
+    public Max(Max original) throws NullArgumentException {
         copy(original, this);
     }
 
@@ -108,7 +110,7 @@ public class Max extends AbstractStorele
      * the input array, or <code>Double.NaN</code> if the designated subarray
      * is empty.
      * <p>
-     * Throws <code>IllegalArgumentException</code> if the array is null or
+     * Throws <code>MathIllegalArgumentException</code> if the array is null or
      * the array index parameters are not valid.</p>
      * <p>
      * <ul>
@@ -122,11 +124,12 @@ public class Max extends AbstractStorele
      * @param begin index of the first array element to include
      * @param length the number of elements to include
      * @return the maximum of the values or Double.NaN if length = 0
-     * @throws IllegalArgumentException if the array is null or the array index
+     * @throws MathIllegalArgumentException if the array is null or the array index
      *  parameters are not valid
      */
     @Override
-    public double evaluate(final double[] values, final int begin, final int length) {
+    public double evaluate(final double[] values, final int begin, final int length)
+    throws MathIllegalArgumentException {
         double max = Double.NaN;
         if (test(values, begin, length)) {
             max = values[begin];
@@ -145,6 +148,7 @@ public class Max extends AbstractStorele
     @Override
     public Max copy() {
         Max result = new Max();
+        // No try-catch or advertised exception because args are non-null
         copy(this, result);
         return result;
     }

Modified: commons/proper/math/trunk/src/main/java/org/apache/commons/math3/stat/descriptive/rank/Median.java
URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math3/stat/descriptive/rank/Median.java?rev=1382537&r1=1382536&r2=1382537&view=diff
==============================================================================
--- commons/proper/math/trunk/src/main/java/org/apache/commons/math3/stat/descriptive/rank/Median.java (original)
+++ commons/proper/math/trunk/src/main/java/org/apache/commons/math3/stat/descriptive/rank/Median.java Sun Sep  9 16:43:27 2012
@@ -18,6 +18,8 @@ package org.apache.commons.math3.stat.de
 
 import java.io.Serializable;
 
+import org.apache.commons.math3.exception.NullArgumentException;
+
 
 /**
  * Returns the median of the available values.  This is the same as the 50th percentile.
@@ -39,6 +41,7 @@ public class Median extends Percentile i
      * Default constructor.
      */
     public Median() {
+        // No try-catch or advertised exception - arg is valid
         super(50.0);
     }
 
@@ -47,8 +50,9 @@ public class Median extends Percentile i
      * to the {@code original}
      *
      * @param original the {@code Median} instance to copy
+     * @throws NullArgumentException if original is null 
      */
-    public Median(Median original) {
+    public Median(Median original) throws NullArgumentException {
         super(original);
     }
 

Modified: commons/proper/math/trunk/src/main/java/org/apache/commons/math3/stat/descriptive/rank/Min.java
URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math3/stat/descriptive/rank/Min.java?rev=1382537&r1=1382536&r2=1382537&view=diff
==============================================================================
--- commons/proper/math/trunk/src/main/java/org/apache/commons/math3/stat/descriptive/rank/Min.java (original)
+++ commons/proper/math/trunk/src/main/java/org/apache/commons/math3/stat/descriptive/rank/Min.java Sun Sep  9 16:43:27 2012
@@ -18,6 +18,7 @@ package org.apache.commons.math3.stat.de
 
 import java.io.Serializable;
 
+import org.apache.commons.math3.exception.MathIllegalArgumentException;
 import org.apache.commons.math3.exception.NullArgumentException;
 import org.apache.commons.math3.stat.descriptive.AbstractStorelessUnivariateStatistic;
 import org.apache.commons.math3.util.MathUtils;
@@ -63,8 +64,9 @@ public class Min extends AbstractStorele
      * to the {@code original}
      *
      * @param original the {@code Min} instance to copy
+     * @throws NullArgumentException if original is null
      */
-    public Min(Min original) {
+    public Min(Min original) throws NullArgumentException {
         copy(original, this);
     }
 
@@ -108,7 +110,7 @@ public class Min extends AbstractStorele
      * the input array, or <code>Double.NaN</code> if the designated subarray
      * is empty.
      * <p>
-     * Throws <code>IllegalArgumentException</code> if the array is null or
+     * Throws <code>MathIllegalArgumentException</code> if the array is null or
      * the array index parameters are not valid.</p>
      * <p>
      * <ul>
@@ -122,11 +124,12 @@ public class Min extends AbstractStorele
      * @param begin index of the first array element to include
      * @param length the number of elements to include
      * @return the minimum of the values or Double.NaN if length = 0
-     * @throws IllegalArgumentException if the array is null or the array index
+     * @throws MathIllegalArgumentException if the array is null or the array index
      *  parameters are not valid
      */
     @Override
-    public double evaluate(final double[] values,final int begin, final int length) {
+    public double evaluate(final double[] values,final int begin, final int length)
+    throws MathIllegalArgumentException {
         double min = Double.NaN;
         if (test(values, begin, length)) {
             min = values[begin];
@@ -145,6 +148,7 @@ public class Min extends AbstractStorele
     @Override
     public Min copy() {
         Min result = new Min();
+        // No try-catch or advertised exception - args are non-null
         copy(this, result);
         return result;
     }

Modified: commons/proper/math/trunk/src/main/java/org/apache/commons/math3/stat/descriptive/rank/Percentile.java
URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math3/stat/descriptive/rank/Percentile.java?rev=1382537&r1=1382536&r2=1382537&view=diff
==============================================================================
--- commons/proper/math/trunk/src/main/java/org/apache/commons/math3/stat/descriptive/rank/Percentile.java (original)
+++ commons/proper/math/trunk/src/main/java/org/apache/commons/math3/stat/descriptive/rank/Percentile.java Sun Sep  9 16:43:27 2012
@@ -19,6 +19,7 @@ package org.apache.commons.math3.stat.de
 import java.io.Serializable;
 import java.util.Arrays;
 
+import org.apache.commons.math3.exception.MathIllegalArgumentException;
 import org.apache.commons.math3.exception.NullArgumentException;
 import org.apache.commons.math3.exception.OutOfRangeException;
 import org.apache.commons.math3.exception.util.LocalizedFormats;
@@ -103,16 +104,17 @@ public class Percentile extends Abstract
      * value of 50.0.
      */
     public Percentile() {
+        // No try-catch or advertised exception here - arg is valid
         this(50.0);
     }
 
     /**
      * Constructs a Percentile with the specific quantile value.
      * @param p the quantile
-     * @throws IllegalArgumentException  if p is not greater than 0 and less
+     * @throws MathIllegalArgumentException  if p is not greater than 0 and less
      * than or equal to 100
      */
-    public Percentile(final double p) {
+    public Percentile(final double p) throws MathIllegalArgumentException {
         setQuantile(p);
         cachedPivots = null;
     }
@@ -122,8 +124,9 @@ public class Percentile extends Abstract
      * to the {@code original}
      *
      * @param original the {@code Percentile} instance to copy
+     * @throws NullArgumentException if original is null
      */
-    public Percentile(Percentile original) {
+    public Percentile(Percentile original) throws NullArgumentException {
         copy(original, this);
     }
 
@@ -141,7 +144,8 @@ public class Percentile extends Abstract
 
     /** {@inheritDoc} */
     @Override
-    public void setData(final double[] values, final int begin, final int length) {
+    public void setData(final double[] values, final int begin, final int length)
+    throws MathIllegalArgumentException {
         if (values == null) {
             cachedPivots = null;
         } else {
@@ -155,11 +159,14 @@ public class Percentile extends Abstract
      * Returns the result of evaluating the statistic over the stored data.
      * <p>
      * The stored array is the one which was set by previous calls to
+     * {@link #setData(double[])}
      * </p>
      * @param p the percentile value to compute
      * @return the value of the statistic applied to the stored data
+     * @throws MathIllegalArgumentException if p is not a valid quantile value
+     * (p must be greater than 0 and less than or equal to 100)
      */
-    public double evaluate(final double p) {
+    public double evaluate(final double p) throws MathIllegalArgumentException {
         return evaluate(getDataRef(), p);
     }
 
@@ -175,7 +182,7 @@ public class Percentile extends Abstract
      * <code>0</code></li>
      * <li>Returns (for any value of <code>p</code>) <code>values[0]</code>
      *  if <code>values</code> has length <code>1</code></li>
-     * <li>Throws <code>IllegalArgumentException</code> if <code>values</code>
+     * <li>Throws <code>MathIllegalArgumentException</code> if <code>values</code>
      * is null or p is not a valid quantile value (p must be greater than 0
      * and less than or equal to 100) </li>
      * </ul></p>
@@ -186,10 +193,11 @@ public class Percentile extends Abstract
      * @param values input array of values
      * @param p the percentile value to compute
      * @return the percentile value or Double.NaN if the array is empty
-     * @throws IllegalArgumentException if <code>values</code> is null
+     * @throws MathIllegalArgumentException if <code>values</code> is null
      *     or p is invalid
      */
-    public double evaluate(final double[] values, final double p) {
+    public double evaluate(final double[] values, final double p)
+    throws MathIllegalArgumentException {
         test(values, 0, 0);
         return evaluate(values, 0, values.length, p);
     }
@@ -203,9 +211,8 @@ public class Percentile extends Abstract
      * <li>Returns <code>Double.NaN</code> if <code>length = 0</code></li>
      * <li>Returns (for any value of <code>quantile</code>)
      * <code>values[begin]</code> if <code>length = 1 </code></li>
-     * <li>Throws <code>IllegalArgumentException</code> if <code>values</code>
-     * is null,  or <code>start</code> or <code>length</code>
-     * is invalid</li>
+     * <li>Throws <code>MathIllegalArgumentException</code> if <code>values</code>
+     * is null, or <code>start</code> or <code>length</code> is invalid</li>
      * </ul></p>
      * <p>
      * See {@link Percentile} for a description of the percentile estimation
@@ -215,11 +222,12 @@ public class Percentile extends Abstract
      * @param start index of the first array element to include
      * @param length the number of elements to include
      * @return the percentile value
-     * @throws IllegalArgumentException if the parameters are not valid
+     * @throws MathIllegalArgumentException if the parameters are not valid
      *
      */
     @Override
-    public double evaluate( final double[] values, final int start, final int length) {
+    public double evaluate(final double[] values, final int start, final int length)
+    throws MathIllegalArgumentException {
         return evaluate(values, start, length, quantile);
     }
 
@@ -236,7 +244,7 @@ public class Percentile extends Abstract
      * <li>Returns <code>Double.NaN</code> if <code>length = 0</code></li>
      * <li>Returns (for any value of <code>p</code>) <code>values[begin]</code>
      *  if <code>length = 1 </code></li>
-     * <li>Throws <code>IllegalArgumentException</code> if <code>values</code>
+     * <li>Throws <code>MathIllegalArgumentException</code> if <code>values</code>
      *  is null , <code>begin</code> or <code>length</code> is invalid, or
      * <code>p</code> is not a valid quantile value (p must be greater than 0
      * and less than or equal to 100)</li>
@@ -250,16 +258,17 @@ public class Percentile extends Abstract
      * @param begin  the first (0-based) element to include in the computation
      * @param length  the number of array elements to include
      * @return  the percentile value
-     * @throws IllegalArgumentException if the parameters are not valid or the
+     * @throws MathIllegalArgumentException if the parameters are not valid or the
      * input array is null
      */
     public double evaluate(final double[] values, final int begin,
-            final int length, final double p) {
+            final int length, final double p) throws MathIllegalArgumentException {
 
         test(values, begin, length);
 
         if ((p > 100) || (p <= 0)) {
-            throw new OutOfRangeException(LocalizedFormats.OUT_OF_BOUNDS_QUANTILE_VALUE, p, 0, 100);
+            throw new OutOfRangeException(
+                    LocalizedFormats.OUT_OF_BOUNDS_QUANTILE_VALUE, p, 0, 100);
         }
         if (length == 0) {
             return Double.NaN;
@@ -457,12 +466,13 @@ public class Percentile extends Abstract
      * computed when evaluate() is called with no quantile argument).
      *
      * @param p a value between 0 < p <= 100
-     * @throws IllegalArgumentException  if p is not greater than 0 and less
+     * @throws MathIllegalArgumentException  if p is not greater than 0 and less
      * than or equal to 100
      */
-    public void setQuantile(final double p) {
+    public void setQuantile(final double p) throws MathIllegalArgumentException {
         if (p <= 0 || p > 100) {
-            throw new OutOfRangeException(LocalizedFormats.OUT_OF_BOUNDS_QUANTILE_VALUE, p, 0, 100);
+            throw new OutOfRangeException(
+                    LocalizedFormats.OUT_OF_BOUNDS_QUANTILE_VALUE, p, 0, 100);
         }
         quantile = p;
     }
@@ -473,6 +483,7 @@ public class Percentile extends Abstract
     @Override
     public Percentile copy() {
         Percentile result = new Percentile();
+        //No try-catch or advertised exception because args are guaranteed non-null
         copy(this, result);
         return result;
     }