/*
* File: VectorBasedCognitiveModelInputTest.java
* Authors: Kevin R. Dixon
* Company: Sandia National Laboratories
* Project: Cognitive Framework Lite
*
* Copyright June 25, 2007, 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.framework.lite;
import gov.sandia.cognition.framework.DefaultSemanticIdentifierMap;
import gov.sandia.cognition.framework.DefaultSemanticLabel;
import gov.sandia.cognition.math.matrix.VectorFactory;
import junit.framework.*;
import gov.sandia.cognition.framework.SemanticIdentifier;
import gov.sandia.cognition.math.matrix.Vector;
import java.util.Arrays;
import java.util.Random;
/**
*
* @author Kevin R. Dixon
* @since 2.0
*/
public class VectorBasedCognitiveModelInputTest extends TestCase
{
/** The random number generator for the tests. */
protected Random random = new Random();
public VectorBasedCognitiveModelInputTest(String testName)
{
super(testName);
}
protected void setUp() throws Exception
{
}
protected void tearDown() throws Exception
{
}
public static VectorBasedCognitiveModelInput createInstance(
Random random)
{
int num = (int) (Math.random() * 10) + 1;
return createInstance( num, random );
}
public static VectorBasedCognitiveModelInput createInstance( int num,
Random random)
{
DefaultSemanticIdentifierMap map = new DefaultSemanticIdentifierMap();
SemanticIdentifier[] ids = new SemanticIdentifier[ num ];
for( int i = 0; i < num; i++ )
{
ids[i] = map.addLabel( new DefaultSemanticLabel( String.valueOf( i ) ) );
}
double r = 10.0;
Vector values = VectorFactory.getDefault().createUniformRandom( ids.length, -r, r, random );
return new VectorBasedCognitiveModelInput( ids, values );
}
/**
* Test of clone method, of class gov.sandia.cognition.framework.lite.VectorBasedCognitiveModelInput.
*/
public void testClone()
{
System.out.println("clone");
VectorBasedCognitiveModelInput instance = createInstance(random);
VectorBasedCognitiveModelInput clone = instance.clone();
assertEquals( instance.getValues(), clone.getValues() );
assertNotSame( instance.getValues(), clone.getValues() );
assertTrue(Arrays.equals(instance.getIdentifiers(), clone.getIdentifiers()));
assertNotSame( instance.getIdentifiers(), clone.getIdentifiers() );
}
/**
* Test of getIdentifiers method, of class gov.sandia.cognition.framework.lite.VectorBasedCognitiveModelInput.
*/
public void testGetIdentifiers()
{
System.out.println("getIdentifiers");
VectorBasedCognitiveModelInput instance = createInstance(random);
assertNotNull( instance.getIdentifiers() );
assertEquals( instance.getIdentifiers().length, instance.getValues().getDimensionality() );
}
/**
* Test of setIdentifiers method, of class gov.sandia.cognition.framework.lite.VectorBasedCognitiveModelInput.
*/
public void testSetIdentifiers()
{
System.out.println("setIdentifiers");
VectorBasedCognitiveModelInput instance = createInstance(random);
SemanticIdentifier[] ids = instance.getIdentifiers();
assertNotNull( ids );
instance.setIdentifiers( null );
assertNull( instance.getIdentifiers() );
instance.setIdentifiers( ids );
assertSame( ids, instance.getIdentifiers() );
}
/**
* Test of getValues method, of class gov.sandia.cognition.framework.lite.VectorBasedCognitiveModelInput.
*/
public void testGetValues()
{
System.out.println("getValues");
VectorBasedCognitiveModelInput instance = createInstance(random);
Vector v = instance.getValues();
assertNotNull( v );
assertEquals( v.getDimensionality(), instance.getIdentifiers().length );
}
/**
* Test of setValues method, of class gov.sandia.cognition.framework.lite.VectorBasedCognitiveModelInput.
*/
public void testSetValues()
{
System.out.println("setValues");
VectorBasedCognitiveModelInput instance = createInstance(random);
Vector v = instance.getValues();
assertNotNull( v );
instance.setValues( null );
assertNull( instance.getValues() );
instance.setValues( v );
assertSame( v, instance.getValues() );
}
/**
* Test of getIdentifier method, of class gov.sandia.cognition.framework.lite.VectorBasedCognitiveModelInput.
*/
public void testGetIdentifier()
{
System.out.println("getIdentifier");
VectorBasedCognitiveModelInput instance = createInstance(random);
int N = instance.getNumInputs();
for( int i = 0; i < N; i++ )
{
assertEquals( instance.getIdentifier( i ).getLabel().getName(), String.valueOf( i ) );
}
}
/**
* Test of getNumInputs method, of class gov.sandia.cognition.framework.lite.VectorBasedCognitiveModelInput.
*/
public void testGetNumInputs()
{
System.out.println("getNumInputs");
VectorBasedCognitiveModelInput instance = createInstance(random);
assertEquals( instance.getIdentifiers().length, instance.getNumInputs() );
assertEquals( instance.getValues().getDimensionality(), instance.getNumInputs() );
}
}