/** * */ package edu.stanford.nlp.neural; import static org.junit.Assert.*; import org.ejml.simple.SimpleMatrix; import org.junit.Test; /** * @author Minh-Thang Luong <lmthang@stanford.edu>, created on Nov 15, 2013 * */ public class NeuralUtilsTest { @Test public void testCosine() { double[][] values = new double[1][5]; values[0] = new double[]{0.1, 0.2, 0.3, 0.4, 0.5}; SimpleMatrix vector1 = new SimpleMatrix(values); values[0] = new double[]{0.5, 0.4, 0.3, 0.2, 0.1}; SimpleMatrix vector2 = new SimpleMatrix(values); assertEquals(0.35000000000000003, NeuralUtils.dot(vector1, vector2), 1e-5); assertEquals(0.6363636363636364, NeuralUtils.cosine(vector1, vector2), 1e-5); vector1 = vector1.transpose(); vector2 = vector2.transpose(); assertEquals(0.35000000000000003, NeuralUtils.dot(vector1, vector2), 1e-5); assertEquals(0.6363636363636364, NeuralUtils.cosine(vector1, vector2), 1e-5); } public void testIsZero() { double[][] values = new double[][] { { 0.1, 0.2, 0.3, 0.4, 0.5 }, { 0.0, 0.0, 0.0, 0.0, 0.0 }}; SimpleMatrix vector1 = new SimpleMatrix(values); assertFalse(NeuralUtils.isZero(vector1)); values = new double[][] { { 0.0, 0.0, 0.0, 0.0, 0.0 }, { 0.0, 0.0, 0.0, 0.0, 0.0 }}; vector1 = new SimpleMatrix(values); assertTrue(NeuralUtils.isZero(vector1)); } }