    1   /*
    2    * Copyright 2003-2004 The Apache Software Foundation.
    3    *
    4    * Licensed under the Apache License, Version 2.0 (the "License");
    5    * you may not use this file except in compliance with the License.
    6    * You may obtain a copy of the License at
    7    *
    8    *      http://www.apache.org/licenses/LICENSE-2.0
    9    *
    10   * Unless required by applicable law or agreed to in writing, software
    11   * distributed under the License is distributed on an "AS IS" BASIS,
    12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    13   * See the License for the specific language governing permissions and
    14   * limitations under the License.
    15   */
    16  package org.apache.commons.math.stat.descriptive.summary;
    17
    18  import junit.framework.Test;
    19  import junit.framework.TestSuite;
    20
    21  import org.apache.commons.math.stat.descriptive.StorelessUnivariateStatisticAbstractTest;
    22  import org.apache.commons.math.stat.descriptive.UnivariateStatistic;
    23
    24  /***
    25   * Test cases for the {@link SumOfSquares} class.
    26   *
    27   * @version $Revision: 1.1 $ $Date: 2004/10/08 05:08:20 $
    28   */
    29  public class SumSqTest extends StorelessUnivariateStatisticAbstractTest{
    30
    31      protected SumOfSquares stat;
    32
    33      /***
    34       * @param name
    35       */
    36      public SumSqTest(String name) {
    37          super(name);
    38      }
    39
    40      public static Test suite() {
    41          TestSuite suite = new TestSuite(SumSqTest.class);
    42          suite.setName("SumSq Tests");
    43          return suite;
    44      }
    45
    46      /* (non-Javadoc)
    47       * @see org.apache.commons.math.stat.descriptive.UnivariateStatisticAbstractTest#getUnivariateStatistic()
    48       */
    49      public UnivariateStatistic getUnivariateStatistic() {
    50          return new SumOfSquares();
    51      }
    52
    53      /* (non-Javadoc)
    54       * @see org.apache.commons.math.stat.descriptive.UnivariateStatisticAbstractTest#expectedValue()
    55       */
    56      public double expectedValue() {
    57          return this.sumSq;
    58      }
    59
    60      public void testSpecialValues() {
    61          SumOfSquares sumSq = new SumOfSquares();
    62          assertTrue(Double.isNaN(sumSq.getResult()));
    63          sumSq.increment(2d);
    64          assertEquals(4d, sumSq.getResult(), 0);
    65          sumSq.increment(Double.POSITIVE_INFINITY);
    66          assertEquals(Double.POSITIVE_INFINITY, sumSq.getResult(), 0);
    67          sumSq.increment(Double.NEGATIVE_INFINITY);
    68          assertEquals(Double.POSITIVE_INFINITY, sumSq.getResult(), 0);
    69          sumSq.increment(Double.NaN);
    70          assertTrue(Double.isNaN(sumSq.getResult()));
    71          sumSq.increment(1);
    72          assertTrue(Double.isNaN(sumSq.getResult()));
    73      }
    74
    75  }