/* * File: SimplePatternRecognizerStateTest.java * Authors: Justin Basilico * Company: Sandia National Laboratories * Project: Cognitive Framework Lite * * Copyright May 19, 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.framework.lite; import gov.sandia.cognition.framework.DefaultSemanticLabel; import gov.sandia.cognition.math.matrix.VectorFactory; import junit.framework.*; import gov.sandia.cognition.framework.SemanticLabel; import gov.sandia.cognition.math.matrix.Vector; import java.util.ArrayList; import java.util.List; /** * This class implements JUnit tests for the following classes: * * SimplePatternRecognizerState * * @author Justin Basilico * @since 1.0 */ public class SimplePatternRecognizerStateTest extends TestCase { public SimplePatternRecognizerStateTest( String testName) { super(testName); } public static Test suite() { TestSuite suite = new TestSuite(SimplePatternRecognizerStateTest.class); return suite; } /** * Test of clone method, of class gov.sandia.isrc.cognition.framework.lite.SimplePatternRecognizerState. */ public void testClone() { SemanticLabel a = new DefaultSemanticLabel("a"); SemanticLabel b = new DefaultSemanticLabel("b"); SemanticLabel c = new DefaultSemanticLabel("c"); ArrayList<SemanticLabel> givenLabels = new ArrayList<SemanticLabel>(); givenLabels.add(a); givenLabels.add(b); SimplePatternRecognizerState instance = new SimplePatternRecognizerState(givenLabels); SimplePatternRecognizerState clone = instance.clone(); assertNotNull(clone); assertNotSame(instance, clone); assertNotSame(instance.getLabels(), clone.getLabels()); assertNotSame(instance.getStateVector(), clone.getStateVector()); } /** * Test of getLabels method, of class gov.sandia.isrc.cognition.framework.lite.SimplePatternRecognizerState. */ public void testGetLabels() { SemanticLabel a = new DefaultSemanticLabel("a"); SemanticLabel b = new DefaultSemanticLabel("b"); SemanticLabel c = new DefaultSemanticLabel("c"); ArrayList<SemanticLabel> givenLabels = new ArrayList<SemanticLabel>(); givenLabels.add(a); givenLabels.add(b); SimplePatternRecognizerState instance = new SimplePatternRecognizerState(givenLabels); // This is to make sure that the class actually uses what it is given. List<SemanticLabel> labels = instance.getLabels(); assertNotNull(labels); assertEquals(2, labels.size()); assertEquals(a, labels.get(0)); assertEquals(b, labels.get(1)); assertSame(labels, instance.getLabels()); // This test is to make sure that the getLabels method keeps its own // internal copy. givenLabels.add(c); labels = instance.getLabels(); assertEquals(2, labels.size()); assertFalse(labels.contains(c)); } /** * Test of getStateVector method, of class gov.sandia.isrc.cognition.framework.lite.SimplePatternRecognizerState. */ public void testGetStateVector() { SemanticLabel a = new DefaultSemanticLabel("a"); SemanticLabel b = new DefaultSemanticLabel("b"); ArrayList<SemanticLabel> givenLabels = new ArrayList<SemanticLabel>(); givenLabels.add(a); givenLabels.add(b); SimplePatternRecognizerState instance = new SimplePatternRecognizerState(givenLabels); Vector stateVector = instance.getStateVector(); assertNotNull(stateVector); assertEquals(2, stateVector.getDimensionality()); assertEquals(0.0, stateVector.getElement(0)); assertEquals(0.0, stateVector.getElement(1)); stateVector.setElement(0, 1.0); instance = new SimplePatternRecognizerState(givenLabels, stateVector, false); assertSame(stateVector, instance.getStateVector()); } /** * Test of setLabels method, of class gov.sandia.isrc.cognition.framework.lite.SimplePatternRecognizerState. */ public void testSetLabels() { SemanticLabel a = new DefaultSemanticLabel("a"); SemanticLabel b = new DefaultSemanticLabel("b"); SemanticLabel c = new DefaultSemanticLabel("c"); ArrayList<SemanticLabel> givenLabels = new ArrayList<SemanticLabel>(); givenLabels.add(a); SimplePatternRecognizerState instance = new SimplePatternRecognizerState(givenLabels); List<SemanticLabel> labels = instance.getLabels(); assertNotNull(labels); assertEquals(1, labels.size()); givenLabels.add(b); instance.setLabels(givenLabels); // This is to make sure that the class actually uses what it is given. labels = instance.getLabels(); assertNotNull(labels); assertEquals(2, labels.size()); assertSame(labels, instance.getLabels()); // This test is to make sure that the setLabels method makes its own // internal copy. givenLabels.add(c); labels = instance.getLabels(); assertEquals(2, labels.size()); assertFalse(labels.contains(c)); } /** * Test of setStateVector method, of class gov.sandia.isrc.cognition.framework.lite.SimplePatternRecognizerState. */ public void testSetStateVector() { SemanticLabel a = new DefaultSemanticLabel("a"); SemanticLabel b = new DefaultSemanticLabel("b"); ArrayList<SemanticLabel> givenLabels = new ArrayList<SemanticLabel>(); givenLabels.add(a); givenLabels.add(b); SimplePatternRecognizerState instance = new SimplePatternRecognizerState(givenLabels); Vector vector = VectorFactory.getDefault().createVector(2); instance.setStateVector(vector); assertSame(vector, instance.getStateVector()); } }