/* * File: RootBracketExpanderTest.java * Authors: Kevin R. Dixon * Company: Sandia National Laboratories * Project: Cognitive Foundry * * Copyright Feb 5, 2009, 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.learning.algorithm.root; import gov.sandia.cognition.learning.algorithm.minimization.line.LineBracket; import gov.sandia.cognition.learning.algorithm.minimization.line.interpolator.LineBracketInterpolatorTestHarness.CosineFunction; import gov.sandia.cognition.learning.function.scalar.AtanFunction; import java.util.Random; import junit.framework.TestCase; /** * JUnit tests for class RootBracketExpanderTest * @author Kevin R. Dixon */ public class RootBracketExpanderTest extends TestCase { public Random random = new Random( 1 ); /** * Entry point for JUnit tests for class RootBracketExpanderTest * @param testName name of this test */ public RootBracketExpanderTest( String testName) { super(testName); } /** * Test cosine */ public void testCosine() { System.out.println( "Cosine" ); RootBracketExpander instance = new RootBracketExpander(); instance.setInitialGuess( 0.1 ); CosineFunction f = new CosineFunction(); LineBracket bracket = instance.learn( f ); System.out.println( "cos Bracket: " + bracket ); assertTrue( bracket.getLowerBound().getOutput() * bracket.getUpperBound().getOutput() < 0.0 ); } /** * Atan() */ public void testAtan() { System.out.println( "Atan" ); RootBracketExpander instance = new RootBracketExpander(); instance.setInitialGuess( random.nextGaussian() ); AtanFunction f = new AtanFunction(); LineBracket bracket = instance.learn( f ); System.out.println( "atan Bracket: " + bracket ); assertTrue( bracket.getLowerBound().getInput() < 0.0 ); assertTrue( bracket.getUpperBound().getInput() > 0.0 ); } /** * Test of getResult method, of class RootBracketExpander. */ public void testGetResult() { System.out.println( "getResult" ); RootBracketExpander instance = new RootBracketExpander(); assertNull( instance.getResult() ); AtanFunction f = new AtanFunction(); LineBracket bracket = instance.learn( f ); assertNotNull( instance.getResult() ); assertSame( bracket, instance.getResult() ); } /** * Test of getInitialGuess method, of class RootBracketExpander. */ public void testGetInitialGuess() { System.out.println( "getInitialGuess" ); RootBracketExpander instance = new RootBracketExpander(); assertEquals( RootBracketExpander.DEFAULT_INITIAL_GUESS, instance.getInitialGuess() ); } /** * Test of setInitialGuess method, of class RootBracketExpander. */ public void testSetInitialGuess() { System.out.println( "setInitialGuess" ); System.out.println( "getInitialGuess" ); RootBracketExpander instance = new RootBracketExpander(); assertEquals( RootBracketExpander.DEFAULT_INITIAL_GUESS, instance.getInitialGuess() ); double r2 = random.nextGaussian(); instance.setInitialGuess( r2 ); assertEquals( r2, instance.getInitialGuess() ); AtanFunction f = new AtanFunction(); LineBracket bracket = instance.learn( f ); assertEquals( r2, instance.getInitialGuess() ); assertEquals( r2, bracket.getOtherPoint().getInput() ); } /** * Test of getBracket method, of class RootBracketExpander. */ public void testGetBracket() { System.out.println( "getBracket" ); RootBracketExpander instance = new RootBracketExpander(); double r2 = random.nextGaussian(); instance.setInitialGuess( r2 ); assertNull( instance.getBracket() ); assertEquals( r2, instance.getInitialGuess() ); AtanFunction f = new AtanFunction(); LineBracket bracket = instance.learn( f ); assertSame( bracket, instance.getBracket() ); } /** * Test of setBracket method, of class RootBracketExpander. */ public void testSetBracket() { System.out.println( "setBracket" ); RootBracketExpander instance = new RootBracketExpander(); double r2 = random.nextGaussian(); instance.setInitialGuess( r2 ); assertNull( instance.getBracket() ); assertEquals( r2, instance.getInitialGuess() ); AtanFunction f = new AtanFunction(); LineBracket bracket = instance.learn( f ); assertSame( bracket, instance.getBracket() ); instance.setBracket( null ); assertNull( instance.getBracket() ); instance.setBracket( bracket ); assertSame( bracket, instance.getBracket() ); } }