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