2 * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
3 * Copyright (C) $$Year-Rel$$ The Jalview Authors
5 * This file is part of Jalview.
7 * Jalview is free software: you can redistribute it and/or
8 * modify it under the terms of the GNU General Public License
9 * as published by the Free Software Foundation, either version 3
10 * of the License, or (at your option) any later version.
12 * Jalview is distributed in the hope that it will be useful, but
13 * WITHOUT ANY WARRANTY; without even the implied warranty
14 * of MERCHANTABILITY or FITNESS FOR A PARTICULAR
15 * PURPOSE. See the GNU General Public License for more details.
17 * You should have received a copy of the GNU General Public License
18 * along with Jalview. If not, see <http://www.gnu.org/licenses/>.
19 * The Jalview Authors are detailed in the 'AUTHORS' file.
23 import jalview.gui.JvOptionPane;
24 import jalview.io.TCoffeeScoreFile.Block;
25 import jalview.io.TCoffeeScoreFile.Header;
28 import java.io.FileNotFoundException;
29 import java.io.IOException;
30 import java.util.List;
32 import org.testng.AssertJUnit;
33 import org.testng.annotations.BeforeClass;
34 import org.testng.annotations.Test;
36 public class TCoffeeScoreFileTest
39 @BeforeClass(alwaysRun = true)
40 public void setUpJvOptionPane()
42 JvOptionPane.setInteractiveMode(false);
43 JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
46 final static File SCORE_FILE = new File(
47 "test/jalview/io/tcoffee.score_ascii");
49 final static File ALIGN_FILE = new File(
50 "test/jalview/io/tcoffee.fasta_aln");
52 @Test(groups = { "Functional" })
53 public void testReadHeader() throws IOException
56 TCoffeeScoreFile scoreFile = new TCoffeeScoreFile(SCORE_FILE.getPath(),
58 AssertJUnit.assertTrue(scoreFile.getWarningMessage(),
61 Header header = scoreFile.header;
62 AssertJUnit.assertNotNull(header);
63 AssertJUnit.assertEquals(
64 "T-COFFEE, Version_9.02.r1228 (2012-02-16 18:15:12 - Revision 1228 - Build 336)",
66 AssertJUnit.assertEquals(90, header.score);
67 AssertJUnit.assertEquals(89, header.getScoreFor("1PHT"));
68 AssertJUnit.assertEquals(90, header.getScoreFor("1BB9"));
69 AssertJUnit.assertEquals(94, header.getScoreFor("1UHC"));
70 AssertJUnit.assertEquals(94, header.getScoreFor("1YCS"));
71 AssertJUnit.assertEquals(93, header.getScoreFor("1OOT"));
72 AssertJUnit.assertEquals(94, header.getScoreFor("1ABO"));
73 AssertJUnit.assertEquals(94, header.getScoreFor("1FYN"));
74 AssertJUnit.assertEquals(94, header.getScoreFor("1QCF"));
75 AssertJUnit.assertEquals(90, header.getScoreFor("cons"));
78 @Test(groups = { "Functional" })
79 public void testWrongFile()
83 TCoffeeScoreFile result = new TCoffeeScoreFile(ALIGN_FILE.getPath(),
85 AssertJUnit.assertFalse(result.isValid());
86 } catch (IOException x)
88 AssertJUnit.assertTrue("File not found exception thrown",
89 x instanceof FileNotFoundException);
93 @Test(groups = { "Functional" })
94 public void testHeightAndWidth() throws IOException
96 TCoffeeScoreFile result = new TCoffeeScoreFile(SCORE_FILE.getPath(),
98 AssertJUnit.assertTrue(result.isValid());
99 AssertJUnit.assertEquals(8, result.getHeight());
100 AssertJUnit.assertEquals(83, result.getWidth());
103 @Test(groups = { "Functional" })
104 public void testReadBlock() throws IOException
107 String BLOCK = "\n" + "\n" + "\n"
108 + "1PHT 999999999999999999999999998762112222543211112134\n"
109 + "1BB9 99999999999999999999999999987-------4322----2234 \n"
110 + "1UHC 99999999999999999999999999987-------5321----2246\n"
111 + "1YCS 99999999999999999999999999986-------4321----1-35\n"
112 + "1OOT 999999999999999999999999999861-------3------1135 \n"
113 + "1ABO 99999999999999999999999999986-------422-------34\n"
114 + "1FYN 99999999999999999999999999985-------32--------35\n"
115 + "1QCF 99999999999999999999999999974-------2---------24\n"
116 + "cons 999999999999999999999999999851000110321100001134\n"
118 FileParse source = new FileParse(BLOCK, DataSourceType.PASTE);
119 Block block = TCoffeeScoreFile.readBlock(source, 0);
121 AssertJUnit.assertNotNull(block);
122 AssertJUnit.assertEquals(
123 "999999999999999999999999998762112222543211112134",
124 block.getScoresFor("1PHT"));
125 AssertJUnit.assertEquals(
126 "99999999999999999999999999987-------4322----2234",
127 block.getScoresFor("1BB9"));
128 AssertJUnit.assertEquals(
129 "99999999999999999999999999987-------5321----2246",
130 block.getScoresFor("1UHC"));
131 AssertJUnit.assertEquals(
132 "99999999999999999999999999986-------4321----1-35",
133 block.getScoresFor("1YCS"));
134 AssertJUnit.assertEquals(
135 "999999999999999999999999999861-------3------1135",
136 block.getScoresFor("1OOT"));
137 AssertJUnit.assertEquals(
138 "99999999999999999999999999986-------422-------34",
139 block.getScoresFor("1ABO"));
140 AssertJUnit.assertEquals(
141 "99999999999999999999999999985-------32--------35",
142 block.getScoresFor("1FYN"));
143 AssertJUnit.assertEquals(
144 "99999999999999999999999999974-------2---------24",
145 block.getScoresFor("1QCF"));
146 AssertJUnit.assertEquals(
147 "999999999999999999999999999851000110321100001134",
148 block.getConsensus());
151 @Test(groups = { "Functional" })
152 public void testParse() throws IOException
155 TCoffeeScoreFile parser = new TCoffeeScoreFile(SCORE_FILE.getPath(),
156 DataSourceType.FILE);
158 AssertJUnit.assertEquals(
159 "999999999999999999999999998762112222543211112134----------5666642367889999999999889",
160 parser.getScoresFor("1PHT"));
161 AssertJUnit.assertEquals(
162 "99999999999999999999999999987-------4322----22341111111111676653-355679999999999889",
163 parser.getScoresFor("1BB9"));
164 AssertJUnit.assertEquals(
165 "99999999999999999999999999987-------5321----2246----------788774--66789999999999889",
166 parser.getScoresFor("1UHC"));
167 AssertJUnit.assertEquals(
168 "99999999999999999999999999986-------4321----1-35----------78777--356789999999999889",
169 parser.getScoresFor("1YCS"));
170 AssertJUnit.assertEquals(
171 "999999999999999999999999999861-------3------1135----------78877--356789999999997-67",
172 parser.getScoresFor("1OOT"));
173 AssertJUnit.assertEquals(
174 "99999999999999999999999999986-------422-------34----------687774--56779999999999889",
175 parser.getScoresFor("1ABO"));
176 AssertJUnit.assertEquals(
177 "99999999999999999999999999985-------32--------35----------6888842356789999999999889",
178 parser.getScoresFor("1FYN"));
179 AssertJUnit.assertEquals(
180 "99999999999999999999999999974-------2---------24----------6878742356789999999999889",
181 parser.getScoresFor("1QCF"));
182 AssertJUnit.assertEquals(
183 "99999999999999999999999999985100011032110000113400100000006877641356789999999999889",
184 parser.getScoresFor("cons"));
187 @Test(groups = { "Functional" })
188 public void testGetAsList() throws IOException
191 TCoffeeScoreFile parser = new TCoffeeScoreFile(SCORE_FILE.getPath(),
192 DataSourceType.FILE);
193 AssertJUnit.assertTrue(parser.getWarningMessage(), parser.isValid());
194 List<String> scores = parser.getScoresList();
195 AssertJUnit.assertEquals(
196 "999999999999999999999999998762112222543211112134----------5666642367889999999999889",
198 AssertJUnit.assertEquals(
199 "99999999999999999999999999987-------4322----22341111111111676653-355679999999999889",
201 AssertJUnit.assertEquals(
202 "99999999999999999999999999987-------5321----2246----------788774--66789999999999889",
204 AssertJUnit.assertEquals(
205 "99999999999999999999999999986-------4321----1-35----------78777--356789999999999889",
207 AssertJUnit.assertEquals(
208 "999999999999999999999999999861-------3------1135----------78877--356789999999997-67",
210 AssertJUnit.assertEquals(
211 "99999999999999999999999999986-------422-------34----------687774--56779999999999889",
213 AssertJUnit.assertEquals(
214 "99999999999999999999999999985-------32--------35----------6888842356789999999999889",
216 AssertJUnit.assertEquals(
217 "99999999999999999999999999974-------2---------24----------6878742356789999999999889",
219 AssertJUnit.assertEquals(
220 "99999999999999999999999999985100011032110000113400100000006877641356789999999999889",
225 @Test(groups = { "Functional" })
226 public void testGetAsArray() throws IOException
229 TCoffeeScoreFile parser = new TCoffeeScoreFile(SCORE_FILE.getPath(),
230 DataSourceType.FILE);
231 AssertJUnit.assertTrue(parser.getWarningMessage(), parser.isValid());
232 byte[][] scores = parser.getScoresArray();
234 AssertJUnit.assertEquals(9, scores[0][0]);
235 AssertJUnit.assertEquals(9, scores[1][0]);
236 AssertJUnit.assertEquals(9, scores[2][0]);
237 AssertJUnit.assertEquals(9, scores[3][0]);
238 AssertJUnit.assertEquals(9, scores[4][0]);
239 AssertJUnit.assertEquals(9, scores[5][0]);
240 AssertJUnit.assertEquals(9, scores[6][0]);
241 AssertJUnit.assertEquals(9, scores[7][0]);
242 AssertJUnit.assertEquals(9, scores[8][0]);
244 AssertJUnit.assertEquals(5, scores[0][36]);
245 AssertJUnit.assertEquals(4, scores[1][36]);
246 AssertJUnit.assertEquals(5, scores[2][36]);
247 AssertJUnit.assertEquals(4, scores[3][36]);
248 AssertJUnit.assertEquals(-1, scores[4][36]);
249 AssertJUnit.assertEquals(4, scores[5][36]);
250 AssertJUnit.assertEquals(3, scores[6][36]);
251 AssertJUnit.assertEquals(2, scores[7][36]);
252 AssertJUnit.assertEquals(3, scores[8][36]);
256 @Test(groups = { "Functional" })
257 public void testHeightAndWidthWithResidueNumbers() throws Exception
259 String file = "test/jalview/io/tcoffee.score_ascii_with_residue_numbers";
260 TCoffeeScoreFile result = new TCoffeeScoreFile(file,
261 DataSourceType.FILE);
262 AssertJUnit.assertTrue(result.isValid());
263 AssertJUnit.assertEquals(5, result.getHeight());
264 AssertJUnit.assertEquals(84, result.getWidth());