/* * File: DistributionParameterUtilTest.java * Authors: Kevin R. Dixon * Company: Sandia National Laboratories * Project: Cognitive Foundry * * Copyright Mar 2, 2010, Sandia Corporation. * Under the terms of Contract DE-AC04-94AL85000, there is a non-exclusive * license for use of this work by or on behalf of the U.S. Government. * Export of this program may require a license from the United States * Government. See CopyrightHistory.txt for complete details. * */ package gov.sandia.cognition.statistics; import gov.sandia.cognition.collection.CollectionUtil; import gov.sandia.cognition.statistics.distribution.BetaDistribution; import gov.sandia.cognition.statistics.distribution.GammaDistribution; import gov.sandia.cognition.statistics.distribution.UnivariateGaussian; import java.util.Collection; import junit.framework.TestCase; import java.util.Random; /** * Unit tests for DistributionParameterUtilTest. * * @author krdixon */ public class DistributionParameterUtilTest extends TestCase { /** * Random number generator to use for a fixed random seed. */ public final Random RANDOM = new Random( 1 ); /** * Default tolerance of the regression tests, {@value}. */ public final double TOLERANCE = 1e-5; /** * Tests for class DistributionParameterUtilTest. * @param testName Name of the test. */ public DistributionParameterUtilTest( String testName) { super(testName); } /** * Tests the constructors of class DistributionParameterUtilTest. */ public void testConstructors() { System.out.println( "Constructors" ); DistributionParameterUtil instance = new DistributionParameterUtil(); assertNotNull( instance ); } /** * Test of findAll method, of class DistributionParameterUtil. * @throws Exception Can't introspect */ public void testFindAll() throws Exception { System.out.println("findAll"); UnivariateGaussian g = new UnivariateGaussian( RANDOM.nextGaussian(), RANDOM.nextDouble() ); Collection<DistributionParameter<?,UnivariateGaussian>> result = DistributionParameterUtil.findAll(g); assertEquals( 2, result.size() ); assertEquals( "mean", CollectionUtil.getElement(result, 0).getName() ); assertEquals( g.getMean(), CollectionUtil.getElement(result, 0).getValue() ); assertEquals( "variance", CollectionUtil.getElement(result, 1).getName() ); assertEquals( g.getVariance(), CollectionUtil.getElement(result, 1).getValue() ); BetaDistribution beta = new BetaDistribution( RANDOM.nextDouble(), RANDOM.nextDouble() ); Collection<DistributionParameter<?,BetaDistribution>> result2 = DistributionParameterUtil.findAll(beta); assertEquals( 2, result.size() ); assertEquals( "alpha", CollectionUtil.getElement(result2, 0).getName() ); assertEquals( beta.getAlpha(), CollectionUtil.getElement(result2, 0).getValue() ); assertEquals( "beta", CollectionUtil.getElement(result2, 1).getName() ); assertEquals( beta.getBeta(), CollectionUtil.getElement(result2, 1).getValue() ); try { DistributionParameterUtil.findAll(null); fail( "Can't do null" ); } catch (Exception e) { System.out.println( "Good: " + e ); } } }