JAL-1705 renamed SeqFetcherTest to EnsemblSeqProxyTest
[jalview.git] / test / jalview / ext / ensembl / EnsemblSeqProxyTest.java
1 package jalview.ext.ensembl;
2
3 import jalview.datamodel.Alignment;
4 import jalview.datamodel.SequenceI;
5 import jalview.ext.ensembl.SeqFetcher;
6 import jalview.ext.ensembl.SeqFetcher.EnsemblSeqType;
7 import jalview.io.AppletFormatAdapter;
8 import jalview.io.FastaFile;
9 import jalview.io.FileParse;
10
11 import java.lang.reflect.Method;
12 import java.util.Arrays;
13
14 import org.testng.Assert;
15 import org.testng.annotations.DataProvider;
16 import org.testng.annotations.Test;
17
18 public class SeqFetcherTest
19 {
20   @Test
21   public void testCheckEnsembl()
22   {
23     SeqFetcher sf = new SeqFetcher();
24     sf.setTestEnsemblStatus(true);
25     sf.setTesting(true);
26     Assert.assertTrue(sf.isEnsemblAvailable());
27     sf.setTestEnsemblStatus(false);
28     Assert.assertFalse(sf.isEnsemblAvailable());
29   }
30
31   @Test(suiteName = "live")
32   public void testLiveCheckEnsembl()
33   {
34     SeqFetcher sf = new SeqFetcher();
35     boolean isAvailable = sf.isEnsemblAvailable();
36     System.out.println("Ensembl is "
37             + (isAvailable ? "UP!" : "DOWN ******************* BAD!"));
38   }
39
40   @DataProvider(name = "ens_seqs")
41   public Object[][] createData(Method m)
42   {
43     System.out.println(m.getName());
44     return allSeqs;
45   }
46
47   public static Object[][] allSeqs = new Object[][]
48   {
49   {
50       EnsemblSeqType.CDS,
51       "CCDS5863.1",
52       ">CCDS5863.1\n"
53               + "ATGGCGGCGCTGAGCGGTGGCGGTGGTGGCGGCGCGGAGCCGGGCCAGGCTCTGTTCAAC\n"
54               + "GGGGACATGGAGCCCGAGGCCGGCGCCGGCGCCGGCGCCGCGGCCTCTTCGGCTGCGGAC\n"
55               + "CCTGCCATTCCGGAGGAGGTGTGGAATATCAAACAAATGATTAAGTTGACACAGGAACAT\n"
56               + "ATAGAGGCCCTATTGGACAAATTTGGTGGGGAGCATAATCCACCATCAATATATCTGGAG\n"
57               + "GCCTATGAAGAATACACCAGCAAGCTAGATGCACTCCAACAAAGAGAACAACAGTTATTG\n"
58               + "GAATCTCTGGGGAACGGAACTGATTTTTCTGTTTCTAGCTCTGCATCAATGGATACCGTT\n"
59               + "ACATCTTCTTCCTCTTCTAGCCTTTCAGTGCTACCTTCATCTCTTTCAGTTTTTCAAAAT\n"
60               + "CCCACAGATGTGGCACGGAGCAACCCCAAGTCACCACAAAAACCTATCGTTAGAGTCTTC\n"
61               + "CTGCCCAACAAACAGAGGACAGTGGTACCTGCAAGGTGTGGAGTTACAGTCCGAGACAGT\n"
62               + "CTAAAGAAAGCACTGATGATGAGAGGTCTAATCCCAGAGTGCTGTGCTGTTTACAGAATT\n"
63               + "CAGGATGGAGAGAAGAAACCAATTGGTTGGGACACTGATATTTCCTGGCTTACTGGAGAA\n"
64               + "GAATTGCATGTGGAAGTGTTGGAGAATGTTCCACTTACAACACACAACTTTGTACGAAAA\n"
65               + "ACGTTTTTCACCTTAGCATTTTGTGACTTTTGTCGAAAGCTGCTTTTCCAGGGTTTCCGC\n"
66               + "TGTCAAACATGTGGTTATAAATTTCACCAGCGTTGTAGTACAGAAGTTCCACTGATGTGT\n"
67               + "GTTAATTATGACCAACTTGATTTGCTGTTTGTCTCCAAGTTCTTTGAACACCACCCAATA\n"
68               + "CCACAGGAAGAGGCGTCCTTAGCAGAGACTGCCCTAACATCTGGATCATCCCCTTCCGCA\n"
69               + "CCCGCCTCGGACTCTATTGGGCCCCAAATTCTCACCAGTCCGTCTCCTTCAAAATCCATT\n"
70               + "CCAATTCCACAGCCCTTCCGACCAGCAGATGAAGATCATCGAAATCAATTTGGGCAACGA\n"
71               + "GACCGATCCTCATCAGCTCCCAATGTGCATATAAACACAATAGAACCTGTCAATATTGAT\n"
72               + "GACTTGATTAGAGACCAAGGATTTCGTGGTGATGGAGGATCAACCACAGGTTTGTCTGCT\n"
73               + "ACCCCCCCTGCCTCATTACCTGGCTCACTAACTAACGTGAAAGCCTTACAGAAATCTCCA\n"
74               + "GGACCTCAGCGAGAAAGGAAGTCATCTTCATCCTCAGAAGACAGGAATCGAATGAAAACA\n"
75               + "CTTGGTAGACGGGACTCGAGTGATGATTGGGAGATTCCTGATGGGCAGATTACAGTGGGA\n"
76               + "CAAAGAATTGGATCTGGATCATTTGGAACAGTCTACAAGGGAAAGTGGCATGGTGATGTG\n"
77               + "GCAGTGAAAATGTTGAATGTGACAGCACCTACACCTCAGCAGTTACAAGCCTTCAAAAAT\n"
78               + "GAAGTAGGAGTACTCAGGAAAACACGACATGTGAATATCCTACTCTTCATGGGCTATTCC\n"
79               + "ACAAAGCCACAACTGGCTATTGTTACCCAGTGGTGTGAGGGCTCCAGCTTGTATCACCAT\n"
80               + "CTCCATATCATTGAGACCAAATTTGAGATGATCAAACTTATAGATATTGCACGACAGACT\n"
81               + "GCACAGGGCATGGATTACTTACACGCCAAGTCAATCATCCACAGAGACCTCAAGAGTAAT\n"
82               + "AATATATTTCTTCATGAAGACCTCACAGTAAAAATAGGTGATTTTGGTCTAGCTACAGTG\n"
83               + "AAATCTCGATGGAGTGGGTCCCATCAGTTTGAACAGTTGTCTGGATCCATTTTGTGGATG\n"
84               + "GCACCAGAAGTCATCAGAATGCAAGATAAAAATCCATACAGCTTTCAGTCAGATGTATAT\n"
85               + "GCATTTGGAATTGTTCTGTATGAATTGATGACTGGACAGTTACCTTATTCAAACATCAAC\n"
86               + "AACAGGGACCAGATAATTTTTATGGTGGGACGAGGATACCTGTCTCCAGATCTCAGTAAG\n"
87               + "GTACGGAGTAACTGTCCAAAAGCCATGAAGAGATTAATGGCAGAGTGCCTCAAAAAGAAA\n"
88               + "AGAGATGAGAGACCACTCTTTCCCCAAATTCTCGCCTCTATTGAGCTGCTGGCCCGCTCA\n"
89               + "TTGCCAAAAATTCACCGCAGTGCATCAGAACCCTCCTTGAATCGGGCTGGTTTCCAAACA\n"
90               + "GAGGATTTTAGTCTATATGCTTGTGCTTCTCCAAAAACACCCATCCAGGCAGGGGGATAT\n"
91               + "GGTGCGTTTCCTGTCCACTGA" } };
92
93   @Test(dataProvider = "ens_seqs", suiteName = "live")
94   public void testGetOneSeqs(EnsemblSeqType type, String sq, String fastasq)
95           throws Exception
96   {
97     SeqFetcher sf = new SeqFetcher();
98     FileParse fp = sf.getSequenceReader(type, Arrays.asList(new String[]
99     { sq }));
100     SequenceI[] sqs = new FastaFile(fp).getSeqsAsArray();
101     FastaFile trueRes = new FastaFile(fastasq, AppletFormatAdapter.PASTE);
102     SequenceI[] trueSqs = trueRes.getSeqsAsArray();
103     Assert.assertEquals(sqs.length, trueSqs.length,
104             "Different number of sequences retrieved for query " + sq);
105     Alignment ral = new Alignment(sqs);
106     for (SequenceI tr : trueSqs)
107     {
108       SequenceI[] rseq;
109       Assert.assertNotNull(
110               rseq = ral.findSequenceMatch(tr.getName()),
111               "Couldn't find sequences matching expected sequence "
112                       + tr.getName());
113       Assert.assertEquals(rseq.length, 1,
114               "Expected only one sequence for sequence ID " + tr.getName());
115       Assert.assertEquals(
116               rseq[0].getSequenceAsString(),
117               tr.getSequenceAsString(),
118               "Sequences differ for " + tr.getName() + "\n" + "Exp:"
119                       + tr.getSequenceAsString() + "\n" + "Got:"
120                       + rseq[0].getSequenceAsString());
121     }
122   }
123 }