1 |
|
|
2 |
|
|
3 |
|
|
4 |
|
|
5 |
|
|
6 |
|
|
7 |
|
|
8 |
|
|
9 |
|
|
10 |
|
|
11 |
|
|
12 |
|
|
13 |
|
|
14 |
|
|
15 |
|
|
16 |
|
|
17 |
|
|
18 |
|
|
19 |
|
|
20 |
|
|
21 |
|
package jalview.datamodel; |
22 |
|
|
23 |
|
import static org.testng.Assert.assertEquals; |
24 |
|
import static org.testng.Assert.assertFalse; |
25 |
|
import static org.testng.Assert.assertTrue; |
26 |
|
|
27 |
|
import jalview.datamodel.ResidueCount.SymbolCounts; |
28 |
|
import jalview.gui.JvOptionPane; |
29 |
|
|
30 |
|
import org.junit.Assert; |
31 |
|
import org.testng.annotations.BeforeClass; |
32 |
|
import org.testng.annotations.Test; |
33 |
|
|
|
|
| 100% |
Uncovered Elements: 0 (272) |
Complexity: 22 |
Complexity Density: 0.09 |
|
34 |
|
public class ResidueCountTest |
35 |
|
{ |
36 |
|
|
|
|
| 100% |
Uncovered Elements: 0 (2) |
Complexity: 1 |
Complexity Density: 0.5 |
|
37 |
1 |
@BeforeClass(alwaysRun = true)... |
38 |
|
public void setUpJvOptionPane() |
39 |
|
{ |
40 |
1 |
JvOptionPane.setInteractiveMode(false); |
41 |
1 |
JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION); |
42 |
|
} |
43 |
|
|
44 |
|
|
45 |
|
|
46 |
|
|
|
|
| 100% |
Uncovered Elements: 0 (20) |
Complexity: 1 |
Complexity Density: 0.05 |
1PASS
|
|
47 |
1 |
@Test(groups = "Functional")... |
48 |
|
public void test_countNucleotide() |
49 |
|
{ |
50 |
1 |
ResidueCount rc = new ResidueCount(true); |
51 |
1 |
assertEquals(rc.getCount('A'), 0); |
52 |
1 |
assertEquals(rc.getGapCount(), 0); |
53 |
|
|
54 |
1 |
assertEquals(rc.add('A'), 1); |
55 |
1 |
assertEquals(rc.add('a'), 2); |
56 |
|
|
57 |
1 |
rc.put('g', 3); |
58 |
1 |
assertEquals(rc.add('G'), 4); |
59 |
|
|
60 |
1 |
assertEquals(rc.add('c'), 1); |
61 |
1 |
rc.put('C', 4); |
62 |
1 |
assertEquals(rc.add('N'), 1); |
63 |
|
|
64 |
1 |
assertEquals(rc.getCount('a'), 2); |
65 |
1 |
assertEquals(rc.getCount('A'), 2); |
66 |
1 |
assertEquals(rc.getCount('G'), 4); |
67 |
1 |
assertEquals(rc.getCount('c'), 4); |
68 |
1 |
assertEquals(rc.getCount('T'), 0); |
69 |
1 |
assertEquals(rc.getCount('N'), 1); |
70 |
1 |
assertEquals(rc.getCount('?'), 0); |
71 |
1 |
assertEquals(rc.getCount('-'), 0); |
72 |
|
|
73 |
1 |
assertFalse(rc.isCountingInts()); |
74 |
1 |
assertFalse(rc.isUsingOtherData()); |
75 |
|
} |
76 |
|
|
77 |
|
|
78 |
|
|
79 |
|
|
|
|
| 100% |
Uncovered Elements: 0 (11) |
Complexity: 1 |
Complexity Density: 0.09 |
1PASS
|
|
80 |
1 |
@Test(groups = "Functional")... |
81 |
|
public void testAddGap() |
82 |
|
{ |
83 |
1 |
ResidueCount rc = new ResidueCount(true); |
84 |
1 |
rc.addGap(); |
85 |
1 |
rc.add('-'); |
86 |
1 |
rc.add('.'); |
87 |
1 |
rc.add(' '); |
88 |
|
|
89 |
1 |
assertEquals(rc.getGapCount(), 4); |
90 |
1 |
assertEquals(rc.getCount(' '), 4); |
91 |
1 |
assertEquals(rc.getCount('-'), 4); |
92 |
1 |
assertEquals(rc.getCount('.'), 4); |
93 |
1 |
assertFalse(rc.isUsingOtherData()); |
94 |
1 |
assertFalse(rc.isCountingInts()); |
95 |
|
} |
96 |
|
|
|
|
| 100% |
Uncovered Elements: 0 (26) |
Complexity: 1 |
Complexity Density: 0.04 |
1PASS
|
|
97 |
1 |
@Test(groups = "Functional")... |
98 |
|
public void testOverflow() |
99 |
|
{ |
100 |
|
|
101 |
|
|
102 |
|
|
103 |
1 |
ResidueCount rc = new ResidueCount(true); |
104 |
1 |
rc.addGap(); |
105 |
1 |
rc.put('A', Short.MAX_VALUE - 1); |
106 |
1 |
assertFalse(rc.isCountingInts()); |
107 |
1 |
rc.add('A'); |
108 |
1 |
assertFalse(rc.isCountingInts()); |
109 |
1 |
rc.add('A'); |
110 |
1 |
assertTrue(rc.isCountingInts()); |
111 |
1 |
assertEquals(rc.getCount('a'), Short.MAX_VALUE + 1); |
112 |
1 |
rc.add('A'); |
113 |
1 |
assertTrue(rc.isCountingInts()); |
114 |
1 |
assertEquals(rc.getCount('a'), Short.MAX_VALUE + 2); |
115 |
1 |
assertEquals(rc.getGapCount(), 1); |
116 |
1 |
rc.addGap(); |
117 |
1 |
assertEquals(rc.getGapCount(), 2); |
118 |
|
|
119 |
|
|
120 |
|
|
121 |
|
|
122 |
1 |
rc = new ResidueCount(true); |
123 |
1 |
rc.put('G', Short.MAX_VALUE + 1); |
124 |
1 |
assertTrue(rc.isCountingInts()); |
125 |
1 |
assertEquals(rc.getCount('g'), Short.MAX_VALUE + 1); |
126 |
1 |
rc.put('G', 1); |
127 |
1 |
assertTrue(rc.isCountingInts()); |
128 |
1 |
assertEquals(rc.getCount('g'), 1); |
129 |
|
|
130 |
|
|
131 |
|
|
132 |
|
|
133 |
1 |
rc = new ResidueCount(true); |
134 |
1 |
rc.put('G', Short.MIN_VALUE - 1); |
135 |
1 |
assertTrue(rc.isCountingInts()); |
136 |
1 |
assertEquals(rc.getCount('g'), Short.MIN_VALUE - 1); |
137 |
|
} |
138 |
|
|
139 |
|
|
140 |
|
|
141 |
|
|
|
|
| 100% |
Uncovered Elements: 0 (17) |
Complexity: 1 |
Complexity Density: 0.06 |
1PASS
|
|
142 |
1 |
@Test(groups = "Functional")... |
143 |
|
public void test_countPeptide() |
144 |
|
{ |
145 |
1 |
ResidueCount rc = new ResidueCount(false); |
146 |
1 |
rc.put('q', 4); |
147 |
1 |
rc.add('Q'); |
148 |
1 |
rc.add('X'); |
149 |
1 |
rc.add('x'); |
150 |
1 |
rc.add('W'); |
151 |
1 |
rc.put('w', 7); |
152 |
1 |
rc.put('m', 12); |
153 |
1 |
rc.put('M', 13); |
154 |
|
|
155 |
1 |
assertEquals(rc.getCount('q'), 5); |
156 |
1 |
assertEquals(rc.getCount('X'), 2); |
157 |
1 |
assertEquals(rc.getCount('W'), 7); |
158 |
1 |
assertEquals(rc.getCount('m'), 13); |
159 |
1 |
assertEquals(rc.getCount('G'), 0); |
160 |
1 |
assertEquals(rc.getCount('-'), 0); |
161 |
|
|
162 |
1 |
assertFalse(rc.isCountingInts()); |
163 |
1 |
assertFalse(rc.isUsingOtherData()); |
164 |
|
} |
165 |
|
|
|
|
| 100% |
Uncovered Elements: 0 (18) |
Complexity: 3 |
Complexity Density: 0.21 |
1PASS
|
|
166 |
1 |
@Test(groups = "Functional")... |
167 |
|
public void test_unexpectedPeptide() |
168 |
|
{ |
169 |
1 |
ResidueCount rc = new ResidueCount(false); |
170 |
|
|
171 |
1 |
String aas = "ACDEFGHIKLMNPQRSTVWXY"; |
172 |
1 |
String lower = aas.toLowerCase(); |
173 |
22 |
for (int i = 0; i < aas.length(); i++) |
174 |
|
{ |
175 |
21 |
rc.put(aas.charAt(i), i); |
176 |
21 |
rc.add(lower.charAt(i)); |
177 |
|
} |
178 |
22 |
for (int i = 0; i < aas.length(); i++) |
179 |
|
{ |
180 |
21 |
assertEquals(rc.getCount(aas.charAt(i)), i + 1); |
181 |
|
} |
182 |
1 |
assertFalse(rc.isUsingOtherData()); |
183 |
|
|
184 |
1 |
rc.put('J', 4); |
185 |
1 |
assertTrue(rc.isUsingOtherData()); |
186 |
1 |
assertEquals(rc.getCount('J'), 4); |
187 |
1 |
rc.add('j'); |
188 |
1 |
assertEquals(rc.getCount('J'), 5); |
189 |
|
} |
190 |
|
|
|
|
| 100% |
Uncovered Elements: 0 (15) |
Complexity: 3 |
Complexity Density: 0.27 |
1PASS
|
|
191 |
1 |
@Test(groups = "Functional")... |
192 |
|
public void test_unexpectedNucleotide() |
193 |
|
{ |
194 |
1 |
ResidueCount rc = new ResidueCount(true); |
195 |
|
|
196 |
1 |
String nucs = "ACGTUN"; |
197 |
1 |
String lower = nucs.toLowerCase(); |
198 |
7 |
for (int i = 0; i < nucs.length(); i++) |
199 |
|
{ |
200 |
6 |
rc.put(nucs.charAt(i), i); |
201 |
6 |
rc.add(lower.charAt(i)); |
202 |
|
} |
203 |
7 |
for (int i = 0; i < nucs.length(); i++) |
204 |
|
{ |
205 |
6 |
assertEquals(rc.getCount(nucs.charAt(i)), i + 1); |
206 |
|
} |
207 |
1 |
assertFalse(rc.isUsingOtherData()); |
208 |
|
|
209 |
1 |
rc.add('J'); |
210 |
1 |
assertTrue(rc.isUsingOtherData()); |
211 |
|
} |
212 |
|
|
|
|
| 100% |
Uncovered Elements: 0 (23) |
Complexity: 1 |
Complexity Density: 0.04 |
1PASS
|
|
213 |
1 |
@Test(groups = "Functional")... |
214 |
|
public void testGetModalCount() |
215 |
|
{ |
216 |
1 |
ResidueCount rc = new ResidueCount(true); |
217 |
1 |
rc.add('c'); |
218 |
1 |
rc.add('g'); |
219 |
1 |
rc.add('c'); |
220 |
1 |
assertEquals(rc.getModalCount(), 2); |
221 |
|
|
222 |
|
|
223 |
1 |
rc = new ResidueCount(); |
224 |
1 |
rc.add('c'); |
225 |
1 |
rc.put('g', Short.MAX_VALUE); |
226 |
1 |
rc.add('G'); |
227 |
1 |
assertEquals(rc.getModalCount(), Short.MAX_VALUE + 1); |
228 |
|
|
229 |
|
|
230 |
1 |
rc = new ResidueCount(false); |
231 |
1 |
rc.add('Q'); |
232 |
1 |
rc.add('{'); |
233 |
1 |
rc.add('{'); |
234 |
1 |
assertEquals(rc.getModalCount(), 2); |
235 |
|
|
236 |
|
|
237 |
1 |
rc = new ResidueCount(); |
238 |
1 |
rc.add('Q'); |
239 |
1 |
rc.add('P'); |
240 |
1 |
rc.add('Q'); |
241 |
1 |
rc.addGap(); |
242 |
1 |
rc.addGap(); |
243 |
1 |
rc.addGap(); |
244 |
1 |
assertEquals(rc.getModalCount(), 2); |
245 |
|
} |
246 |
|
|
|
|
| 100% |
Uncovered Elements: 0 (47) |
Complexity: 1 |
Complexity Density: 0.02 |
1PASS
|
|
247 |
1 |
@Test(groups = "Functional")... |
248 |
|
public void testGetResiduesForCount() |
249 |
|
{ |
250 |
1 |
ResidueCount rc = new ResidueCount(true); |
251 |
1 |
rc.add('c'); |
252 |
1 |
rc.add('g'); |
253 |
1 |
rc.add('c'); |
254 |
1 |
assertEquals(rc.getResiduesForCount(2), "C"); |
255 |
1 |
assertEquals(rc.getResiduesForCount(1), "G"); |
256 |
1 |
assertEquals(rc.getResiduesForCount(3), ""); |
257 |
1 |
assertEquals(rc.getResiduesForCount(0), ""); |
258 |
1 |
assertEquals(rc.getResiduesForCount(-1), ""); |
259 |
|
|
260 |
|
|
261 |
1 |
rc = new ResidueCount(true); |
262 |
1 |
rc.add('c'); |
263 |
1 |
rc.put('g', Short.MAX_VALUE); |
264 |
1 |
rc.add('G'); |
265 |
1 |
assertEquals(rc.getResiduesForCount(Short.MAX_VALUE + 1), "G"); |
266 |
1 |
assertEquals(rc.getResiduesForCount(1), "C"); |
267 |
|
|
268 |
|
|
269 |
1 |
rc = new ResidueCount(false); |
270 |
1 |
rc.add('c'); |
271 |
1 |
rc.put('p', Short.MAX_VALUE); |
272 |
1 |
rc.add('P'); |
273 |
1 |
assertEquals(rc.getResiduesForCount(Short.MAX_VALUE + 1), "P"); |
274 |
1 |
assertEquals(rc.getResiduesForCount(1), "C"); |
275 |
|
|
276 |
|
|
277 |
1 |
rc = new ResidueCount(); |
278 |
1 |
rc.add('Q'); |
279 |
1 |
rc.add('{'); |
280 |
1 |
rc.add('{'); |
281 |
1 |
assertEquals(rc.getResiduesForCount(1), "Q"); |
282 |
1 |
assertEquals(rc.getResiduesForCount(2), "{"); |
283 |
|
|
284 |
|
|
285 |
1 |
rc = new ResidueCount(); |
286 |
1 |
rc.add('G'); |
287 |
1 |
rc.add('G'); |
288 |
1 |
rc.add('c'); |
289 |
1 |
rc.add('C'); |
290 |
1 |
rc.add('U'); |
291 |
1 |
assertEquals(rc.getResiduesForCount(1), "U"); |
292 |
1 |
assertEquals(rc.getResiduesForCount(2), "CG"); |
293 |
|
|
294 |
|
|
295 |
1 |
rc = new ResidueCount(); |
296 |
1 |
rc.add('G'); |
297 |
1 |
rc.add('t'); |
298 |
1 |
rc.add('['); |
299 |
1 |
rc.add('['); |
300 |
1 |
rc.add('t'); |
301 |
1 |
rc.add('G'); |
302 |
1 |
rc.add('c'); |
303 |
1 |
rc.add('C'); |
304 |
1 |
rc.add('U'); |
305 |
1 |
assertEquals(rc.getResiduesForCount(1), "U"); |
306 |
1 |
assertEquals(rc.getResiduesForCount(2), "CGT["); |
307 |
|
} |
308 |
|
|
|
|
| 100% |
Uncovered Elements: 0 (16) |
Complexity: 1 |
Complexity Density: 0.06 |
1PASS
|
|
309 |
1 |
@Test(groups = "Functional")... |
310 |
|
public void testGetSymbolCounts_nucleotide() |
311 |
|
{ |
312 |
1 |
ResidueCount rc = new ResidueCount(true); |
313 |
1 |
rc.add('g'); |
314 |
1 |
rc.add('c'); |
315 |
1 |
rc.add('G'); |
316 |
1 |
rc.add('J'); |
317 |
1 |
rc.add('g'); |
318 |
1 |
rc.add('N'); |
319 |
1 |
rc.put('[', 0); |
320 |
|
|
321 |
1 |
SymbolCounts sc = rc.getSymbolCounts(); |
322 |
1 |
Assert.assertArrayEquals(new char[] { 'C', 'G', 'N', 'J', '[' }, |
323 |
|
sc.symbols); |
324 |
1 |
Assert.assertArrayEquals(new int[] { 1, 3, 1, 1, 0 }, sc.values); |
325 |
|
|
326 |
|
|
327 |
1 |
rc.put('U', Short.MAX_VALUE); |
328 |
1 |
rc.add('u'); |
329 |
1 |
sc = rc.getSymbolCounts(); |
330 |
1 |
Assert.assertArrayEquals(new char[] { 'C', 'G', 'N', 'U', 'J', '[' }, |
331 |
|
sc.symbols); |
332 |
1 |
Assert.assertArrayEquals(new int[] { 1, 3, 1, 32768, 1, 0 }, sc.values); |
333 |
|
} |
334 |
|
|
|
|
| 100% |
Uncovered Elements: 0 (15) |
Complexity: 1 |
Complexity Density: 0.07 |
1PASS
|
|
335 |
1 |
@Test(groups = "Functional")... |
336 |
|
public void testGetSymbolCounts_peptide() |
337 |
|
{ |
338 |
1 |
ResidueCount rc = new ResidueCount(false); |
339 |
1 |
rc.add('W'); |
340 |
1 |
rc.add('q'); |
341 |
1 |
rc.add('W'); |
342 |
1 |
rc.add('Z'); |
343 |
1 |
rc.add('w'); |
344 |
1 |
rc.add('L'); |
345 |
|
|
346 |
1 |
SymbolCounts sc = rc.getSymbolCounts(); |
347 |
1 |
Assert.assertArrayEquals(new char[] { 'L', 'Q', 'W', 'Z' }, sc.symbols); |
348 |
1 |
Assert.assertArrayEquals(new int[] { 1, 1, 3, 1 }, sc.values); |
349 |
|
|
350 |
|
|
351 |
1 |
rc.put('W', Short.MAX_VALUE); |
352 |
1 |
rc.add('W'); |
353 |
1 |
sc = rc.getSymbolCounts(); |
354 |
1 |
Assert.assertArrayEquals(new char[] { 'L', 'Q', 'W', 'Z' }, sc.symbols); |
355 |
1 |
Assert.assertArrayEquals(new int[] { 1, 1, 32768, 1 }, sc.values); |
356 |
|
} |
357 |
|
|
|
|
| 100% |
Uncovered Elements: 0 (10) |
Complexity: 1 |
Complexity Density: 0.1 |
1PASS
|
|
358 |
1 |
@Test(groups = "Functional")... |
359 |
|
public void testToString() |
360 |
|
{ |
361 |
1 |
ResidueCount rc = new ResidueCount(); |
362 |
1 |
rc.add('q'); |
363 |
1 |
rc.add('c'); |
364 |
1 |
rc.add('Q'); |
365 |
1 |
assertEquals(rc.toString(), "[ C:1 Q:2 ]"); |
366 |
|
|
367 |
|
|
368 |
1 |
rc.add('{'); |
369 |
1 |
assertEquals(rc.toString(), "[ C:1 Q:2 {:1 ]"); |
370 |
|
|
371 |
|
|
372 |
1 |
rc.put('G', Short.MAX_VALUE); |
373 |
1 |
rc.add('g'); |
374 |
1 |
assertEquals(rc.toString(), "[ C:1 G:32768 Q:2 {:1 ]"); |
375 |
|
} |
376 |
|
|
|
|
| 100% |
Uncovered Elements: 0 (23) |
Complexity: 5 |
Complexity Density: 0.33 |
1PASS
|
|
377 |
1 |
@Test(groups = "Functional")... |
378 |
|
public void testGetTooltip() |
379 |
|
{ |
380 |
1 |
ResidueCount rc = new ResidueCount(); |
381 |
|
|
382 |
|
|
383 |
1 |
assertEquals(rc.getTooltip(20, 1), ""); |
384 |
|
|
385 |
|
|
386 |
|
|
387 |
|
|
388 |
8 |
for (int i = 0; i < 7; i++) |
389 |
|
{ |
390 |
7 |
rc.add('c'); |
391 |
7 |
rc.add('q'); |
392 |
|
} |
393 |
11 |
for (int i = 0; i < 10; i++) |
394 |
|
{ |
395 |
10 |
rc.add('p'); |
396 |
|
} |
397 |
10 |
for (int i = 0; i < 9; i++) |
398 |
|
{ |
399 |
9 |
rc.add('W'); |
400 |
|
} |
401 |
7 |
for (int i = 0; i < 6; i++) |
402 |
|
{ |
403 |
6 |
rc.add('K'); |
404 |
|
} |
405 |
1 |
rc.add('F'); |
406 |
|
|
407 |
|
|
408 |
|
|
409 |
|
|
410 |
|
|
411 |
1 |
assertEquals(rc.getTooltip(40, 0), |
412 |
|
"P 25%; W 23%; C 18%; Q 18%; K 15%; F 3%"); |
413 |
|
|
414 |
1 |
rc.add('Q'); |
415 |
|
|
416 |
|
|
417 |
|
|
418 |
1 |
assertEquals(rc.getTooltip(30, 1), |
419 |
|
"P 33.3%; W 30.0%; Q 26.7%; C 23.3%; K 20.0%; F 3.3%"); |
420 |
|
} |
421 |
|
|
|
|
| 100% |
Uncovered Elements: 0 (15) |
Complexity: 1 |
Complexity Density: 0.07 |
1PASS
|
|
422 |
1 |
@Test(groups = "Functional")... |
423 |
|
public void testPut() |
424 |
|
{ |
425 |
1 |
ResidueCount rc = new ResidueCount(); |
426 |
1 |
rc.put('q', 3); |
427 |
1 |
assertEquals(rc.getCount('Q'), 3); |
428 |
1 |
rc.put(' ', 4); |
429 |
1 |
assertEquals(rc.getGapCount(), 4); |
430 |
1 |
rc.put('.', 5); |
431 |
1 |
assertEquals(rc.getGapCount(), 5); |
432 |
1 |
rc.put('-', 6); |
433 |
1 |
assertEquals(rc.getGapCount(), 6); |
434 |
|
|
435 |
1 |
rc.put('?', 5); |
436 |
1 |
assertEquals(rc.getCount('?'), 5); |
437 |
1 |
rc.put('?', 6); |
438 |
1 |
rc.put('!', 7); |
439 |
1 |
assertEquals(rc.getCount('?'), 6); |
440 |
1 |
assertEquals(rc.getCount('!'), 7); |
441 |
|
} |
442 |
|
} |