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