JAL-1191 zipped SO OBO file added to /resources, more tests added
[jalview.git] / test / jalview / io / gff / SequenceOntologyTest.java
1 package jalview.io.gff;
2
3 import static org.testng.AssertJUnit.assertFalse;
4 import static org.testng.AssertJUnit.assertTrue;
5
6 import org.testng.annotations.BeforeMethod;
7 import org.testng.annotations.Test;
8
9 public class SequenceOntologyTest
10 {
11   private SequenceOntology so;
12
13   @BeforeMethod
14   public void setUp() {
15     so = SequenceOntology.getInstance();
16   }
17
18   @Test(groups = "Functional")
19   public void testIsA()
20   {
21     assertFalse(so.isA(null, null));
22     assertFalse(so.isA(null, "SO:0000087"));
23     assertFalse(so.isA("SO:0000087", null));
24     assertFalse(so.isA("complete", "garbage"));
25
26     assertTrue(so.isA("SO:0000087", "SO:0000704"));
27     assertFalse(so.isA("SO:0000704", "SO:0000087"));
28     assertTrue(so.isA("SO:0000736", "SO:0000735"));
29
30     // same thing:
31     assertTrue(so.isA("micronuclear_sequence", "micronuclear_sequence"));
32     // direct parent:
33     assertTrue(so.isA("micronuclear_sequence", "organelle_sequence"));
34     // grandparent:
35     assertTrue(so.isA("micronuclear_sequence", "sequence_location"));
36     // great-grandparent:
37     assertTrue(so.isA("micronuclear_sequence", "sequence_attribute"));
38
39     // same thing by name / description:
40     assertTrue(so.isA("micronuclear_sequence", "SO:0000084"));
41     assertTrue(so.isA("SO:0000084", "micronuclear_sequence"));
42     assertTrue(so.isA("SO:0000084", "SO:0000084"));
43
44     // SO name to description:
45     assertTrue(so.isA("SO:0000084", "organelle_sequence"));
46     assertTrue(so.isA("SO:0000084", "sequence_location"));
47     assertTrue(so.isA("SO:0000084", "sequence_attribute"));
48
49     // description to SO name:
50     assertTrue(so.isA("micronuclear_sequence", "SO:0000736"));
51     assertTrue(so.isA("micronuclear_sequence", "SO:0000735"));
52     assertTrue(so.isA("micronuclear_sequence", "SO:0000400"));
53   }
54
55   @Test(groups = "Functional")
56   public void testIsProteinMatch()
57   {
58     assertTrue(so.isProteinMatch("protein_match"));
59     assertTrue(so.isProteinMatch("protein_hmm_match"));
60     assertFalse(so.isProteinMatch("Protein_match")); // case-sensitive
61   }
62
63   @Test(groups = "Functional")
64   public void testIsNucleotideMatch()
65   {
66     assertTrue(so.isNucleotideMatch("nucleotide_match"));
67     assertTrue(so.isNucleotideMatch("primer_match"));
68     assertTrue(so.isNucleotideMatch("cross_genome_match"));
69     assertTrue(so.isNucleotideMatch("expressed_sequence_match"));
70     assertTrue(so.isNucleotideMatch("translated_nucleotide_match"));
71     assertTrue(so.isNucleotideMatch("UST_match"));
72     assertTrue(so.isNucleotideMatch("RST_match"));
73     assertTrue(so.isNucleotideMatch("cDNA_match"));
74     assertTrue(so.isNucleotideMatch("EST_match"));
75     assertFalse(so.isNucleotideMatch("match")); // parent
76   }
77
78   @Test(groups = "Functional")
79   public void testIsCDS()
80   {
81     assertTrue(so.isA("CDS", "CDS"));
82     assertTrue(so.isA("CDS_predicted", "CDS"));
83     assertTrue(so.isA("transposable_element_CDS", "CDS"));
84     assertTrue(so.isA("edited_CDS", "CDS"));
85     assertTrue(so.isA("CDS_independently_known", "CDS"));
86     assertTrue(so.isA("CDS_fragment", "CDS"));
87     assertFalse(so.isA("CDS_region", "CDS"));// part_of
88     assertFalse(so.isA("polypeptide", "CDS")); // derives_from
89   }
90 }