package semanticMarkup.ling.learn.knowledge;
import static org.junit.Assert.*;
import java.io.IOException;
import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;
import org.junit.Before;
import org.junit.Test;
import semanticMarkup.know.lib.WordNetPOSKnowledgeBase;
import semanticMarkup.ling.learn.Configuration;
import semanticMarkup.ling.learn.dataholder.DataHolder;
import semanticMarkup.ling.learn.utility.LearnerUtility;
import semanticMarkup.ling.transform.ITokenizer;
import semanticMarkup.ling.transform.lib.OpenNLPSentencesTokenizer;
import semanticMarkup.ling.transform.lib.OpenNLPTokenizer;
public class CommonSubstructureAnnotatorTest {
private CommonSubstructureAnnotator tester;
private Configuration configuration;
private LearnerUtility myLearnerUtility;
@Before
public void initialize() {
this.configuration = new Configuration();
ITokenizer tokenizer = new OpenNLPTokenizer(
this.configuration.getOpenNLPTokenizerDir());
ITokenizer sentenceDetector = new OpenNLPSentencesTokenizer(
this.configuration.getOpenNLPSentenceDetectorDir());
WordNetPOSKnowledgeBase wordNetPOSKnowledgeBase = null;
try {
wordNetPOSKnowledgeBase = new WordNetPOSKnowledgeBase(this.configuration.getWordNetDictDir(), false);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
this.myLearnerUtility = new LearnerUtility(sentenceDetector,
tokenizer, wordNetPOSKnowledgeBase);
this.tester = new CommonSubstructureAnnotator();
}
@Test
public void testGetCommonStructures() {
DataHolder myDataHolder = new DataHolder(this.configuration,
myLearnerUtility.getConstant(),
myLearnerUtility.getWordFormUtility());
// "structure2" and "structure3" are common structures, "structure1" is
// not
myDataHolder.add2Holder(
DataHolder.WORDPOS,
Arrays.asList(new String[] { "structure1", "b", "role", "1",
"1", "", "" }));
myDataHolder.add2Holder(
DataHolder.WORDPOS,
Arrays.asList(new String[] { "structure2", "p", "role", "1",
"1", "", "" }));
myDataHolder.add2Holder(
DataHolder.WORDPOS,
Arrays.asList(new String[] { "structure3", "s", "role", "1",
"1", "", "" }));
myDataHolder.add2Holder(
DataHolder.SENTENCE,
Arrays.asList(new String[] { "src", "sent", "osent", "lead",
"status", "tag1", "structure1", "type" }));
myDataHolder.add2Holder(
DataHolder.SENTENCE,
Arrays.asList(new String[] { "src", "sent", "osent", "lead",
"status", "tag2", "structure2", "type" }));
myDataHolder.add2Holder(
DataHolder.SENTENCE,
Arrays.asList(new String[] { "src", "sent", "osent", "lead",
"status", "tag3", "structure2", "type" }));
myDataHolder.add2Holder(
DataHolder.SENTENCE,
Arrays.asList(new String[] { "src", "sent", "osent", "lead",
"status", "tag3", "structure3", "type" }));
Set<String> target = new HashSet<String>(Arrays.asList("tag3"));
assertEquals("getCommonStructures", target,
tester.getCommonStructures(myDataHolder));
}
}