OntologyAlgorithm { public static Set<TermId> getChildTerms( Ontology ontology, TermId parentTermId) { return getChildTerms(ontology, parentTermId, true); } private  OntologyAlgorithm(); static boolean existsPath(
      Ontology ontology,
      final TermId sourceID,
      TermId destID); static Set<TermId> getChildTerms(
    Ontology ontology, TermId parentTermId); static Set<TermId> getChildTerms(
      Ontology ontology,
      TermId parentTermId,
      boolean includeOriginalTerm); static Set<TermId> getChildTerms(
    Ontology ontology, Set<TermId> parentTermIdSet); static Set<TermId> getParentTerms(
    Ontology ontology, Set<TermId> childTermIdSet); static Set<TermId> getParentTerms(
      Ontology ontology,
      Set<TermId> childTermIdSet,
      boolean includeOriginalTerm); static Set<TermId> getDescendents(
    Ontology ontology, TermId parentTermId); static Set<TermId> getParentTerms(
      Ontology ontology,
      TermId childTermId,
      boolean includeOriginalTerm); static Set<TermId> getAncestorTerms(
      Ontology ontology,
      TermId rootTerm,
      Set<TermId> children,
      boolean includeOriginalTerm); static Set<TermId> getAncestorTerms(
      Ontology ontology,
      TermId rootTerm,
      TermId child,
      boolean includeOriginalTerm); static Set<TermId> getAncestorTerms(
      Ontology ontology,
      Set<TermId> children,
      boolean includeOriginalTerm); static Set<TermId> getAncestorTerms(
      Ontology ontology,
      TermId child,
      boolean includeOriginalTerm); static Set<TermId> getParentTerms(
    Ontology ontology, TermId childTermId); static Set<TermId> getAncestorTerms(
    Ontology ontology, TermId childTermId); static boolean isSubclass(
    Ontology ontology, TermId source, TermId dest); static boolean termsAreSiblings(
    Ontology ontology, TermId t1, TermId t2); static boolean termsAreRelated(
    Ontology ontology, TermId t1, TermId t2); static boolean termsAreUnrelated(
    Ontology ontology, TermId t1, TermId t2);  }
@Test public void testGetTermChildrenId4andId1() { Set<TermId> expected = ImmutableSet.of(id4, id1); assertEquals(expected, getChildTerms(ontology, id4)); expected = ImmutableSet.of(id1); assertEquals(expected, getChildTerms(ontology, id1)); }
@Test public void testGetTermChildrenId5() { Set<TermId> expected = ImmutableSet.of(id2, id3, id4, id5); assertEquals(expected, getChildTerms(ontology, id5)); }
@Test public void testGetChildrenOfSet() { Set<TermId> queryTerms = ImmutableSet.of(id2, id3); Set<TermId> expected = ImmutableSet.of(id1, id2, id3); assertEquals(expected, getChildTerms(ontology, queryTerms)); }
@Test public void testReturnChildrenWithoutOriginalTerm() { Set<TermId> expected = ImmutableSet.of(id2, id3, id4); assertEquals(expected, getChildTerms(ontology, id5, false)); }