Merge branch 'develop' into features/JAL-3010ontologyFeatureSettings
[jalview.git] / test / jalview / io / gff / SequenceOntologyLiteTest.java
1 package jalview.io.gff;
2
3 import static org.testng.Assert.assertEquals;
4 import static org.testng.Assert.assertFalse;
5 import static org.testng.Assert.assertTrue;
6
7 import jalview.datamodel.ontology.OntologyI;
8
9 import java.util.Arrays;
10 import java.util.Collections;
11 import java.util.HashSet;
12 import java.util.List;
13 import java.util.Set;
14
15 import org.testng.annotations.BeforeClass;
16 import org.testng.annotations.Test;
17
18 public class SequenceOntologyLiteTest
19 {
20   private OntologyI so;
21
22   @BeforeClass(alwaysRun = true)
23   public void setUp()
24   {
25     so = new SequenceOntologyLite();
26   }
27
28   @Test(groups = "Functional")
29   public void testIsA_sequenceVariant()
30   {
31     assertFalse(so.isA("CDS", "sequence_variant"));
32     assertTrue(so.isA("sequence_variant", "sequence_variant"));
33
34     /*
35      * these should all be sub-types of sequence_variant
36      */
37     assertTrue(so.isA("structural_variant", "sequence_variant"));
38     assertTrue(so.isA("feature_variant", "sequence_variant"));
39     assertTrue(so.isA("gene_variant", "sequence_variant"));
40     assertTrue(so.isA("transcript_variant", "sequence_variant"));
41     assertTrue(so.isA("NMD_transcript_variant", "sequence_variant"));
42     assertTrue(so.isA("missense_variant", "sequence_variant"));
43     assertTrue(so.isA("synonymous_variant", "sequence_variant"));
44     assertTrue(so.isA("frameshift_variant", "sequence_variant"));
45     assertTrue(so.isA("5_prime_UTR_variant", "sequence_variant"));
46     assertTrue(so.isA("3_prime_UTR_variant", "sequence_variant"));
47     assertTrue(so.isA("stop_gained", "sequence_variant"));
48     assertTrue(so.isA("stop_lost", "sequence_variant"));
49     assertTrue(so.isA("inframe_deletion", "sequence_variant"));
50     assertTrue(so.isA("inframe_insertion", "sequence_variant"));
51     assertTrue(so.isA("splice_region_variant", "sequence_variant"));
52   }
53
54   @Test(groups = "Functional")
55   public void testGetParentTerms()
56   {
57     Set<String> terms = new HashSet<>();
58     terms.add("sequence_variant");
59     terms.add("NMD_transcript_variant");
60     terms.add("stop_lost");
61     terms.add("chain"); // not an SO term
62   
63     Set<String> parents = so.getParentTerms(terms);
64     assertEquals(parents.size(), 2);
65     assertTrue(parents.contains("sequence_variant"));
66     assertTrue(parents.contains("chain"));
67   }
68
69   @Test(groups = "Functional")
70   public void testGetChildTerms()
71   {
72     List<String> terms = Collections.<String> emptyList();
73     List<String> children = so.getChildTerms("exon", terms);
74     assertTrue(children.isEmpty());
75
76     terms = Arrays.asList("gene", "transcript", "snRNA", "junk", "mRNA");
77     children = so.getChildTerms("exon", terms);
78     assertTrue(children.isEmpty());
79     children = so.getChildTerms("transcript", terms);
80     assertEquals(children.size(), 2);
81     assertTrue(children.contains("snRNA"));
82     assertTrue(children.contains("mRNA"));
83
84     terms = Arrays.asList("gene", "transcript", "synonymous_variant",
85             "stop_lost", "chain");
86     children = so.getChildTerms("sequence_variant", terms);
87     assertEquals(children.size(), 2);
88     assertTrue(children.contains("synonymous_variant"));
89     assertTrue(children.contains("stop_lost"));
90   }
91 }