3 import static org.junit.Assert.*;
4 import jalview.io.TCoffeeScoreFile.Block;
5 import jalview.io.TCoffeeScoreFile.Header;
7 import java.io.BufferedReader;
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;
15 import javax.xml.parsers.ParserConfigurationException;
17 import org.junit.Test;
18 import org.xml.sax.SAXException;
20 import fr.orsay.lri.varna.exceptions.ExceptionFileFormatOrSyntax;
21 import fr.orsay.lri.varna.exceptions.ExceptionLoadingFailed;
22 import fr.orsay.lri.varna.exceptions.ExceptionPermissionDenied;
24 public class TCoffeeScoreFileTest {
26 final static File SCORE_FILE = new File("test/jalview/io/tcoffee.score_ascii");
27 final static File ALIGN_FILE = new File("test/jalview/io/tcoffee.fasta_aln");
30 public void testReadHeader() throws IOException, FileNotFoundException, ExceptionFileFormatOrSyntax, ParserConfigurationException, SAXException, ExceptionPermissionDenied, ExceptionLoadingFailed {
32 TCoffeeScoreFile scoreFile = new TCoffeeScoreFile(SCORE_FILE.getPath(),AppletFormatAdapter.FILE);
33 assertTrue(scoreFile.getWarningMessage(),scoreFile.isValid());
34 Header header = scoreFile.header;
35 assertNotNull(header);
36 assertEquals( "T-COFFEE, Version_9.02.r1228 (2012-02-16 18:15:12 - Revision 1228 - Build 336)", header.head );
37 assertEquals( 90, header.score );
38 assertEquals( 89, header.getScoreFor("1PHT") );
39 assertEquals( 90, header.getScoreFor("1BB9") );
40 assertEquals( 94, header.getScoreFor("1UHC") );
41 assertEquals( 94, header.getScoreFor("1YCS") );
42 assertEquals( 93, header.getScoreFor("1OOT") );
43 assertEquals( 94, header.getScoreFor("1ABO") );
44 assertEquals( 94, header.getScoreFor("1FYN") );
45 assertEquals( 94, header.getScoreFor("1QCF") );
46 assertEquals( 90, header.getScoreFor("cons") );
51 public void testWrongFile() throws ExceptionFileFormatOrSyntax, ParserConfigurationException, SAXException, ExceptionPermissionDenied, ExceptionLoadingFailed {
53 TCoffeeScoreFile result = new TCoffeeScoreFile(ALIGN_FILE.getPath(), FormatAdapter.FILE);
54 assertFalse(result.isValid());
55 } catch (IOException x)
57 assertTrue("File not found exception thrown",x instanceof FileNotFoundException);
62 public void testHeightAndWidth() throws IOException, ExceptionFileFormatOrSyntax, ParserConfigurationException, SAXException, ExceptionPermissionDenied, ExceptionLoadingFailed {
63 TCoffeeScoreFile result = new TCoffeeScoreFile(SCORE_FILE.getPath(), FormatAdapter.FILE);
64 assertTrue(result.isValid());
65 assertEquals( 8, result.getHeight() );
66 assertEquals( 83, result.getWidth() );
70 public void testReadBlock( ) throws IOException {
75 "1PHT 999999999999999999999999998762112222543211112134\n" +
76 "1BB9 99999999999999999999999999987-------4322----2234 \n" +
77 "1UHC 99999999999999999999999999987-------5321----2246\n" +
78 "1YCS 99999999999999999999999999986-------4321----1-35\n" +
79 "1OOT 999999999999999999999999999861-------3------1135 \n" +
80 "1ABO 99999999999999999999999999986-------422-------34\n" +
81 "1FYN 99999999999999999999999999985-------32--------35\n" +
82 "1QCF 99999999999999999999999999974-------2---------24\n" +
83 "cons 999999999999999999999999999851000110321100001134\n" +
86 FileParse source=new FileParse(BLOCK, FormatAdapter.PASTE);
87 Block block = TCoffeeScoreFile.readBlock(source, 0);
90 assertEquals( "999999999999999999999999998762112222543211112134", block.getScoresFor("1PHT") );
91 assertEquals( "99999999999999999999999999987-------4322----2234", block.getScoresFor("1BB9") );
92 assertEquals( "99999999999999999999999999987-------5321----2246", block.getScoresFor("1UHC") );
93 assertEquals( "99999999999999999999999999986-------4321----1-35", block.getScoresFor("1YCS") );
94 assertEquals( "999999999999999999999999999861-------3------1135", block.getScoresFor("1OOT") );
95 assertEquals( "99999999999999999999999999986-------422-------34", block.getScoresFor("1ABO") );
96 assertEquals( "99999999999999999999999999985-------32--------35", block.getScoresFor("1FYN") );
97 assertEquals( "99999999999999999999999999974-------2---------24", block.getScoresFor("1QCF") );
98 assertEquals( "999999999999999999999999999851000110321100001134", block.getConsensus() );
102 public void testParse() throws IOException, ExceptionFileFormatOrSyntax, ParserConfigurationException, SAXException, ExceptionPermissionDenied, ExceptionLoadingFailed {
104 TCoffeeScoreFile parser = new TCoffeeScoreFile(SCORE_FILE.getPath(), FormatAdapter.FILE);
106 assertEquals( "999999999999999999999999998762112222543211112134----------5666642367889999999999889", parser.getScoresFor("1PHT") );
107 assertEquals( "99999999999999999999999999987-------4322----22341111111111676653-355679999999999889", parser.getScoresFor("1BB9") );
108 assertEquals( "99999999999999999999999999987-------5321----2246----------788774--66789999999999889", parser.getScoresFor("1UHC") );
109 assertEquals( "99999999999999999999999999986-------4321----1-35----------78777--356789999999999889", parser.getScoresFor("1YCS") );
110 assertEquals( "999999999999999999999999999861-------3------1135----------78877--356789999999997-67", parser.getScoresFor("1OOT") );
111 assertEquals( "99999999999999999999999999986-------422-------34----------687774--56779999999999889", parser.getScoresFor("1ABO") );
112 assertEquals( "99999999999999999999999999985-------32--------35----------6888842356789999999999889", parser.getScoresFor("1FYN") );
113 assertEquals( "99999999999999999999999999974-------2---------24----------6878742356789999999999889", parser.getScoresFor("1QCF") );
114 assertEquals( "99999999999999999999999999985100011032110000113400100000006877641356789999999999889", parser.getScoresFor("cons") );
119 public void testGetAsList() throws IOException, ExceptionFileFormatOrSyntax, ParserConfigurationException, SAXException, ExceptionPermissionDenied, ExceptionLoadingFailed {
121 TCoffeeScoreFile parser = new TCoffeeScoreFile(SCORE_FILE.getPath(),FormatAdapter.FILE);
122 assertTrue(parser.getWarningMessage(),parser.isValid());
123 List<String> scores = parser.getScoresList();
124 assertEquals( "999999999999999999999999998762112222543211112134----------5666642367889999999999889", scores.get(0) );
125 assertEquals( "99999999999999999999999999987-------4322----22341111111111676653-355679999999999889", scores.get(1) );
126 assertEquals( "99999999999999999999999999987-------5321----2246----------788774--66789999999999889", scores.get(2) );
127 assertEquals( "99999999999999999999999999986-------4321----1-35----------78777--356789999999999889", scores.get(3) );
128 assertEquals( "999999999999999999999999999861-------3------1135----------78877--356789999999997-67", scores.get(4) );
129 assertEquals( "99999999999999999999999999986-------422-------34----------687774--56779999999999889", scores.get(5) );
130 assertEquals( "99999999999999999999999999985-------32--------35----------6888842356789999999999889", scores.get(6) );
131 assertEquals( "99999999999999999999999999974-------2---------24----------6878742356789999999999889", scores.get(7) );
132 assertEquals( "99999999999999999999999999985100011032110000113400100000006877641356789999999999889", scores.get(8) );
138 public void testGetAsArray() throws IOException, ExceptionFileFormatOrSyntax, ParserConfigurationException, SAXException, ExceptionPermissionDenied, ExceptionLoadingFailed {
140 TCoffeeScoreFile parser = new TCoffeeScoreFile(SCORE_FILE.getPath(),FormatAdapter.FILE);
141 assertTrue(parser.getWarningMessage(),parser.isValid());
142 byte[][] scores = parser.getScoresArray();
144 assertEquals( 9, scores[0][0] );
145 assertEquals( 9, scores[1][0] );
146 assertEquals( 9, scores[2][0] );
147 assertEquals( 9, scores[3][0] );
148 assertEquals( 9, scores[4][0] );
149 assertEquals( 9, scores[5][0] );
150 assertEquals( 9, scores[6][0] );
151 assertEquals( 9, scores[7][0] );
152 assertEquals( 9, scores[8][0] );
154 assertEquals( 5, scores[0][36] );
155 assertEquals( 4, scores[1][36] );
156 assertEquals( 5, scores[2][36] );
157 assertEquals( 4, scores[3][36] );
158 assertEquals( -1, scores[4][36] );
159 assertEquals( 4, scores[5][36] );
160 assertEquals( 3, scores[6][36] );
161 assertEquals( 2, scores[7][36] );
162 assertEquals( 3, scores[8][36] );