package conformancetests; import static org.junit.Assert.assertEquals; import java.util.Set; import org.junit.Test; import org.semanticweb.owlapi.apibinding.OWLManager; import org.semanticweb.owlapi.model.IRI; import org.semanticweb.owlapi.model.OWLClass; import org.semanticweb.owlapi.model.OWLDataFactory; import org.semanticweb.owlapi.model.OWLOntology; import org.semanticweb.owlapi.model.OWLOntologyCreationException; import org.semanticweb.owlapi.model.OWLOntologyManager; import org.semanticweb.owlapi.reasoner.InferenceType; import org.semanticweb.owlapi.reasoner.NodeSet; import org.semanticweb.owlapi.reasoner.OWLReasoner; import testbase.TestBase; @SuppressWarnings("javadoc") public class Strange extends TestBase { @Test public void shouldFindThreeSubclasses() throws OWLOntologyCreationException { OWLOntologyManager m = OWLManager.createOWLOntologyManager(); OWLOntology o = m.createOntology(); OWLDataFactory d = m.getOWLDataFactory(); m.addAxiom( o, d.getOWLSubClassOfAxiom(d.getOWLClass(IRI.create("urn:b")), d.getOWLClass(IRI.create("urn:c")))); m.addAxiom( o, d.getOWLSubClassOfAxiom(d.getOWLClass(IRI.create("urn:a")), d.getOWLClass(IRI.create("urn:b")))); OWLReasoner r = factory().createReasoner(o); r.precomputeInferences(InferenceType.CLASS_HIERARCHY); NodeSet<OWLClass> subClasses = r.getSubClasses( d.getOWLClass(IRI.create("urn:c")), false); Set<OWLClass> flat = subClasses.getFlattened(); assertEquals(flat.toString(), 3, flat.size()); } }