/*
* File: ImportanceSamplerTest.java
* Authors: Kevin R. Dixon
* Company: Sandia National Laboratories
* Project: Cognitive Foundry
*
* Copyright Feb 12, 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.montecarlo;
import gov.sandia.cognition.evaluator.Evaluator;
import gov.sandia.cognition.statistics.ProbabilityFunction;
import gov.sandia.cognition.statistics.distribution.GammaDistribution;
import gov.sandia.cognition.statistics.distribution.UnivariateGaussian;
import gov.sandia.cognition.util.WeightedValue;
/**
* Unit tests for ImportanceSamplerTest.
*
* @author krdixon
*/
public class ImportanceSamplerTest
extends MonteCarloSamplerTestHarness<Double,WeightedValue<Double>,Evaluator<Double,Double>>
{
/**
* Tests for class ImportanceSamplerTest.
* @param testName Name of the test.
*/
public ImportanceSamplerTest(
String testName)
{
super(testName);
NUM_SAMPLES = 100;
}
@Override
public ImportanceSampler<Double> createInstance()
{
double mean = 5.0;
double variance = 5.0;
return new ImportanceSampler<Double>(
new UnivariateGaussian.PDF( mean, variance ) );
}
@Override
public GammaDistribution.PDF createTargetFunctionInstance()
{
double shape = 5.0;
double scale = 1.0;
return new GammaDistribution.PDF( shape, scale );
}
@Override
public void testKnownValues()
{
}
/**
* Tests the constructors of class ImportanceSamplerTest.
*/
public void testConstructors()
{
System.out.println( "Constructors" );
ImportanceSampler<Double> instance = new ImportanceSampler<Double>();
assertNull( instance.getImportanceDistribution() );
GammaDistribution.PDF f = this.createTargetFunctionInstance();
instance = new ImportanceSampler<Double>( f );
assertSame( f, instance.getImportanceDistribution() );
}
/**
* Test of getImportanceDistribution method, of class ImportanceSampler.
*/
public void testGetImportanceDistribution()
{
System.out.println("getImportanceDistribution");
ImportanceSampler<Double> instance = new ImportanceSampler<Double>();
assertNull( instance.getImportanceDistribution() );
}
/**
* Test of setImportanceDistribution method, of class ImportanceSampler.
*/
public void testSetImportanceDistribution()
{
System.out.println("setImportanceDistribution");
ImportanceSampler<Double> instance = new ImportanceSampler<Double>();
assertNull( instance.getImportanceDistribution() );
GammaDistribution.PDF f = this.createTargetFunctionInstance();
instance.setImportanceDistribution(f);
assertSame( f, instance.getImportanceDistribution() );
}
}