mirror of
https://github.com/apache/commons-math.git
synced 2025-03-04 15:39:17 +00:00
Removing BeanListUnivariate example from test cases. Improving ListUnivariate Serialization Example.
git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/math/trunk@141257 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
03ec3fdca5
commit
82b4bc1943
@ -15,7 +15,9 @@
|
||||
*/
|
||||
package org.apache.commons.math.stat.univariate;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import org.apache.commons.beanutils.PropertyUtils;
|
||||
@ -30,15 +32,25 @@ import org.apache.commons.math.util.NumberTransformer;
|
||||
* univariate statistics for a List of Java Beans by property. This
|
||||
* implementation uses beanutils' PropertyUtils to get a simple, nested,
|
||||
* indexed, mapped, or combined property from an element of a List.
|
||||
* @version $Revision: 1.2 $ $Date: 2004/04/24 21:43:26 $
|
||||
* @version $Revision: 1.1 $ $Date: 2004/06/01 21:28:06 $
|
||||
*/
|
||||
public class BeanListUnivariateImpl extends ListUnivariateImpl {
|
||||
public class BeanListUnivariateImpl extends ListUnivariateImpl implements Serializable {
|
||||
|
||||
/** Serializable version identifier */
|
||||
static final long serialVersionUID = -6428201899045406285L;
|
||||
|
||||
/**
|
||||
* propertyName of the property to get from the bean
|
||||
*/
|
||||
private String propertyName;
|
||||
|
||||
/**
|
||||
* No argument Constructor
|
||||
*/
|
||||
public BeanListUnivariateImpl(){
|
||||
this(new ArrayList());
|
||||
}
|
||||
|
||||
/**
|
||||
* Construct a BeanListUnivariate with specified
|
||||
* backing list
|
@ -22,20 +22,34 @@ import junit.framework.Test;
|
||||
import junit.framework.TestCase;
|
||||
import junit.framework.TestSuite;
|
||||
|
||||
import org.apache.commons.math.TestUtils;
|
||||
import org.apache.commons.math.stat.StatUtils;
|
||||
import org.apache.commons.math.beans.VitalStats;
|
||||
import org.apache.commons.math.beans.Patient;
|
||||
|
||||
/**
|
||||
* Test cases for the {@link BeanListUnivariateImpl} class.
|
||||
*
|
||||
* @version $Revision: 1.2 $ $Date: 2004/04/24 21:43:26 $
|
||||
* @version $Revision: 1.1 $ $Date: 2004/06/01 21:28:06 $
|
||||
*/
|
||||
|
||||
public final class BeanListUnivariateImplTest extends TestCase {
|
||||
|
||||
private double one = 1;
|
||||
private float two = 2;
|
||||
private int three = 3;
|
||||
private double mean = 2;
|
||||
private double sumSq = 18;
|
||||
private double sum = 8;
|
||||
private double var = 0.666666666666666666667;
|
||||
private double std = Math.sqrt(var);
|
||||
private double n = 4;
|
||||
private double min = 1;
|
||||
private double max = 3;
|
||||
private double skewness = 0;
|
||||
private double kurtosis = 0.5;
|
||||
private double tolerance = 10E-15;
|
||||
|
||||
|
||||
private List patientList = null;
|
||||
private double tolerance = Double.MIN_VALUE;
|
||||
|
||||
public BeanListUnivariateImplTest(String name) {
|
||||
super(name);
|
||||
@ -121,5 +135,93 @@ public final class BeanListUnivariateImplTest extends TestCase {
|
||||
u.clear();
|
||||
assertEquals("total count",0,u.getN(),tolerance);
|
||||
}
|
||||
|
||||
/** test stats */
|
||||
public void testSerialization() {
|
||||
|
||||
double[] values = {35d, 23d, 42d};
|
||||
|
||||
DescriptiveStatistics u = new BeanListUnivariateImpl( patientList, "age" );
|
||||
assertEquals("total count",3,u.getN(),tolerance);
|
||||
assertEquals("mean", StatUtils.mean(values), u.getMean(), tolerance);
|
||||
assertEquals("min", StatUtils.min(values), u.getMin(), tolerance);
|
||||
assertEquals("max", StatUtils.max(values), u.getMax(), tolerance);
|
||||
assertEquals("var", StatUtils.variance(values), u.getVariance(), tolerance);
|
||||
|
||||
|
||||
DescriptiveStatistics u2 = (DescriptiveStatistics)TestUtils.serializeAndRecover(u);
|
||||
assertEquals("total count",3,u2.getN(),tolerance);
|
||||
assertEquals("mean", StatUtils.mean(values), u2.getMean(), tolerance);
|
||||
assertEquals("min", StatUtils.min(values), u2.getMin(), tolerance);
|
||||
assertEquals("max", StatUtils.max(values), u2.getMax(), tolerance);
|
||||
assertEquals("var", StatUtils.variance(values), u2.getVariance(), tolerance);
|
||||
|
||||
u.clear();
|
||||
assertEquals("total count",0,u.getN(),tolerance);
|
||||
|
||||
u2.clear();
|
||||
assertEquals("total count",0,u2.getN(),tolerance);
|
||||
|
||||
}
|
||||
|
||||
public class VitalStats {
|
||||
|
||||
private Double heartrate;
|
||||
private Double temperature;
|
||||
|
||||
public VitalStats() {
|
||||
}
|
||||
|
||||
public VitalStats(Double heartrate, Double temperature) {
|
||||
setHeartRate( heartrate );
|
||||
setTemperature( temperature );
|
||||
}
|
||||
|
||||
public Double getHeartRate() {
|
||||
return heartrate;
|
||||
}
|
||||
|
||||
public void setHeartRate(Double heartrate) {
|
||||
this.heartrate = heartrate;
|
||||
}
|
||||
|
||||
public Double getTemperature() {
|
||||
return temperature;
|
||||
}
|
||||
|
||||
public void setTemperature(Double temperature) {
|
||||
this.temperature = temperature;
|
||||
}
|
||||
}
|
||||
|
||||
public class Patient {
|
||||
|
||||
private VitalStats vitalStats;
|
||||
private Integer age;
|
||||
|
||||
public Patient() {
|
||||
}
|
||||
|
||||
public Patient(VitalStats vitalStats, Integer age) {
|
||||
setVitalStats( vitalStats );
|
||||
setAge( age );
|
||||
}
|
||||
|
||||
public VitalStats getVitalStats() {
|
||||
return( vitalStats );
|
||||
}
|
||||
|
||||
public void setVitalStats(VitalStats vitalStats) {
|
||||
this.vitalStats = vitalStats;
|
||||
}
|
||||
|
||||
public Integer getAge() {
|
||||
return age;
|
||||
}
|
||||
|
||||
public void setAge(Integer age) {
|
||||
this.age = age;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -15,18 +15,23 @@
|
||||
*/
|
||||
package org.apache.commons.math.stat.univariate;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import org.apache.commons.math.MathException;
|
||||
import org.apache.commons.math.stat.univariate.UnivariateStatistic;
|
||||
import org.apache.commons.math.stat.univariate.AbstractDescriptiveStatistics;
|
||||
import org.apache.commons.math.stat.univariate.DescriptiveStatistics;
|
||||
import org.apache.commons.math.util.DefaultTransformer;
|
||||
import org.apache.commons.math.util.NumberTransformer;
|
||||
|
||||
/**
|
||||
* @version $Revision: 1.3 $ $Date: 2004/05/23 00:33:41 $
|
||||
* @version $Revision: 1.4 $ $Date: 2004/06/01 21:28:06 $
|
||||
*/
|
||||
public class ListUnivariateImpl extends AbstractDescriptiveStatistics {
|
||||
public class ListUnivariateImpl extends DescriptiveStatistics implements Serializable {
|
||||
|
||||
/** Serializable version identifier */
|
||||
static final long serialVersionUID = -8837442489133392138L;
|
||||
|
||||
/**
|
||||
* Holds a reference to a list - GENERICs are going to make
|
||||
@ -40,6 +45,13 @@ public class ListUnivariateImpl extends AbstractDescriptiveStatistics {
|
||||
/** hold the window size **/
|
||||
protected int windowSize = DescriptiveStatistics.INFINITE_WINDOW;
|
||||
|
||||
/**
|
||||
* No argument Constructor
|
||||
*/
|
||||
public ListUnivariateImpl(){
|
||||
this(new ArrayList());
|
||||
}
|
||||
|
||||
/**
|
||||
* Construct a ListUnivariate with a specific List.
|
||||
* @param list The list that will back this DescriptiveStatistics
|
||||
|
@ -18,6 +18,8 @@ package org.apache.commons.math.stat.univariate;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import org.apache.commons.math.TestUtils;
|
||||
|
||||
import junit.framework.Test;
|
||||
import junit.framework.TestCase;
|
||||
import junit.framework.TestSuite;
|
||||
@ -25,10 +27,11 @@ import junit.framework.TestSuite;
|
||||
/**
|
||||
* Test cases for the {@link Univariate} class.
|
||||
*
|
||||
* @version $Revision: 1.2 $ $Date: 2004/05/23 00:56:15 $
|
||||
* @version $Revision: 1.3 $ $Date: 2004/06/01 21:28:06 $
|
||||
*/
|
||||
|
||||
public final class ListUnivariateImplTest extends TestCase {
|
||||
|
||||
private double one = 1;
|
||||
private float two = 2;
|
||||
private int three = 3;
|
||||
@ -135,5 +138,39 @@ public final class ListUnivariateImplTest extends TestCase {
|
||||
|
||||
}
|
||||
|
||||
/** test stats */
|
||||
public void testSerialization() {
|
||||
|
||||
DescriptiveStatistics u = null;
|
||||
|
||||
try {
|
||||
u = DescriptiveStatistics.newInstance(ListUnivariateImpl.class);
|
||||
} catch (InstantiationException e) {
|
||||
fail(e.getMessage());
|
||||
} catch (IllegalAccessException e) {
|
||||
fail(e.getMessage());
|
||||
}
|
||||
|
||||
assertEquals("total count",0,u.getN(),tolerance);
|
||||
u.addValue(one);
|
||||
u.addValue(two);
|
||||
|
||||
DescriptiveStatistics u2 = (DescriptiveStatistics)TestUtils.serializeAndRecover(u);
|
||||
|
||||
u2.addValue(two);
|
||||
u2.addValue(three);
|
||||
|
||||
assertEquals("N",n,u2.getN(),tolerance);
|
||||
assertEquals("sum",sum,u2.getSum(),tolerance);
|
||||
assertEquals("sumsq",sumSq,u2.getSumsq(),tolerance);
|
||||
assertEquals("var",var,u2.getVariance(),tolerance);
|
||||
assertEquals("std",std,u2.getStandardDeviation(),tolerance);
|
||||
assertEquals("mean",mean,u2.getMean(),tolerance);
|
||||
assertEquals("min",min,u2.getMin(),tolerance);
|
||||
assertEquals("max",max,u2.getMax(),tolerance);
|
||||
|
||||
u2.clear();
|
||||
assertEquals("total count",0,u2.getN(),tolerance);
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user