/**
*
*/
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 14, 2013
*
*/
public class EmbeddingITest {
public static final String wordVectorFile = "edu/stanford/nlp/neural/wordVector.txt";
public static final String wordFile = "edu/stanford/nlp/neural/word.txt";
public static final String vectorFile = "edu/stanford/nlp/neural/vector.txt";
@Test
public void testLoadFromOneFile() {
Embedding embedding = new Embedding(wordVectorFile);
double[][] values = new double[1][5];
// unknown
values[0] = new double[]{0.1, 0.2, 0.3, 0.4, 0.5};
assertTrue(embedding.getUnknownWordVector().transpose().isIdentical(new SimpleMatrix(values), 1e-5));
// start
values[0] = new double[]{0.6, 0.7, 0.8, 0.9, 1.0};
assertTrue(embedding.getStartWordVector().transpose().isIdentical(new SimpleMatrix(values), 1e-5));
// end
values[0] = new double[]{1, 2, 3, 4, 5};
assertTrue(embedding.getEndWordVector().transpose().isIdentical(new SimpleMatrix(values), 1e-5));
// word
values[0] = new double[]{6, 7, 8, 9, 10};
assertTrue(embedding.get("the").transpose().isIdentical(new SimpleMatrix(values), 1e-5));
}
@Test
public void testLoadFromTwoFile() {
Embedding embedding = new Embedding(wordFile, vectorFile);
double[][] values = new double[1][5];
// unknown
values[0] = new double[]{0.1, 0.2, 0.3, 0.4, 0.5};
assertTrue(embedding.getUnknownWordVector().transpose().isIdentical(new SimpleMatrix(values), 1e-5));
// start
values[0] = new double[]{0.6, 0.7, 0.8, 0.9, 1.0};
assertTrue(embedding.getStartWordVector().transpose().isIdentical(new SimpleMatrix(values), 1e-5));
// end
values[0] = new double[]{1, 2, 3, 4, 5};
assertTrue(embedding.getEndWordVector().transpose().isIdentical(new SimpleMatrix(values), 1e-5));
// word
values[0] = new double[]{6, 7, 8, 9, 10};
assertTrue(embedding.get("the").transpose().isIdentical(new SimpleMatrix(values), 1e-5));
}
}