package edu.stanford.nlp.pipeline; import org.junit.Test; import java.util.Properties; import static org.junit.Assert.*; /** * Test some of the utility functions in {@link StanfordCoreNLP}. * * @author Gabor Angeli */ public class StanfordCoreNLPTest { @Test public void testPrereqAnnotatorsBasic() { assertEquals("tokenize,ssplit,pos,parse", StanfordCoreNLP.ensurePrerequisiteAnnotators(new String[]{"parse"}, new Properties())); assertEquals("tokenize,ssplit,pos,depparse", StanfordCoreNLP.ensurePrerequisiteAnnotators(new String[]{"depparse"}, new Properties())); assertEquals("tokenize,ssplit,pos,depparse", StanfordCoreNLP.ensurePrerequisiteAnnotators(new String[]{"depparse", "tokenize"}, new Properties())); assertEquals("tokenize,ssplit,pos,lemma,depparse,natlog", StanfordCoreNLP.ensurePrerequisiteAnnotators(new String[]{"natlog", "tokenize"}, new Properties())); } @Test public void testPrereqAnnotatorsOrderPreserving() { assertEquals("tokenize,ssplit,pos,lemma,depparse,natlog", StanfordCoreNLP.ensurePrerequisiteAnnotators(new String[]{"lemma", "depparse", "natlog"}, new Properties())); assertEquals("tokenize,ssplit,pos,depparse,lemma,natlog", StanfordCoreNLP.ensurePrerequisiteAnnotators(new String[]{"depparse", "lemma", "natlog"}, new Properties())); assertEquals("tokenize,ssplit,pos,lemma,ner,regexner", StanfordCoreNLP.ensurePrerequisiteAnnotators(new String[]{"ner", "regexner"}, new Properties())); assertEquals("tokenize,ssplit,pos,lemma,ner,depparse", StanfordCoreNLP.ensurePrerequisiteAnnotators(new String[]{"ner", "depparse"}, new Properties())); assertEquals("tokenize,ssplit,pos,lemma,depparse,ner", StanfordCoreNLP.ensurePrerequisiteAnnotators(new String[]{"depparse", "ner"}, new Properties())); } @Test public void testPrereqAnnotatorsRegexNERAfterNER() { assertEquals("tokenize,ssplit,pos,lemma,ner,regexner", StanfordCoreNLP.ensurePrerequisiteAnnotators(new String[]{"regexner", "ner"}, new Properties())); } @Test public void testPrereqAnnotatorsCorefBeforeOpenIE() { assertEquals("tokenize,ssplit,pos,lemma,depparse,natlog,ner,mention,coref,openie", StanfordCoreNLP.ensurePrerequisiteAnnotators(new String[]{"openie", "coref"}, new Properties())); assertEquals("tokenize,ssplit,pos,lemma,ner,depparse,natlog,mention,coref,openie", StanfordCoreNLP.ensurePrerequisiteAnnotators(new String[]{"coref", "openie"}, new Properties())); } @Test public void testPrereqAnnotatorsCoref() { Properties props = new Properties(); assertEquals("tokenize,ssplit,pos,lemma,ner,depparse,mention,coref", StanfordCoreNLP.ensurePrerequisiteAnnotators(new String[]{"coref"}, props)); assertEquals("dep", props.getProperty("coref.md.type", "")); } @Test public void testPrereqAnnotatorsCorefWithParse() { Properties props = new Properties(); assertEquals("tokenize,ssplit,pos,lemma,ner,parse,mention,coref", StanfordCoreNLP.ensurePrerequisiteAnnotators(new String[]{"parse","coref"}, props)); assertEquals("__empty__", props.getProperty("coref.md.type", "__empty__")); } }