Added missing throws declarations. JIRA: MATH-854.

git-svn-id: https://svn.apache.org/repos/asf/commons/proper/math/trunk@1382537 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Phil Steitz 2012-09-09 16:43:27 +00:00
parent f947c72da7
commit 9e69a34008
4 changed files with 52 additions and 29 deletions

View File

@ -18,6 +18,7 @@ package org.apache.commons.math3.stat.descriptive.rank;
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 AbstractStorelessUnivariateStatistic implements Seriali
* 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 AbstractStorelessUnivariateStatistic implements Seriali
* 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 AbstractStorelessUnivariateStatistic implements Seriali
* @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 AbstractStorelessUnivariateStatistic implements Seriali
@Override
public Max copy() {
Max result = new Max();
// No try-catch or advertised exception because args are non-null
copy(this, result);
return result;
}

View File

@ -18,6 +18,8 @@ package org.apache.commons.math3.stat.descriptive.rank;
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 implements Serializable {
* 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 implements Serializable {
* 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);
}

View File

@ -18,6 +18,7 @@ package org.apache.commons.math3.stat.descriptive.rank;
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 AbstractStorelessUnivariateStatistic implements Seriali
* 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 AbstractStorelessUnivariateStatistic implements Seriali
* 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 AbstractStorelessUnivariateStatistic implements Seriali
* @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 AbstractStorelessUnivariateStatistic implements Seriali
@Override
public Min copy() {
Min result = new Min();
// No try-catch or advertised exception - args are non-null
copy(this, result);
return result;
}

View File

@ -19,6 +19,7 @@ package org.apache.commons.math3.stat.descriptive.rank;
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 AbstractUnivariateStatistic implements Serializa
* 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 AbstractUnivariateStatistic implements Serializa
* 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 AbstractUnivariateStatistic implements Serializa
/** {@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 AbstractUnivariateStatistic implements Serializa
* 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 AbstractUnivariateStatistic implements Serializa
* <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 AbstractUnivariateStatistic implements Serializa
* @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 AbstractUnivariateStatistic implements Serializa
* <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 AbstractUnivariateStatistic implements Serializa
* @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 AbstractUnivariateStatistic implements Serializa
* <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 AbstractUnivariateStatistic implements Serializa
* @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 AbstractUnivariateStatistic implements Serializa
* 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 AbstractUnivariateStatistic implements Serializa
@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;
}