Merge branch 'features/JAL-3010ontologyFeatureSettings' into
[jalview.git] / test / jalview / io / gff / SequenceOntologyLiteTest.java
index 0766666..3076f96 100644 (file)
@@ -1,17 +1,33 @@
 package jalview.io.gff;
 
-import static org.testng.AssertJUnit.assertFalse;
-import static org.testng.AssertJUnit.assertTrue;
+import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertFalse;
+import static org.testng.Assert.assertTrue;
 
+import jalview.datamodel.ontology.OntologyI;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+import org.testng.annotations.BeforeClass;
 import org.testng.annotations.Test;
 
 public class SequenceOntologyLiteTest
 {
+  private OntologyI so;
+
+  @BeforeClass(alwaysRun = true)
+  public void setUp()
+  {
+    so = new SequenceOntologyLite();
+  }
+
   @Test(groups = "Functional")
   public void testIsA_sequenceVariant()
   {
-    SequenceOntologyI so = new SequenceOntologyLite();
-
     assertFalse(so.isA("CDS", "sequence_variant"));
     assertTrue(so.isA("sequence_variant", "sequence_variant"));
 
@@ -34,4 +50,42 @@ public class SequenceOntologyLiteTest
     assertTrue(so.isA("inframe_insertion", "sequence_variant"));
     assertTrue(so.isA("splice_region_variant", "sequence_variant"));
   }
+
+  @Test(groups = "Functional")
+  public void testGetParentTerms()
+  {
+    Set<String> terms = new HashSet<>();
+    terms.add("sequence_variant");
+    terms.add("NMD_transcript_variant");
+    terms.add("stop_lost");
+    terms.add("chain"); // not an SO term
+  
+    Set<String> parents = so.getParentTerms(terms);
+    assertEquals(parents.size(), 2);
+    assertTrue(parents.contains("sequence_variant"));
+    assertTrue(parents.contains("chain"));
+  }
+
+  @Test(groups = "Functional")
+  public void testGetChildTerms()
+  {
+    List<String> terms = Collections.<String> emptyList();
+    List<String> children = so.getChildTerms("exon", terms);
+    assertTrue(children.isEmpty());
+
+    terms = Arrays.asList("gene", "transcript", "snRNA", "junk", "mRNA");
+    children = so.getChildTerms("exon", terms);
+    assertTrue(children.isEmpty());
+    children = so.getChildTerms("transcript", terms);
+    assertEquals(children.size(), 2);
+    assertTrue(children.contains("snRNA"));
+    assertTrue(children.contains("mRNA"));
+
+    terms = Arrays.asList("gene", "transcript", "synonymous_variant",
+            "stop_lost", "chain");
+    children = so.getChildTerms("sequence_variant", terms);
+    assertEquals(children.size(), 2);
+    assertTrue(children.contains("synonymous_variant"));
+    assertTrue(children.contains("stop_lost"));
+  }
 }