/*
* File: BayesianRobustLinearRegressionTest.java
* Authors: Kevin R. Dixon
* Company: Sandia National Laboratories
* Project: Cognitive Foundry
*
* Copyright Apr 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.bayesian;
import gov.sandia.cognition.statistics.distribution.InverseGammaDistribution;
import gov.sandia.cognition.statistics.distribution.MultivariateGaussian;
import gov.sandia.cognition.statistics.distribution.MultivariateGaussianInverseGammaDistribution;
/**
* Unit tests for BayesianRobustLinearRegressionTest.
*
* @author krdixon
*/
public class BayesianRobustLinearRegressionTest
extends BayesianRegressionTestHarness<MultivariateGaussianInverseGammaDistribution>
{
/**
* Tests for class BayesianRobustLinearRegressionTest.
* @param testName Name of the test.
*/
public BayesianRobustLinearRegressionTest(
String testName)
{
super(testName);
}
/**
* Tests the constructors of class BayesianRobustLinearRegressionTest.
*/
@Override
public void testConstructors()
{
System.out.println( "Constructors" );
int dim = 10;
BayesianRobustLinearRegression instance =
new BayesianRobustLinearRegression( dim );
assertNotNull( instance.getOutputVariance() );
assertEquals( dim, instance.getWeightPrior().getInputDimensionality() );
BayesianRobustLinearRegression i2 = new BayesianRobustLinearRegression(
instance.getOutputVariance(),
instance.getWeightPrior() );
assertSame( instance.getOutputVariance(), i2.getOutputVariance() );
assertSame( instance.getWeightPrior(), i2.getWeightPrior() );
}
/**
* Test of getWeightPrior method, of class BayesianRobustLinearRegression.
*/
public void testGetWeightPrior()
{
System.out.println("getWeightPrior");
BayesianRobustLinearRegression instance = this.createInstance();
MultivariateGaussian prior = instance.getWeightPrior();
assertNotNull( prior );
}
/**
* Test of setWeightPrior method, of class BayesianRobustLinearRegression.
*/
public void testSetWeightPrior()
{
System.out.println("setWeightPrior");
BayesianRobustLinearRegression instance = this.createInstance();
MultivariateGaussian prior = instance.getWeightPrior();
assertNotNull( instance );
instance.setWeightPrior(null);
assertNull( instance.getWeightPrior() );
instance.setWeightPrior(prior);
assertSame( prior, instance.getWeightPrior() );
}
/**
* Test of getOutputVariance method, of class BayesianRobustLinearRegression.
*/
public void testGetOutputVariance()
{
System.out.println("getOutputVariance");
BayesianRobustLinearRegression instance = this.createInstance();
InverseGammaDistribution ov = instance.getOutputVariance();
assertNotNull( ov );
}
/**
* Test of setOutputVariance method, of class BayesianRobustLinearRegression.
*/
public void testSetOutputVariance()
{
System.out.println("setOutputVariance");
BayesianRobustLinearRegression instance = this.createInstance();
InverseGammaDistribution ov = instance.getOutputVariance();
assertNotNull( ov );
instance.setOutputVariance(null);
assertNull( instance.getOutputVariance() );
instance.setOutputVariance(ov);
assertSame( ov, instance.getOutputVariance() );
}
@Override
public BayesianRobustLinearRegression createInstance()
{
BayesianRobustLinearRegression instance =
new BayesianRobustLinearRegression(DEFAULT_DIM+1);
return instance;
}
/**
* Batch and Incremental Comparison
*/
public void testIncrementalAndBatch()
{
BayesianRobustLinearRegression instance = this.createInstance();
BayesianRobustLinearRegression.IncrementalEstimator incremental =
new BayesianRobustLinearRegression.IncrementalEstimator(
instance.getOutputVariance(), instance.getWeightPrior() );
super.testIncrementalAndBatch(incremental);
}
}