package uk.ac.ebi;
import static org.junit.Assert.assertEquals;
import java.util.ArrayList;
import java.util.List;
import org.junit.Test;
import org.semanticweb.owlapi.model.OWLClass;
import uk.ac.ebi.brain.core.Brain;
import uk.ac.ebi.brain.error.BrainException;
public class BrainUtilsTest {
@Test
public void learnAndDisambiguateTest() throws BrainException {
Brain brain = new Brain();
brain.addClass("http://www.foo.org/Dog");
brain.learnAndDisambiguate("src/test/resources/disambiguate.owl");
List<String> classes = brain.getSubClasses("Thing", true);
assertEquals(classes.size(), 1);
OWLClass owlClass = brain.getOWLClass(classes.get(0));
assertEquals("http://www.foo.org/Dog", owlClass.getIRI().toString());
}
@Test
public void jaccardSimilarityTest() throws BrainException {
Brain brain = new Brain();
brain.learn("src/test/resources/cars.owl");
float index = brain.getJaccardSimilarityIndex("Car", "MiniVan");
assertEquals(0.5, index, 1e-15);
float index1 = brain.getJaccardSimilarityIndex("Sedan", "Car");
assertEquals(0.800, index1, 1e-3);
float index2 = brain.getJaccardSimilarityIndex("Thing", "Thing");
assertEquals(1.000, index2, 1e-3);
brain.sleep();
}
@Test
public void jaccardGroupSimilarityTest() throws BrainException {
Brain brain = new Brain();
brain.learn("src/test/resources/cars.owl");
List<String> group1 = new ArrayList<String>();
group1.add("Sedan");
group1.add("SportCoupe");
List<String> group2 = new ArrayList<String>();
group2.add("MiniVan");
group2.add("ToyotaCorrola");
float index = brain.getJaccardSimilarityIndex(group1, group2);
assertEquals(0.556, index, 1e-3);
brain.sleep();
}
}