/* * File: BagOfWordsTransformTest.java * Authors: Justin Basilico * Company: Sandia National Laboratories * Project: Cognitive Foundry * * Copyright March 23, 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.text.term.vector; import gov.sandia.cognition.math.matrix.SparseVectorFactory; import gov.sandia.cognition.math.matrix.Vector; import gov.sandia.cognition.math.matrix.VectorFactory; import gov.sandia.cognition.math.matrix.mtj.DenseVectorFactoryMTJ; import gov.sandia.cognition.math.matrix.mtj.Vector3; import gov.sandia.cognition.text.term.DefaultTerm; import gov.sandia.cognition.text.term.DefaultTermIndex; import gov.sandia.cognition.text.term.Term; import gov.sandia.cognition.text.term.TermIndex; import java.util.Arrays; import org.junit.Test; import static org.junit.Assert.*; /** * Unit tests for class BagOfWordsTransform. * * @author Justin Basilico * @since 3.0 */ public class BagOfWordsTransformTest { /** * Creates a new test. */ public BagOfWordsTransformTest() { } /** * Test of constructors of class BagOfWordsTransform. */ @Test public void testConstructors() { VectorFactory<?> vectorFactory = SparseVectorFactory.getDefault(); BagOfWordsTransform instance = new BagOfWordsTransform(); assertNotNull(instance.getTermIndex()); assertTrue(instance.getTermIndex() instanceof DefaultTermIndex); assertEquals(0, instance.getTermIndex().getTermCount()); assertSame(vectorFactory, instance.getVectorFactory()); TermIndex termIndex = new DefaultTermIndex(); instance = new BagOfWordsTransform(termIndex); assertSame(termIndex, instance.getTermIndex()); assertSame(vectorFactory, instance.getVectorFactory()); vectorFactory = new DenseVectorFactoryMTJ(); instance = new BagOfWordsTransform(termIndex, vectorFactory); assertSame(termIndex, instance.getTermIndex()); assertSame(vectorFactory, instance.getVectorFactory()); } /** * Test of evaluate method, of class BagOfWordsTransform. */ @Test public void testEvaluate() { DefaultTermIndex termIndex = new DefaultTermIndex(); DefaultTerm term0 = new DefaultTerm("term0"); DefaultTerm term1 = new DefaultTerm("term1"); DefaultTerm term2 = new DefaultTerm("term2"); DefaultTerm termBad = new DefaultTerm("termBad"); BagOfWordsTransform instance = new BagOfWordsTransform(termIndex); Term[] input = new Term[] { term0, term1, term2, termBad }; Vector expected = VectorFactory.getDefault().createVector(0); assertEquals(expected, instance.evaluate(Arrays.asList(input))); termIndex.add(term0); termIndex.add(term1); termIndex.add(term2); expected = new Vector3(1, 1, 1); assertEquals(expected, instance.evaluate(Arrays.asList(input))); input = new Term[] { term1, term2, term2, termBad, termBad, termBad }; expected = new Vector3(0, 1, 2); assertEquals(expected, instance.evaluate(Arrays.asList(input))); input = new Term[] { }; expected = new Vector3(); assertEquals(expected, instance.evaluate(Arrays.asList(input))); } /** * Test of getTermIndex method, of class BagOfWordsTransform. */ @Test public void testGetTermIndex() { this.testSetTermIndex(); } /** * Test of setTermIndex method, of class BagOfWordsTransform. */ @Test public void testSetTermIndex() { BagOfWordsTransform instance = new BagOfWordsTransform(); assertNotNull(instance.getTermIndex()); assertTrue(instance.getTermIndex() instanceof DefaultTermIndex); assertEquals(0, instance.getTermIndex().getTermCount()); TermIndex termIndex = new DefaultTermIndex(); instance.setTermIndex(termIndex); assertSame(termIndex, instance.getTermIndex()); termIndex = new DefaultTermIndex(); instance.setTermIndex(termIndex); assertSame(termIndex, instance.getTermIndex()); termIndex = null; instance.setTermIndex(termIndex); assertSame(termIndex, instance.getTermIndex()); } }