/* * File: NeighborhoodGaussianClusterInitializer.java * Authors: Kevin R. Dixon * Company: Sandia National Laboratories * Project: Cognitive Foundry * * Copyright May 1, 2006, 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.clustering.initializer; import gov.sandia.cognition.learning.algorithm.clustering.cluster.GaussianCluster; import gov.sandia.cognition.math.matrix.VectorFactory; import gov.sandia.cognition.math.matrix.Vector; import java.util.ArrayList; import java.util.Collection; import java.util.Random; import junit.framework.TestCase; /** * * @author Kevin R. Dixon */ public class NeighborhoodGaussianClusterInitializerTest extends TestCase { public NeighborhoodGaussianClusterInitializerTest( String testName) { super(testName); } Random random = new Random( 1 ); /** * Test of getRandomRange method, of class gov.sandia.isrc.learning.vector.NeighborhoodGaussianClusterInitializer. */ public void testGetRandomRange() { System.out.println("getRandomRange"); double defaultCovariance = random.nextDouble(); double randomRange = random.nextDouble(); NeighborhoodGaussianClusterInitializer instance = new NeighborhoodGaussianClusterInitializer( defaultCovariance, randomRange, random ); assertEquals( randomRange, instance.getRandomRange() ); } /** * Test of setRandomRange method, of class gov.sandia.isrc.learning.vector.NeighborhoodGaussianClusterInitializer. */ public void testSetRandomRange() { System.out.println("setRandomRange"); NeighborhoodGaussianClusterInitializer instance = new NeighborhoodGaussianClusterInitializer( random ); double change = random.nextDouble(); instance.setRandomRange( change ); assertEquals( change, instance.getRandomRange() ); } /** * Test of getDefaultCovariance method, of class gov.sandia.isrc.learning.vector.NeighborhoodGaussianClusterInitializer. */ public void testGetDefaultCovariance() { System.out.println("getDefaultCovariance"); double defaultCovariance = random.nextDouble(); double randomRange = random.nextDouble(); NeighborhoodGaussianClusterInitializer instance = new NeighborhoodGaussianClusterInitializer( defaultCovariance, randomRange, random ); assertEquals( defaultCovariance, instance.getDefaultCovariance() ); } /** * Test of setDefaultCovariance method, of class gov.sandia.isrc.learning.vector.NeighborhoodGaussianClusterInitializer. */ public void testSetDefaultCovariance() { System.out.println("setDefaultCovariance"); NeighborhoodGaussianClusterInitializer instance = new NeighborhoodGaussianClusterInitializer( random ); double change = random.nextDouble(); instance.setDefaultCovariance( change ); assertEquals( change, instance.getDefaultCovariance() ); } /** * Test of getRandomGenerator method, of class gov.sandia.isrc.learning.vector.NeighborhoodGaussianClusterInitializer. */ public void testGetRandomGenerator() { System.out.println("getRandomGenerator"); NeighborhoodGaussianClusterInitializer instance = new NeighborhoodGaussianClusterInitializer( random ); assertSame( random, instance.getRandom() ); } /** * Test of setRandomGenerator method, of class gov.sandia.isrc.learning.vector.NeighborhoodGaussianClusterInitializer. */ public void testSetRandomGenerator() { System.out.println("setRandomGenerator"); NeighborhoodGaussianClusterInitializer instance = new NeighborhoodGaussianClusterInitializer( random ); assertSame( random, instance.getRandom() ); Random change = new Random(); instance.setRandom( change ); assertNotSame( random, instance.getRandom() ); assertEquals( change, instance.getRandom() ); } /** * Test of initializeClusters method, of class gov.sandia.isrc.learning.vector.NeighborhoodGaussianClusterInitializer. */ public void testInitializeClusters() { System.out.println("initializeClusters"); NeighborhoodGaussianClusterInitializer instance = new NeighborhoodGaussianClusterInitializer( random ); int numClusters = 10; Collection<Vector> elements = new ArrayList<Vector>(); int numData = 1000; double range = 10; for( int i = 0; i < numData; i++ ) { elements.add( VectorFactory.getDefault().createUniformRandom(5, -range, range, random ) ); } ArrayList<GaussianCluster> clusters = instance.initializeClusters( numClusters, elements ); assertEquals( numClusters, clusters.size() ); } }