f791a1ed40e673e8c4519c8cc35f74153f86ebce
[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 SequenceOntologyI so;
12
13   @BeforeMethod
14   public void setUp() {
15     long now = System.currentTimeMillis();
16     so = SequenceOntologyFactory.getInstance();
17     long elapsed = System.currentTimeMillis() - now;
18     System.out.println("Load and cache of Sequence Ontology took "
19             + elapsed + "ms");
20   }
21
22   @Test(groups = "Functional")
23   public void testIsA()
24   {
25     assertFalse(so.isA(null, null));
26     assertFalse(so.isA(null, "SO:0000087"));
27     assertFalse(so.isA("SO:0000087", null));
28     assertFalse(so.isA("complete", "garbage"));
29
30     assertTrue(so.isA("SO:0000087", "SO:0000704"));
31     assertFalse(so.isA("SO:0000704", "SO:0000087"));
32     assertTrue(so.isA("SO:0000736", "SO:0000735"));
33
34     // same thing:
35     assertTrue(so.isA("micronuclear_sequence", "micronuclear_sequence"));
36     // direct parent:
37     assertTrue(so.isA("micronuclear_sequence", "organelle_sequence"));
38     // grandparent:
39     assertTrue(so.isA("micronuclear_sequence", "sequence_location"));
40     // great-grandparent:
41     assertTrue(so.isA("micronuclear_sequence", "sequence_attribute"));
42
43     // same thing by name / description:
44     assertTrue(so.isA("micronuclear_sequence", "SO:0000084"));
45     assertTrue(so.isA("SO:0000084", "micronuclear_sequence"));
46     assertTrue(so.isA("SO:0000084", "SO:0000084"));
47
48     // SO name to description:
49     assertTrue(so.isA("SO:0000084", "organelle_sequence"));
50     assertTrue(so.isA("SO:0000084", "sequence_location"));
51     assertTrue(so.isA("SO:0000084", "sequence_attribute"));
52
53     // description to SO name:
54     assertTrue(so.isA("micronuclear_sequence", "SO:0000736"));
55     assertTrue(so.isA("micronuclear_sequence", "SO:0000735"));
56     assertTrue(so.isA("micronuclear_sequence", "SO:0000400"));
57   }
58
59   @Test(groups = "Functional")
60   public void testIsCDS()
61   {
62     assertTrue(so.isA("CDS", "CDS"));
63     assertTrue(so.isA("CDS_predicted", "CDS"));
64     assertTrue(so.isA("transposable_element_CDS", "CDS"));
65     assertTrue(so.isA("edited_CDS", "CDS"));
66     assertTrue(so.isA("CDS_independently_known", "CDS"));
67     assertTrue(so.isA("CDS_fragment", "CDS"));
68     assertFalse(so.isA("CDS_region", "CDS"));// part_of
69     assertFalse(so.isA("polypeptide", "CDS")); // derives_from
70   }
71 }