@Test
void testNCITLoad() {

  Path ncitPath = Paths.get("src/test/resources/ncit_module.owl");
  Ontology ontology = OntologyLoader.loadOntology(ncitPath.toFile(), "NCIT");
  DefaultDirectedGraph<TermId, IdLabeledEdge> graph = ontology.getGraph();
  // 1. Checking vertices
  // In this dummy ontology, we have 6 classes.
  TermId t1 = TermId.of("NCIT:C2919");
  TermId t2 = TermId.of("NCIT:C2852");
  TermId t3 = TermId.of("NCIT:C48596");
  TermId t4 = TermId.of("NCIT:C60312");
  TermId t5 = TermId.of("NCIT:C116977");
  TermId t6 = TermId.of("NCIT:C126659");
  assertTrue(graph.vertexSet().contains(t1));
  assertTrue(graph.vertexSet().contains(t2));
  assertTrue(graph.vertexSet().contains(t3));
  assertTrue(graph.vertexSet().contains(t4));
  assertTrue(graph.vertexSet().contains(t5));
  // This one is not recognized as a node due to the lack of rdfs:label.
  assertFalse(graph.vertexSet().contains(t6));
  // 2. Checking edges
  // Two subclasses are translated into two edges. Other axioms are not yet captured.
  // Given there is no root term an artificial one is created and linked
  assertEquals(4, graph.edgeSet().size());
  assertNotNull(graph.getEdge(t1, t2));
  assertNotNull(graph.getEdge(t1, t3));
  // 3. Checking TermIds
  // This is essentially the same as checking vertices.
  assertTrue(ontology.getAllTermIds().contains(t1));
  assertTrue(ontology.getAllTermIds().contains(t2));
  assertTrue(ontology.getAllTermIds().contains(t3));
  assertTrue(ontology.getAllTermIds().contains(t4));
  assertTrue(ontology.getAllTermIds().contains(t5));
  assertFalse(ontology.getAllTermIds().contains(t6));
  // 4. Checking RelationMap
  // All meta-information on edges are available in RelationMap instance.
  Relationship gr1 = ontology.getRelationMap().get(graph.getEdge(t1, t2).getId());
  Relationship gr2 = ontology.getRelationMap().get(graph.getEdge(t1, t3).getId());
  assertNotNull(gr1);
  assertNotNull(gr2);
  assertEquals(RelationshipType.IS_A, gr1.getRelationshipType());
  assertEquals(RelationshipType.IS_A, gr2.getRelationshipType());
  // 5. The example file contains multiple roots; thus we just put owl:Thing as the root.
  assertEquals(TermId.of("owl:Thing"), ontology.getRootTermId());
}