/* * File: CosineSimilarityFunctionTest.java * Authors: Justin Basilico * Company: Sandia National Laboratories * Project: Cognitive Foundry * * Copyright March 19, 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.learning.function.distance.CosineDistanceMetric; import gov.sandia.cognition.math.matrix.Vector; import gov.sandia.cognition.math.matrix.mtj.Vector3; import org.junit.Test; import static org.junit.Assert.*; /** * Unit tests for class CosineSimilarityFunction. * * @author Justin Basilico * @since 3.0 */ public class CosineSimilarityFunctionTest { /** * Creates a new test. */ public CosineSimilarityFunctionTest() { } /** * Test of constructors of class CosineSimilarityFunction. */ @Test public void testConstructors() { CosineSimilarityFunction instance = new CosineSimilarityFunction(); } /** * Test of getInstance method, of class CosineSimilarityFunction. */ @Test public void testGetInstance() { CosineSimilarityFunction result = CosineSimilarityFunction.getInstance(); assertNotNull(result); assertSame(result, CosineSimilarityFunction.getInstance()); } /** * Test of evaluate method, of class CosineSimilarityFunction. */ @Test public void testEvaluate() { CosineSimilarityFunction instance = new CosineSimilarityFunction(); double EPSILON = 0.00001; Vector x = new Vector3(0.5, 0.0, 0.0); Vector y = new Vector3(0.2, 0.5, 0.0); Vector z = new Vector3(); double cosXY = x.cosine(y); assertEquals(1.0, instance.evaluate(x, x), EPSILON); assertEquals(cosXY, instance.evaluate(x, y), EPSILON); assertEquals(cosXY, instance.evaluate(y, x), EPSILON); assertEquals(1.0, instance.evaluate(y, y), EPSILON); assertEquals(0.0, instance.evaluate(x, z), EPSILON); assertEquals(0.0, instance.evaluate(z, x), EPSILON); assertEquals(0.0, instance.evaluate(y, z), EPSILON); assertEquals(0.0, instance.evaluate(z, y), EPSILON); assertEquals(0.0, instance.evaluate(z, z), EPSILON); } /** * Test of asDivergence method, of class CosineSimilarityFunction. */ @Test public void testAsDivergence() { CosineSimilarityFunction instance = new CosineSimilarityFunction(); CosineDistanceMetric result = instance.asDivergence(); assertNotNull(result); } }