Reduce code duplication.
This commit is contained in:
parent
802058f4ee
commit
22572574d4
|
@ -214,29 +214,17 @@ public class Percentile extends AbstractUnivariateStatistic implements Serializa
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
* Set the data array.
|
* Set the data array.
|
||||||
* @param values data array to store
|
* @param values Data array.
|
||||||
* @param sampleWeights corresponding positive and non-NaN weights of values
|
* Cannot be {@code null}.
|
||||||
* @throws MathIllegalArgumentException if lengths of values and weights are not equal or values or weights is null
|
* @param sampleWeights corresponding positive and non-NaN weights.
|
||||||
|
* Cannot be {@code null}.
|
||||||
|
* @throws MathIllegalArgumentException if lengths of values and weights are not equal.
|
||||||
* @throws org.apache.commons.math4.exception.NotANumberException if any weight is NaN
|
* @throws org.apache.commons.math4.exception.NotANumberException if any weight is NaN
|
||||||
* @throws org.apache.commons.math4.exception.NotStrictlyPositiveException if any weight is not positive
|
* @throws org.apache.commons.math4.exception.NotStrictlyPositiveException if any weight is not positive
|
||||||
*/
|
*/
|
||||||
public void setData(final double[] values, final double[] sampleWeights) {
|
public void setData(final double[] values,
|
||||||
if (values == null || sampleWeights == null) {
|
final double[] sampleWeights) {
|
||||||
throw new MathIllegalArgumentException(LocalizedFormats.NULL_NOT_ALLOWED);
|
setData(values, sampleWeights, 0, values.length);
|
||||||
}
|
|
||||||
|
|
||||||
/** Check length */
|
|
||||||
if (values.length != sampleWeights.length) {
|
|
||||||
throw new MathIllegalArgumentException(LocalizedFormats.LENGTH,
|
|
||||||
values, sampleWeights);
|
|
||||||
}
|
|
||||||
cachedPivots = new int[PIVOTS_HEAP_LENGTH];
|
|
||||||
Arrays.fill(cachedPivots, -1);
|
|
||||||
|
|
||||||
MathArrays.checkPositive(sampleWeights);
|
|
||||||
MathArrays.checkNotNaN(sampleWeights);
|
|
||||||
super.setData(values);
|
|
||||||
weights = sampleWeights.clone();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/** {@inheritDoc} */
|
/** {@inheritDoc} */
|
||||||
|
@ -252,8 +240,10 @@ public class Percentile extends AbstractUnivariateStatistic implements Serializa
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
* Set the data and weights arrays. The input array is copied, not referenced.
|
* Set the data and weights arrays. The input array is copied, not referenced.
|
||||||
* @param values data array to store
|
* @param values Data array.
|
||||||
* @param sampleWeights corresponding positive and non-NaN weights of values
|
* Cannot be {@code null}.
|
||||||
|
* @param sampleWeights corresponding positive and non-NaN weights.
|
||||||
|
* Cannot be {@code null}.
|
||||||
* @param begin the index of the first element to include
|
* @param begin the index of the first element to include
|
||||||
* @param length the number of elements to include
|
* @param length the number of elements to include
|
||||||
* @throws MathIllegalArgumentException if lengths of values and weights are not equal or values or weights is null
|
* @throws MathIllegalArgumentException if lengths of values and weights are not equal or values or weights is null
|
||||||
|
@ -279,7 +269,7 @@ public class Percentile extends AbstractUnivariateStatistic implements Serializa
|
||||||
begin + length, values.length, true);
|
begin + length, values.length, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (values == null || sampleWeights == null) {
|
if (sampleWeights == null) {
|
||||||
throw new MathIllegalArgumentException(LocalizedFormats.NULL_NOT_ALLOWED);
|
throw new MathIllegalArgumentException(LocalizedFormats.NULL_NOT_ALLOWED);
|
||||||
}
|
}
|
||||||
cachedPivots = new int[PIVOTS_HEAP_LENGTH];
|
cachedPivots = new int[PIVOTS_HEAP_LENGTH];
|
||||||
|
|
|
@ -954,7 +954,7 @@ public class PercentileTest extends UnivariateStatisticAbstractTest{
|
||||||
new Percentile().setData(dataset, weights, 0, dataset.length+1);
|
new Percentile().setData(dataset, weights, 0, dataset.length+1);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test(expected=MathIllegalArgumentException.class)
|
@Test(expected=NullPointerException.class)
|
||||||
public void testsetDataInputNull() {
|
public void testsetDataInputNull() {
|
||||||
new Percentile().setData(null, null);
|
new Percentile().setData(null, null);
|
||||||
new Percentile().setData(null, null, 0, 0);
|
new Percentile().setData(null, null, 0, 0);
|
||||||
|
@ -1043,4 +1043,4 @@ public class PercentileTest extends UnivariateStatisticAbstractTest{
|
||||||
p.evaluate(dataset, weights, 0, dataset.length + 1);
|
p.evaluate(dataset, weights, 0, dataset.length + 1);
|
||||||
p.evaluate(dataset, weights, 0, dataset.length + 1, 50);
|
p.evaluate(dataset, weights, 0, dataset.length + 1, 50);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue