7257e144fd762488ed14ec25706c28721afc5af1
[jalview.git] / test / jalview / io / TCoffeeScoreFileTest.java
1 package jalview.io;
2
3 import static org.junit.Assert.*;
4 import jalview.io.TCoffeeScoreFile.Block;
5 import jalview.io.TCoffeeScoreFile.Header;
6
7 import java.io.BufferedReader;
8 import java.io.File;
9 import java.io.FileNotFoundException;
10 import java.io.FileReader;
11 import java.io.IOException;
12 import java.io.StringReader;
13 import java.util.List;
14
15 import org.junit.Test;
16
17 public class TCoffeeScoreFileTest {
18
19         final static File SCORE_FILE = new File("./test/jalview/io/tcoffee.score_ascii");
20         
21         @Test
22         public void testReadHeader() throws FileNotFoundException {
23
24                 Header header = TCoffeeScoreFile.readHeader( new BufferedReader(new FileReader(SCORE_FILE)) );
25                 assertNotNull(header);
26                 assertEquals( "T-COFFEE, Version_9.02.r1228 (2012-02-16 18:15:12 - Revision 1228 - Build 336)", header.head );
27                 assertEquals( 90, header.score );
28                 assertEquals( 89, header.getScoreFor("1PHT") );
29                 assertEquals( 90, header.getScoreFor("1BB9") );
30                 assertEquals( 94, header.getScoreFor("1UHC") );
31                 assertEquals( 94, header.getScoreFor("1YCS") );
32                 assertEquals( 93, header.getScoreFor("1OOT") );
33                 assertEquals( 94, header.getScoreFor("1ABO") );
34                 assertEquals( 94, header.getScoreFor("1FYN") );
35                 assertEquals( 94, header.getScoreFor("1QCF") );
36                 assertEquals( 90, header.getScoreFor("cons") );
37         }
38         
39         
40         @Test
41         public void testWrongFile() {
42                 TCoffeeScoreFile result = TCoffeeScoreFile.load(new File("./test/jalview/io/tcoffee.fasta_aln"));
43                 assertNull(result);
44         } 
45
46         @Test
47         public void testHeightAndWidth() {
48                 TCoffeeScoreFile result = TCoffeeScoreFile.load(new File("./test/jalview/io/tcoffee.score_ascii"));
49                 assertNotNull(result);
50                 assertEquals( 8, result.getHeight() );
51                 assertEquals( 83, result.getWidth() );
52         }       
53         
54         @Test
55         public void testReadBlock( ) throws IOException {
56                 
57                 String BLOCK = "\n" +
58                                 "\n" +
59                                 "\n" +
60                                 "1PHT   999999999999999999999999998762112222543211112134\n" +
61                                 "1BB9   99999999999999999999999999987-------4322----2234  \n" +
62                                 "1UHC   99999999999999999999999999987-------5321----2246\n" +
63                                 "1YCS   99999999999999999999999999986-------4321----1-35\n" +
64                                 "1OOT   999999999999999999999999999861-------3------1135  \n" +
65                                 "1ABO   99999999999999999999999999986-------422-------34\n" +
66                                 "1FYN   99999999999999999999999999985-------32--------35\n" +
67                                 "1QCF   99999999999999999999999999974-------2---------24\n" +
68                                 "cons   999999999999999999999999999851000110321100001134\n" +
69                                 "\n" +
70                                 "\n";
71                 
72                 Block block = TCoffeeScoreFile.readBlock(new BufferedReader(new StringReader(BLOCK)), 0);
73                 assertNotNull(block);
74                 assertEquals( "999999999999999999999999998762112222543211112134", block.getScoresFor("1PHT") );
75                 assertEquals( "99999999999999999999999999987-------4322----2234", block.getScoresFor("1BB9") );
76                 assertEquals( "99999999999999999999999999987-------5321----2246", block.getScoresFor("1UHC") );
77                 assertEquals( "99999999999999999999999999986-------4321----1-35", block.getScoresFor("1YCS") );
78                 assertEquals( "999999999999999999999999999861-------3------1135", block.getScoresFor("1OOT") );
79                 assertEquals( "99999999999999999999999999986-------422-------34", block.getScoresFor("1ABO") );
80                 assertEquals( "99999999999999999999999999985-------32--------35", block.getScoresFor("1FYN") );
81                 assertEquals( "99999999999999999999999999974-------2---------24", block.getScoresFor("1QCF") );
82                 assertEquals( "999999999999999999999999999851000110321100001134", block.getConsensus() );
83         }
84
85         @Test
86         public void testParse() throws FileNotFoundException {
87
88                 TCoffeeScoreFile parser = TCoffeeScoreFile.load(new BufferedReader(new FileReader(SCORE_FILE)) );
89
90                 assertEquals( "999999999999999999999999998762112222543211112134----------5666642367889999999999889", parser.getScoresFor("1PHT") );
91                 assertEquals( "99999999999999999999999999987-------4322----22341111111111676653-355679999999999889", parser.getScoresFor("1BB9") );
92                 assertEquals( "99999999999999999999999999987-------5321----2246----------788774--66789999999999889", parser.getScoresFor("1UHC") );
93                 assertEquals( "99999999999999999999999999986-------4321----1-35----------78777--356789999999999889", parser.getScoresFor("1YCS") );
94                 assertEquals( "999999999999999999999999999861-------3------1135----------78877--356789999999997-67", parser.getScoresFor("1OOT") );
95                 assertEquals( "99999999999999999999999999986-------422-------34----------687774--56779999999999889", parser.getScoresFor("1ABO") );
96                 assertEquals( "99999999999999999999999999985-------32--------35----------6888842356789999999999889", parser.getScoresFor("1FYN") );
97                 assertEquals( "99999999999999999999999999974-------2---------24----------6878742356789999999999889", parser.getScoresFor("1QCF") );
98                 assertEquals( "99999999999999999999999999985100011032110000113400100000006877641356789999999999889", parser.getScoresFor("cons") );             
99         }
100
101         
102         @Test
103         public void testGetAsList() throws FileNotFoundException {
104                 
105                 TCoffeeScoreFile parser = TCoffeeScoreFile.load(new BufferedReader(new FileReader(SCORE_FILE)) );
106
107                 List<String> scores = parser.getScoresList();
108                 assertEquals( "999999999999999999999999998762112222543211112134----------5666642367889999999999889", scores.get(0) );
109                 assertEquals( "99999999999999999999999999987-------4322----22341111111111676653-355679999999999889", scores.get(1) );
110                 assertEquals( "99999999999999999999999999987-------5321----2246----------788774--66789999999999889", scores.get(2) );
111                 assertEquals( "99999999999999999999999999986-------4321----1-35----------78777--356789999999999889", scores.get(3) );
112                 assertEquals( "999999999999999999999999999861-------3------1135----------78877--356789999999997-67", scores.get(4) );
113                 assertEquals( "99999999999999999999999999986-------422-------34----------687774--56779999999999889", scores.get(5) );
114                 assertEquals( "99999999999999999999999999985-------32--------35----------6888842356789999999999889", scores.get(6) );
115                 assertEquals( "99999999999999999999999999974-------2---------24----------6878742356789999999999889", scores.get(7) );
116                 assertEquals( "99999999999999999999999999985100011032110000113400100000006877641356789999999999889", scores.get(8) );           
117                 
118         } 
119         
120         
121         @Test
122         public void testGetAsArray() throws FileNotFoundException {
123                 
124                 TCoffeeScoreFile parser = TCoffeeScoreFile.load(new BufferedReader(new FileReader(SCORE_FILE)) );
125
126                 byte[][] scores = parser.getScoresArray();
127         
128                 assertEquals( 9, scores[0][0] );
129                 assertEquals( 9, scores[1][0] );
130                 assertEquals( 9, scores[2][0] );
131                 assertEquals( 9, scores[3][0] );
132                 assertEquals( 9, scores[4][0] );
133                 assertEquals( 9, scores[5][0] );
134                 assertEquals( 9, scores[6][0] );
135                 assertEquals( 9, scores[7][0] );
136                 assertEquals( 9, scores[8][0] );
137                 
138                 assertEquals( 5, scores[0][36] );
139                 assertEquals( 4, scores[1][36] );
140                 assertEquals( 5, scores[2][36] );
141                 assertEquals( 4, scores[3][36] );
142                 assertEquals( -1, scores[4][36] );
143                 assertEquals( 4, scores[5][36] );
144                 assertEquals( 3, scores[6][36] );
145                 assertEquals( 2, scores[7][36] );
146                 assertEquals( 3, scores[8][36] );
147                 
148         } 
149         
150         
151         
152 }