@Test
void testLoadEctoSubset() {

  Path ectoPath = Paths.get("src/test/resources/ecto.obo");
  // ECTO isn't mapped in the default Curie mappings, so we need to add it here (the PURL isn't correct)
  //CurieUtil curieUtil = CurieUtilBuilder.withDefaultsAnd(ImmutableMap.of("ECTO", "http://purl.obolibrary.org/obo/ECTO_"));
  //assertTrue(curieUtil.getCurieMap().containsKey("ECTO"));
  // ECTO also contains a bunch of unknown relationships so we're going to simplify this graph by only
  // loading ECTO nodes (this ignores the true root term XCO:0000000) and other nodes from CHEBI,
  // BFO and UBERON among others.
  //Ontology ecto = OntologyLoader.loadOntology(ectoPath.toFile(), curieUtil, "ECTO");
  Ontology ecto = OntologyLoader.loadOntology(ectoPath.toFile(), "ECTO");
  ecto.getRelationMap()
    .values()
    .forEach(relationship -> assertEquals(RelationshipType.IS_A, relationship.getRelationshipType()));
  Term rootT = ecto.getTermMap().get(ecto.getRootTermId());
  assertEquals("artificial root term", rootT.getName());
  assertEquals(TermId.of("owl:Thing"), ecto.getRootTermId());
  Set<String> termPrefixes = ecto.getAllTermIds().stream().map(TermId::getPrefix).collect(toSet());
  assertFalse(termPrefixes.contains("NCIT"));
  assertFalse(termPrefixes.contains("CHEBI"));
  assertFalse(termPrefixes.contains("GO"));
  // 2270 ECTO terms plus owl:thing
  assertEquals(2271, ecto.countNonObsoleteTerms());
  assertEquals(0, ecto.countAlternateTermIds());
}