//Dstl (c) Crown Copyright 2017
package uk.gov.dstl.baleen.resources;
import java.util.Collections;
import java.util.List;
import java.util.Optional;
import java.util.stream.Collectors;
import org.apache.uima.fit.factory.ExternalResourceFactory;
import org.apache.uima.resource.ExternalResourceDescription;
import org.apache.uima.resource.ResourceInitializationException;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import net.sf.extjwnl.JWNLException;
import net.sf.extjwnl.data.IndexWord;
import net.sf.extjwnl.data.POS;
public class SharedWordNetResourceTest {
private SharedWordNetResource wnr;
@Before
public void before() throws ResourceInitializationException {
ExternalResourceDescription erd = ExternalResourceFactory.createExternalResourceDescription("wordnet", SharedWordNetResource.class);
wnr = new SharedWordNetResource();
wnr.initialize(erd.getResourceSpecifier(), Collections.emptyMap());
}
@Test
public void testDestory() {
wnr.destroy();
}
@Test
public void testGetDictionary() {
Assert.assertNotNull(wnr.getDictionary());
}
@Test
public void testGetWord() throws JWNLException {
final Optional<IndexWord> missing = wnr.getWord(POS.VERB, "employs");
Assert.assertFalse(missing.isPresent());
final IndexWord employ = wnr.getWord(POS.VERB, "employ").get();
Assert.assertNotNull(employ);
Assert.assertEquals("employ", employ.getLemma());
}
@Test
public void testLookupWord() throws JWNLException {
final IndexWord word = wnr.lookupWord(POS.VERB, "employing").get();
Assert.assertEquals("employ", word.getLemma());
}
@Test
public void testSuperSense() throws JWNLException {
final List<String> word = wnr.getSuperSenses(POS.VERB, "employs").collect(Collectors.toList());
Assert.assertTrue("consumption".equals(word.get(0)) || "consumption".equals(word.get(1)));
Assert.assertTrue("social".equals(word.get(0)) || "social".equals(word.get(1)));
}
@Test
public void testBestSuperSense() throws JWNLException {
final Optional<String> word = wnr.getBestSuperSense(POS.VERB, "know");
Assert.assertEquals("cognition", word.get());
}
@Test
public void testMissingLookupWord() throws JWNLException {
final Optional<IndexWord> word1 = wnr.lookupWord(POS.VERB, "ascasdcscz");
Assert.assertFalse(word1.isPresent());
final Optional<IndexWord> word2 = wnr.getWord(POS.VERB, "ascasdcscz");
Assert.assertFalse(word2.isPresent());
final long count = wnr.getSuperSenses(POS.VERB, "ascasdcscz").count();
Assert.assertEquals(0, count);
final Optional<String> word = wnr.getBestSuperSense(POS.VERB, "ascasdcscz");
Assert.assertFalse(word.isPresent());
}
}