/* * File: UniformDistributionBayesianEstimatorTest.java * Authors: Kevin R. Dixon * Company: Sandia National Laboratories * Project: Cognitive Foundry * * Copyright Mar 10, 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.bayesian.conjugate; import gov.sandia.cognition.statistics.distribution.ParetoDistribution; import gov.sandia.cognition.statistics.distribution.UniformDistribution; import java.util.Arrays; import java.util.List; /** * Unit tests for UniformDistributionBayesianEstimatorTest. * * @author krdixon */ public class UniformDistributionBayesianEstimatorTest extends ConjugatePriorBayesianEstimatorTestHarness<Double,Double,ParetoDistribution> { /** * Tests for class UniformDistributionBayesianEstimatorTest. * @param testName Name of the test. */ public UniformDistributionBayesianEstimatorTest( String testName) { super(testName); } /** * Tests the constructors of class UniformDistributionBayesianEstimatorTest. */ public void testConstructors() { System.out.println( "Constructors" ); UniformDistributionBayesianEstimator instance = new UniformDistributionBayesianEstimator(); assertNotNull( instance.getInitialBelief() ); UniformDistributionBayesianEstimator i2 = new UniformDistributionBayesianEstimator( instance.getInitialBelief() ); assertSame( instance.getInitialBelief(), i2.getInitialBelief() ); } @Override public UniformDistributionBayesianEstimator createInstance() { return new UniformDistributionBayesianEstimator(); } @Override public void testKnownValues() { System.out.println( "Known Values" ); List<Double> values = Arrays.asList( 1.0, 2.0, 3.0, 6.0, 4.0, 5.0 ); ParetoDistribution prior = new ParetoDistribution( 1.0, 2.0, 0.0 ); UniformDistributionBayesianEstimator instance = new UniformDistributionBayesianEstimator( prior ); assertEquals( 1.0, instance.computeEquivalentSampleSize(prior) ); ParetoDistribution posterior = instance.learn(values); assertEquals( 7.0, posterior.getShape() ); assertEquals( 6.0, posterior.getScale() ); } @Override public UniformDistribution createConditionalDistribution() { double theta = Math.abs( RANDOM.nextGaussian() ); return new UniformDistribution( 0.0, theta ); } }