1 |
|
|
2 |
|
|
3 |
|
|
4 |
|
|
5 |
|
|
6 |
|
|
7 |
|
|
8 |
|
|
9 |
|
|
10 |
|
|
11 |
|
|
12 |
|
|
13 |
|
|
14 |
|
|
15 |
|
|
16 |
|
|
17 |
|
|
18 |
|
|
19 |
|
|
20 |
|
|
21 |
|
package jalview.analysis; |
22 |
|
|
23 |
|
import static org.testng.Assert.assertEquals; |
24 |
|
import static org.testng.Assert.assertSame; |
25 |
|
import static org.testng.Assert.assertTrue; |
26 |
|
|
27 |
|
import jalview.datamodel.Alignment; |
28 |
|
import jalview.datamodel.AlignmentI; |
29 |
|
import jalview.datamodel.SearchResultMatchI; |
30 |
|
import jalview.datamodel.SearchResultsI; |
31 |
|
import jalview.datamodel.Sequence; |
32 |
|
import jalview.gui.AlignFrame; |
33 |
|
import jalview.gui.JvOptionPane; |
34 |
|
import jalview.io.DataSourceType; |
35 |
|
import jalview.io.FileLoader; |
36 |
|
|
37 |
|
import java.util.List; |
38 |
|
|
39 |
|
import org.testng.annotations.BeforeClass; |
40 |
|
import org.testng.annotations.Test; |
41 |
|
|
|
|
| 100% |
Uncovered Elements: 0 (159) |
Complexity: 9 |
Complexity Density: 0.06 |
|
42 |
|
public class FinderTest |
43 |
|
{ |
|
|
| 100% |
Uncovered Elements: 0 (2) |
Complexity: 1 |
Complexity Density: 0.5 |
|
44 |
1 |
@BeforeClass(alwaysRun = true)... |
45 |
|
public void setUpJvOptionPane() |
46 |
|
{ |
47 |
1 |
JvOptionPane.setInteractiveMode(false); |
48 |
1 |
JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION); |
49 |
|
} |
50 |
|
|
51 |
|
private AlignFrame af; |
52 |
|
|
53 |
|
private AlignmentI al; |
54 |
|
|
|
|
| 100% |
Uncovered Elements: 0 (3) |
Complexity: 1 |
Complexity Density: 0.33 |
|
55 |
1 |
@BeforeClass(groups = "Functional")... |
56 |
|
public void setUp() |
57 |
|
{ |
58 |
1 |
String seqData = "seq1 ABCD--EF-GHI\n" + "seq2 A--BCDefHI\n" |
59 |
|
+ "seq3 --bcdEFH\n" + "seq4 aa---aMMMMMaaa\n"; |
60 |
1 |
af = new FileLoader().LoadFileWaitTillLoaded(seqData, |
61 |
|
DataSourceType.PASTE); |
62 |
1 |
al = af.getViewport().getAlignment(); |
63 |
|
} |
64 |
|
|
65 |
|
|
66 |
|
|
67 |
|
|
|
|
| 100% |
Uncovered Elements: 0 (12) |
Complexity: 1 |
Complexity Density: 0.08 |
1PASS
|
|
68 |
1 |
@Test(groups = "Functional")... |
69 |
|
public void testFindAll_regex() |
70 |
|
{ |
71 |
1 |
Finder f = new Finder(al, null); |
72 |
1 |
f.setFindAll(true); |
73 |
1 |
f.find("E.H"); |
74 |
|
|
75 |
|
|
76 |
1 |
SearchResultsI sr = f.getSearchResults(); |
77 |
1 |
assertEquals(sr.getSize(), 2); |
78 |
1 |
List<SearchResultMatchI> matches = sr.getResults(); |
79 |
1 |
assertSame(al.getSequenceAt(1), matches.get(0).getSequence()); |
80 |
1 |
assertSame(al.getSequenceAt(2), matches.get(1).getSequence()); |
81 |
1 |
assertEquals(matches.get(0).getStart(), 5); |
82 |
1 |
assertEquals(matches.get(0).getEnd(), 7); |
83 |
1 |
assertEquals(matches.get(1).getStart(), 4); |
84 |
1 |
assertEquals(matches.get(1).getEnd(), 6); |
85 |
|
} |
86 |
|
|
87 |
|
|
88 |
|
|
89 |
|
|
|
|
| 100% |
Uncovered Elements: 0 (12) |
Complexity: 1 |
Complexity Density: 0.08 |
1PASS
|
|
90 |
1 |
@Test(groups = "Functional")... |
91 |
|
public void testFind_residueNumber() |
92 |
|
{ |
93 |
1 |
Finder f = new Finder(al, null); |
94 |
1 |
f.setFindAll(true); |
95 |
1 |
f.find("9"); |
96 |
|
|
97 |
|
|
98 |
1 |
SearchResultsI sr = f.getSearchResults(); |
99 |
1 |
assertEquals(sr.getSize(), 2); |
100 |
1 |
List<SearchResultMatchI> matches = sr.getResults(); |
101 |
1 |
assertSame(al.getSequenceAt(0), matches.get(0).getSequence()); |
102 |
1 |
assertSame(al.getSequenceAt(3), matches.get(1).getSequence()); |
103 |
1 |
assertEquals(matches.get(0).getStart(), 9); |
104 |
1 |
assertEquals(matches.get(0).getEnd(), 9); |
105 |
1 |
assertEquals(matches.get(1).getStart(), 9); |
106 |
1 |
assertEquals(matches.get(1).getEnd(), 9); |
107 |
|
} |
108 |
|
|
109 |
|
|
110 |
|
|
111 |
|
|
|
|
| 100% |
Uncovered Elements: 0 (20) |
Complexity: 1 |
Complexity Density: 0.05 |
1PASS
|
|
112 |
1 |
@Test(groups = "Functional")... |
113 |
|
public void testFindNext() |
114 |
|
{ |
115 |
|
|
116 |
|
|
117 |
|
|
118 |
|
|
119 |
1 |
Finder f = new Finder(al, null, 1, -1); |
120 |
1 |
f.find("e"); |
121 |
|
|
122 |
1 |
assertTrue(f.getSearchResults().isEmpty()); |
123 |
1 |
assertEquals(f.getIdMatch().size(), 1); |
124 |
1 |
assertSame(f.getIdMatch().get(0), al.getSequenceAt(1)); |
125 |
|
|
126 |
|
|
127 |
1 |
assertEquals(f.getResIndex(), 0); |
128 |
1 |
f = new Finder(al, null, 1, 0); |
129 |
1 |
f.find("e"); |
130 |
1 |
assertTrue(f.getIdMatch().isEmpty()); |
131 |
1 |
assertEquals(f.getSearchResults().getSize(), 1); |
132 |
1 |
List<SearchResultMatchI> matches = f.getSearchResults().getResults(); |
133 |
1 |
assertEquals(matches.get(0).getStart(), 5); |
134 |
1 |
assertEquals(matches.get(0).getEnd(), 5); |
135 |
1 |
assertSame(matches.get(0).getSequence(), al.getSequenceAt(1)); |
136 |
|
|
137 |
1 |
assertEquals(f.getSeqIndex(), 1); |
138 |
|
|
139 |
|
|
140 |
1 |
assertEquals(f.getResIndex(), 5); |
141 |
|
|
142 |
|
|
143 |
1 |
f = new Finder(al, null, 1, 5); |
144 |
1 |
f.find("e"); |
145 |
1 |
assertEquals(f.getIdMatch().size(), 1); |
146 |
1 |
assertSame(f.getIdMatch().get(0), al.getSequenceAt(2)); |
147 |
|
} |
148 |
|
|
149 |
|
|
150 |
|
|
151 |
|
|
|
|
| 100% |
Uncovered Elements: 0 (38) |
Complexity: 1 |
Complexity Density: 0.03 |
1PASS
|
|
152 |
1 |
@Test(groups = "Functional")... |
153 |
|
public void testFindAll_inDescription() |
154 |
|
{ |
155 |
1 |
AlignmentI al2 = new Alignment(al); |
156 |
1 |
al2.getSequenceAt(0).setDescription("BRAF"); |
157 |
1 |
al2.getSequenceAt(1).setDescription("braf"); |
158 |
1 |
Finder f = new Finder(al2, null); |
159 |
1 |
f.setFindAll(true); |
160 |
1 |
f.setIncludeDescription(true); |
161 |
|
|
162 |
1 |
f.find("rAF"); |
163 |
1 |
assertEquals(f.getIdMatch().size(), 2); |
164 |
1 |
assertSame(f.getIdMatch().get(0), al2.getSequenceAt(0)); |
165 |
1 |
assertSame(f.getIdMatch().get(1), al2.getSequenceAt(1)); |
166 |
1 |
assertTrue(f.getSearchResults().isEmpty()); |
167 |
|
|
168 |
|
|
169 |
|
|
170 |
|
|
171 |
1 |
f = new Finder(al2, null); |
172 |
1 |
f.setFindAll(true); |
173 |
1 |
f.setCaseSensitive(true); |
174 |
1 |
f.setIncludeDescription(true); |
175 |
|
|
176 |
1 |
f.find("RAF"); |
177 |
1 |
assertEquals(f.getIdMatch().size(), 1); |
178 |
1 |
assertSame(f.getIdMatch().get(0), al2.getSequenceAt(0)); |
179 |
1 |
assertTrue(f.getSearchResults().isEmpty()); |
180 |
|
|
181 |
|
|
182 |
|
|
183 |
|
|
184 |
1 |
al2.getSequenceAt(0).setDescription("the efh sequence"); |
185 |
1 |
al2.getSequenceAt(0).setName("mouseEFHkinase"); |
186 |
1 |
al2.getSequenceAt(1).setName("humanEFHkinase"); |
187 |
1 |
f = new Finder(al2, null); |
188 |
1 |
f.setFindAll(true); |
189 |
1 |
f.setIncludeDescription(true); |
190 |
|
|
191 |
|
|
192 |
|
|
193 |
|
|
194 |
1 |
f.find("EFH"); |
195 |
1 |
assertEquals(f.getIdMatch().size(), 2); |
196 |
1 |
assertSame(f.getIdMatch().get(0), al2.getSequenceAt(0)); |
197 |
1 |
assertSame(f.getIdMatch().get(1), al2.getSequenceAt(1)); |
198 |
|
|
199 |
1 |
assertEquals(f.getSearchResults().getSize(), 2); |
200 |
1 |
SearchResultMatchI match = f.getSearchResults().getResults().get(0); |
201 |
1 |
assertSame(al2.getSequenceAt(1), match.getSequence()); |
202 |
1 |
assertEquals(5, match.getStart()); |
203 |
1 |
assertEquals(7, match.getEnd()); |
204 |
1 |
match = f.getSearchResults().getResults().get(1); |
205 |
1 |
assertSame(al2.getSequenceAt(2), match.getSequence()); |
206 |
1 |
assertEquals(4, match.getStart()); |
207 |
1 |
assertEquals(6, match.getEnd()); |
208 |
|
} |
209 |
|
|
210 |
|
|
211 |
|
|
212 |
|
|
|
|
| 100% |
Uncovered Elements: 0 (27) |
Complexity: 1 |
Complexity Density: 0.04 |
1PASS
|
|
213 |
1 |
@Test(groups = "Functional")... |
214 |
|
public void testFindAll_sequenceIds() |
215 |
|
{ |
216 |
1 |
Finder f = new Finder(al, null); |
217 |
1 |
f.setFindAll(true); |
218 |
|
|
219 |
|
|
220 |
|
|
221 |
|
|
222 |
1 |
f.find("SEQ1"); |
223 |
1 |
assertEquals(f.getIdMatch().size(), 1); |
224 |
1 |
assertSame(f.getIdMatch().get(0), al.getSequenceAt(0)); |
225 |
1 |
assertTrue(f.getSearchResults().isEmpty()); |
226 |
|
|
227 |
|
|
228 |
|
|
229 |
|
|
230 |
1 |
f = new Finder(al, null); |
231 |
1 |
f.setFindAll(true); |
232 |
1 |
f.setCaseSensitive(true); |
233 |
1 |
f.find("SEQ1"); |
234 |
1 |
assertTrue(f.getSearchResults().isEmpty()); |
235 |
|
|
236 |
|
|
237 |
|
|
238 |
|
|
239 |
1 |
AlignmentI al2 = new Alignment(al); |
240 |
1 |
al2.addSequence(new Sequence("aBz", "xyzabZpqrAbZ")); |
241 |
1 |
f = new Finder(al2, null); |
242 |
1 |
f.setFindAll(true); |
243 |
1 |
f.find("ABZ"); |
244 |
1 |
assertEquals(f.getIdMatch().size(), 1); |
245 |
1 |
assertSame(f.getIdMatch().get(0), al2.getSequenceAt(4)); |
246 |
1 |
assertEquals(f.getSearchResults().getSize(), 2); |
247 |
1 |
SearchResultMatchI match = f.getSearchResults().getResults().get(0); |
248 |
1 |
assertSame(al2.getSequenceAt(4), match.getSequence()); |
249 |
1 |
assertEquals(4, match.getStart()); |
250 |
1 |
assertEquals(6, match.getEnd()); |
251 |
1 |
match = f.getSearchResults().getResults().get(1); |
252 |
1 |
assertSame(al2.getSequenceAt(4), match.getSequence()); |
253 |
1 |
assertEquals(10, match.getStart()); |
254 |
1 |
assertEquals(12, match.getEnd()); |
255 |
|
} |
256 |
|
|
257 |
|
|
258 |
|
|
259 |
|
|
|
|
| 100% |
Uncovered Elements: 0 (27) |
Complexity: 1 |
Complexity Density: 0.04 |
1PASS
|
|
260 |
1 |
@Test(groups = "Functional")... |
261 |
|
public void testFindAll_simpleMatch() |
262 |
|
{ |
263 |
1 |
Finder f = new Finder(al, null); |
264 |
1 |
f.setFindAll(true); |
265 |
|
|
266 |
|
|
267 |
|
|
268 |
|
|
269 |
1 |
f.find("EfH"); |
270 |
1 |
SearchResultsI searchResults = f.getSearchResults(); |
271 |
1 |
assertEquals(searchResults.getSize(), 2); |
272 |
1 |
SearchResultMatchI match = searchResults.getResults().get(0); |
273 |
1 |
assertSame(al.getSequenceAt(1), match.getSequence()); |
274 |
1 |
assertEquals(5, match.getStart()); |
275 |
1 |
assertEquals(7, match.getEnd()); |
276 |
1 |
match = searchResults.getResults().get(1); |
277 |
1 |
assertSame(al.getSequenceAt(2), match.getSequence()); |
278 |
1 |
assertEquals(4, match.getStart()); |
279 |
1 |
assertEquals(6, match.getEnd()); |
280 |
|
|
281 |
|
|
282 |
|
|
283 |
|
|
284 |
1 |
f = new Finder(al, null); |
285 |
1 |
f.setFindAll(true); |
286 |
1 |
f.setCaseSensitive(true); |
287 |
1 |
f.find("BC"); |
288 |
1 |
searchResults = f.getSearchResults(); |
289 |
1 |
assertEquals(searchResults.getSize(), 2); |
290 |
1 |
match = searchResults.getResults().get(0); |
291 |
1 |
assertSame(al.getSequenceAt(0), match.getSequence()); |
292 |
1 |
assertEquals(2, match.getStart()); |
293 |
1 |
assertEquals(3, match.getEnd()); |
294 |
1 |
match = searchResults.getResults().get(1); |
295 |
1 |
assertSame(al.getSequenceAt(1), match.getSequence()); |
296 |
1 |
assertEquals(2, match.getStart()); |
297 |
1 |
assertEquals(3, match.getEnd()); |
298 |
|
} |
299 |
|
|
300 |
|
|
301 |
|
|
302 |
|
|
303 |
|
|
|
|
| 100% |
Uncovered Elements: 0 (9) |
Complexity: 1 |
Complexity Density: 0.11 |
1PASS
|
|
304 |
1 |
@Test(groups = "Functional")... |
305 |
|
public void testFind_maximalResultOnly() |
306 |
|
{ |
307 |
1 |
Finder f = new Finder(al, null); |
308 |
1 |
f.setFindAll(true); |
309 |
1 |
f.find("M+"); |
310 |
1 |
SearchResultsI searchResults = f.getSearchResults(); |
311 |
1 |
assertEquals(searchResults.getSize(), 1); |
312 |
1 |
SearchResultMatchI match = searchResults.getResults().get(0); |
313 |
1 |
assertSame(al.getSequenceAt(3), match.getSequence()); |
314 |
1 |
assertEquals(4, match.getStart()); |
315 |
1 |
assertEquals(8, match.getEnd()); |
316 |
|
} |
317 |
|
} |