001 /*
002 * Licensed to the Apache Software Foundation (ASF) under one or more
003 * contributor license agreements. See the NOTICE file distributed with
004 * this work for additional information regarding copyright ownership.
005 * The ASF licenses this file to You under the Apache License, Version 2.0
006 * (the "License"); you may not use this file except in compliance with
007 * the License. You may obtain a copy of the License at
008 *
009 * http://www.apache.org/licenses/LICENSE-2.0
010 *
011 * Unless required by applicable law or agreed to in writing, software
012 * distributed under the License is distributed on an "AS IS" BASIS,
013 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
014 * See the License for the specific language governing permissions and
015 * limitations under the License.
016 */
017 package org.apache.commons.math.stat.descriptive;
018
019 import junit.framework.TestCase;
020
021 /**
022 * Test cases for the {@link UnivariateStatistic} class.
023 * @version $Revision: 720030 $ $Date: 2008-11-23 13:47:50 -0500 (Sun, 23 Nov 2008) $
024 */
025 public abstract class UnivariateStatisticAbstractTest extends TestCase {
026
027 protected double mean = 12.404545454545455d;
028 protected double geoMean = 12.070589161633011d;
029
030 protected double var = 10.00235930735931d;
031 protected double std = Math.sqrt(var);
032 protected double skew = 1.437423729196190d;
033 protected double kurt = 2.377191264804700d;
034
035 protected double min = 8.2d;
036 protected double max = 21d;
037 protected double median = 12d;
038 protected double percentile5 = 8.29d;
039 protected double percentile95 = 20.82d;
040
041 protected double product = 628096400563833396009676.9200400128d;
042 protected double sumLog = 54.7969806116451507d;
043 protected double sumSq = 3595.250d;
044 protected double sum = 272.90d;
045 protected double secondMoment = 210.04954545454547d;
046 protected double thirdMoment = 868.0906859504136;
047 protected double fourthMoment = 9244.080993773481;
048
049 protected double tolerance = 10E-12;
050
051 protected double[] testArray =
052 {12.5, 12, 11.8, 14.2, 14.9, 14.5, 21, 8.2, 10.3, 11.3,
053 14.1, 9.9, 12.2, 12, 12.1, 11, 19.8, 11, 10, 8.8,
054 9, 12.3 };
055
056 public UnivariateStatisticAbstractTest(String name) {
057 super(name);
058 }
059
060 public abstract UnivariateStatistic getUnivariateStatistic();
061
062 public abstract double expectedValue();
063
064 public double getTolerance() {
065 return tolerance;
066 }
067
068 public void testEvaluation() throws Exception {
069 assertEquals(
070 expectedValue(),
071 getUnivariateStatistic().evaluate(testArray),
072 getTolerance());
073 }
074
075 public void testCopy() throws Exception {
076 UnivariateStatistic original = getUnivariateStatistic();
077 UnivariateStatistic copy = original.copy();
078 assertEquals(
079 expectedValue(),
080 copy.evaluate(testArray),
081 getTolerance());
082 }
083
084 }