720edf6b3210eecbfd105a0bf6d8e98e96d9b932
[jalview.git] / test / jalview / ext / so / SequenceOntologyTest.java
1 package jalview.ext.so;
2
3 import static org.testng.AssertJUnit.assertFalse;
4 import static org.testng.AssertJUnit.assertTrue;
5
6 import jalview.io.gff.SequenceOntologyI;
7
8 import org.testng.annotations.BeforeClass;
9 import org.testng.annotations.Test;
10
11 public class SequenceOntologyTest
12 {
13   private SequenceOntologyI so;
14
15   @BeforeClass(alwaysRun = true)
16   public void setUp()
17   {
18     long now = System.currentTimeMillis();
19     try
20     {
21       so = new SequenceOntology();
22     } catch (Throwable t)
23     {
24       System.out.println("SOTest error ");
25       t.printStackTrace(System.err);
26     }
27     long elapsed = System.currentTimeMillis() - now;
28     System.out.println("Load and cache of Sequence Ontology took "
29             + elapsed + "ms");
30   }
31
32   @Test(groups = "Functional")
33   public void testIsA()
34   {
35     assertFalse(so.isA(null, null));
36     assertFalse(so.isA(null, "SO:0000087"));
37     assertFalse(so.isA("SO:0000087", null));
38     assertFalse(so.isA("complete", "garbage"));
39
40     assertTrue(so.isA("SO:0000087", "SO:0000704"));
41     assertFalse(so.isA("SO:0000704", "SO:0000087"));
42     assertTrue(so.isA("SO:0000736", "SO:0000735"));
43
44     // same thing:
45     assertTrue(so.isA("micronuclear_sequence", "micronuclear_sequence"));
46     // direct parent:
47     assertTrue(so.isA("micronuclear_sequence", "organelle_sequence"));
48     // grandparent:
49     assertTrue(so.isA("micronuclear_sequence", "sequence_location"));
50     // great-grandparent:
51     assertTrue(so.isA("micronuclear_sequence", "sequence_attribute"));
52
53     // same thing by name / description:
54     assertTrue(so.isA("micronuclear_sequence", "SO:0000084"));
55     assertTrue(so.isA("SO:0000084", "micronuclear_sequence"));
56     assertTrue(so.isA("SO:0000084", "SO:0000084"));
57
58     // SO name to description:
59     assertTrue(so.isA("SO:0000084", "organelle_sequence"));
60     assertTrue(so.isA("SO:0000084", "sequence_location"));
61     assertTrue(so.isA("SO:0000084", "sequence_attribute"));
62
63     // description to SO name:
64     assertTrue(so.isA("micronuclear_sequence", "SO:0000736"));
65     assertTrue(so.isA("micronuclear_sequence", "SO:0000735"));
66     assertTrue(so.isA("micronuclear_sequence", "SO:0000400"));
67   }
68
69   @Test(groups = "Functional")
70   public void testIsCDS()
71   {
72     assertTrue(so.isA("CDS", "CDS"));
73     assertTrue(so.isA("CDS_predicted", "CDS"));
74     assertTrue(so.isA("transposable_element_CDS", "CDS"));
75     assertTrue(so.isA("edited_CDS", "CDS"));
76     assertTrue(so.isA("CDS_independently_known", "CDS"));
77     assertTrue(so.isA("CDS_fragment", "CDS"));
78     assertFalse(so.isA("CDS_region", "CDS"));// part_of
79     assertFalse(so.isA("polypeptide", "CDS")); // derives_from
80   }
81 }