Clover icon

Coverage Report

  1. Project Clover database Thu Dec 4 2025 14:43:25 GMT
  2. Package jalview.ws2.actions.annotation

File AnnotationJobTest.java

 

Code metrics

0
52
18
1
278
256
18
0.35
2.89
18
1

Classes

Class Line # Actions
AnnotationJobTest 17 52 18
1.0100%
 

Contributing tests

This file is covered by 23 tests. .

Source view

1    package jalview.ws2.actions.annotation;
2   
3    import static jalview.testutils.Matchers.matchesSequenceString;
4    import static org.hamcrest.MatcherAssert.assertThat;
5    import static org.hamcrest.Matchers.contains;
6    import static org.hamcrest.Matchers.hasSize;
7   
8    import java.util.List;
9   
10    import org.testng.annotations.DataProvider;
11    import org.testng.annotations.Test;
12   
13    import jalview.datamodel.Alignment;
14    import jalview.datamodel.Sequence;
15    import jalview.datamodel.SequenceGroup;
16   
 
17    public class AnnotationJobTest
18    {
 
19  1 toggle @Test(groups = { "Functional" })
20    public void testCreate_EqualLengthNoGapsSubmitGaps()
21    {
22  1 var alignment = new Alignment(new Sequence[] {
23    new Sequence("test1", "ACACACACACA"),
24    new Sequence("test2", "AVAVAVAVAVA"),
25    new Sequence("test3", "AVWVAVWVAVW")
26    });
27  1 var annotJob = AnnotationJob.create(alignment, true, false, false, false, 0);
28  1 assertThat(annotJob.getInputSequences(), contains(
29    matchesSequenceString("ACACACACACA"),
30    matchesSequenceString("AVAVAVAVAVA"),
31    matchesSequenceString("AVWVAVWVAVW")
32    ));
33    }
34   
 
35  1 toggle @Test(groups = { "Functional" })
36    public void testCreate_EqualLengthNoGapsNoSubmitGaps()
37    {
38  1 var alignment = new Alignment(new Sequence[] {
39    new Sequence("test1", "ACACACACACA"),
40    new Sequence("test2", "AVAVAVAVAVA"),
41    new Sequence("test3", "AVWVAVWVAVW")
42    });
43  1 var annotJob = AnnotationJob.create(alignment, true, true, false, false, 0);
44  1 assertThat(annotJob.getInputSequences(), contains(
45    matchesSequenceString("ACACACACACA"),
46    matchesSequenceString("AVAVAVAVAVA"),
47    matchesSequenceString("AVWVAVWVAVW")
48    ));
49    }
50   
 
51  1 toggle @Test(groups = { "Functional" })
52    public void testCreate_UnequalLengthNoGapsNoSubmitGaps()
53    {
54  1 var alignment = new Alignment(new Sequence[] {
55    new Sequence("test1", "ACACACACACA"),
56    new Sequence("test2", "AVAVAVAVAVAVA"),
57    new Sequence("test3", "AVWVAVWVAVWV")
58    });
59  1 var annotJob = AnnotationJob.create(alignment, true, false, false, false, 0);
60  1 assertThat(annotJob.getInputSequences(), contains(
61    matchesSequenceString("ACACACACACA"),
62    matchesSequenceString("AVAVAVAVAVAVA"),
63    matchesSequenceString("AVWVAVWVAVWV")
64    ));
65    }
66   
 
67  1 toggle @Test(groups = { "Functional" })
68    public void testCreate_UnequalLengthNoGapsSubmitGaps()
69    {
70  1 var alignment = new Alignment(new Sequence[] {
71    new Sequence("test1", "ACACACACACA"),
72    new Sequence("test2", "AVAVAVAVAVAVA"),
73    new Sequence("test3", "AVWVAVWVAVWV")
74    });
75  1 var annotJob = AnnotationJob.create(alignment, true, true, false, false, 0);
76  1 assertThat(annotJob.getInputSequences(), contains(
77    matchesSequenceString("ACACACACACA"),
78    matchesSequenceString("AVAVAVAVAVAVA"),
79    matchesSequenceString("AVWVAVWVAVWV")
80    ));
81    }
82   
 
83  1 toggle @Test(groups = { "Functional" })
84    public void testCreate_UnequalLengthNoGapsSubmitGapsRequireAligned()
85    {
86  1 var alignment = new Alignment(new Sequence[] {
87    new Sequence("test1", "ACACACACACA"),
88    new Sequence("test2", "AVAVAVAVAVAVA"),
89    new Sequence("test3", "AVWVAVWVAVWV")
90    });
91  1 var annotJob = AnnotationJob.create(alignment, true, true, true, false, 0);
92  1 assertThat(annotJob.getInputSequences(), contains(
93    matchesSequenceString("ACACACACACA--"),
94    matchesSequenceString("AVAVAVAVAVAVA"),
95    matchesSequenceString("AVWVAVWVAVWV-")
96    ));
97    }
98   
 
99  3 toggle @DataProvider
100    public Object[] alignmentWithShortSequences()
101    {
102  3 return new Object[] {
103    new Alignment(new Sequence[] {
104    new Sequence("test1", "AAAAA"),
105    new Sequence("test2", "ACAACAAACAAC"),
106    new Sequence("test3", "ACA")
107    }),
108    new Alignment(new Sequence[] {
109    new Sequence("test1", "----AAAAA---"),
110    new Sequence("test2", "ACAACAAACAAC"),
111    new Sequence("test3", "-----ACA----")
112    }),
113    new Alignment(new Sequence[] {
114    new Sequence("test1", "--AAA---AA--"),
115    new Sequence("test2", "ACAACAAACAAC"),
116    new Sequence("test3", "-------ACA--")
117    }),
118    };
119    }
120   
 
121  3 toggle @Test(groups = { "Functional" }, dataProvider = "alignmentWithShortSequences")
122    public void testCreate_TooShortSequence_ShortSequenceRemoved(Alignment aln)
123    {
124  3 var annotJob = AnnotationJob.create(aln, true, false, false, false, 0);
125  3 assertThat(annotJob.getInputSequences(), hasSize(1));
126    }
127   
 
128  3 toggle @Test(groups = { "Functional" }, dataProvider = "alignmentWithShortSequences")
129    public void testCreate_TooShortSequenceAndSubmitGaps_ShortSeqRemoved(Alignment aln)
130    {
131  3 var annotJob = AnnotationJob.create(aln, true, true, false, false, 0);
132  3 assertThat(annotJob.getInputSequences(), hasSize(1));
133    }
134   
 
135  3 toggle @Test(groups = { "Functional" }, dataProvider = "alignmentWithShortSequences")
136    public void testCreate_TooShortSequenceAndRequireAligned_ShortSeqRemoved(Alignment aln)
137    {
138  3 var annotJob = AnnotationJob.create(aln, true, true, true, false, 0);
139  3 assertThat(annotJob.getInputSequences(), hasSize(1));
140    }
141   
 
142  1 toggle @Test(groups = { "Functional" })
143    public void testCreate_EmptyColumnAndSubmitGaps_ColumnExtruded()
144    {
145  1 var alignment = new Alignment(new Sequence[] {
146    new Sequence("test1", "ACA-ACAA--CACA"),
147    new Sequence("test2", "AVA-AVAA-AVAVA"),
148    new Sequence("test3", "AVAWAVAA-AVWVA")
149    });
150  1 var annotJob = AnnotationJob.create(alignment, true, true, false, false, 0);
151  1 assertThat(annotJob.getInputSequences(), contains(
152    matchesSequenceString("ACA-ACAA-CACA"),
153    matchesSequenceString("AVA-AVAAAVAVA"),
154    matchesSequenceString("AVAWAVAAAVWVA")
155    ));
156    }
157   
 
158  1 toggle @Test(groups = { "Functional" })
159    public void testCreate_EmptyColumnAndRequireAligned_ColumnExtruded()
160    {
161  1 var alignment = new Alignment(new Sequence[] {
162    new Sequence("test1", "ACA-ACAA--CACA"),
163    new Sequence("test2", "AVA-AVAA-AVAVA"),
164    new Sequence("test3", "AVAWAVAA-AVWVA")
165    });
166  1 var annotJob = AnnotationJob.create(alignment, true, true, true, false, 0);
167  1 assertThat(annotJob.getInputSequences(), contains(
168    matchesSequenceString("ACA-ACAA-CACA"),
169    matchesSequenceString("AVA-AVAAAVAVA"),
170    matchesSequenceString("AVAWAVAAAVWVA")
171    ));
172    }
173   
 
174  1 toggle @Test(groups = { "Functional"} )
175    public void testCreate_ContainsNonStandardAndNoFilterNonStandard_NonStandardRemain()
176    {
177  1 var alignment = new Alignment(new Sequence[] {
178    new Sequence("test1", "ACACAOACACAC"),
179    new Sequence("test2", "ABAVAVAVABAV")
180    });
181  1 var annotJob = AnnotationJob.create(alignment, true, true, true, false, 0);
182  1 assertThat(annotJob.getInputSequences(), contains(
183    matchesSequenceString("ACACAOACACAC"),
184    matchesSequenceString("ABAVAVAVABAV")
185    ));
186    }
187   
 
188  1 toggle @Test(groups = { "Functional"} )
189    public void testCreate_ContainsNonStandardAndFilterNonStandard_NonStandardToGap()
190    {
191  1 var alignment = new Alignment(new Sequence[] {
192    new Sequence("test1", "ACACAOACACAC"),
193    new Sequence("test2", "ABAVAVAVABAV")
194    });
195  1 var annotJob = AnnotationJob.create(alignment, true, true, true, true, 0);
196  1 assertThat(annotJob.getInputSequences(), contains(
197    matchesSequenceString("ACACA-ACACAC"),
198    matchesSequenceString("A-AVAVAVA-AV")
199    ));
200    }
201   
 
202  1 toggle @DataProvider
203    public Object[] alignmentWithNonStandardInColumns()
204    {
205  1 return new Object[] {
206    new Alignment(new Sequence[] {
207    new Sequence("test1", "A-AAAOAAAAAAAA"),
208    new Sequence("test2", "ABAAA-AAAAAAAA")
209    }),
210    new Alignment(new Sequence[] {
211    new Sequence("test1", "ABAAAOAAAAAAAA"),
212    new Sequence("test2", "ABAAABAAAAAAAA")
213    }),
214    new Alignment(new Sequence[] {
215    new Sequence("test1", "A-AAAOAAAAAAAA"),
216    new Sequence("test2", "A-AAA-AAAAAAAA")
217    })
218    };
219    }
220   
 
221  3 toggle @Test(groups = { "Functional" }, dataProvider = "alignmentWithNonStandardInColumns")
222    public void testCreate_NonStandardInColumnsAndFilterNonStandard_ColumnsExtruded(Alignment aln)
223    {
224  3 var annotJob = AnnotationJob.create(aln, true, true, true, true, 0);
225  3 assertThat(annotJob.getInputSequences(), contains(
226    matchesSequenceString("AAAAAAAAAAAA"),
227    matchesSequenceString("AAAAAAAAAAAA")
228    ));
229    }
230   
 
231  1 toggle @Test(groups = { "Functional" })
232    public void testCreate_SequenceGroup_RegionSubmitted()
233    {
234  1 var group = new SequenceGroup(List.of(
235    new Sequence("test1", "CCCCAAATAAATAAATCCC"),
236    new Sequence("test2", "----AAATAAATAAAT---")
237    ));
238  1 group.setStartRes(4);
239  1 group.setEndRes(15);
240  1 var annotJob = AnnotationJob.create(group, true, false, false, false, 0);
241  1 assertThat(annotJob.getInputSequences(), contains(
242    matchesSequenceString("AAATAAATAAAT"),
243    matchesSequenceString("AAATAAATAAAT")
244    ));
245    }
246   
 
247  1 toggle @Test(groups = { "Functional" })
248    public void testCreate_RegionIncludingGaps_RegionSubmittedWithoutGaps()
249    {
250  1 var group = new SequenceGroup(List.of(
251    new Sequence("test1", "CCCC-AAATAAATAAAT--CCC"),
252    new Sequence("test2", "-----AAATAAATAAAT-----")
253    ));
254  1 group.setStartRes(4);
255  1 group.setEndRes(18);
256  1 var annotJob = AnnotationJob.create(group, true, false, false, false, 0);
257  1 assertThat(annotJob.getInputSequences(), contains(
258    matchesSequenceString("AAATAAATAAAT"),
259    matchesSequenceString("AAATAAATAAAT")
260    ));
261    }
262   
 
263  1 toggle @Test(groups = { "Functional" })
264    public void testCreate_RegionIncludingGapsAndSubmitGaps_RegionSubmittedGapsExtruded()
265    {
266  1 var group = new SequenceGroup(List.of(
267    new Sequence("test1", "CCCC-AAATAAATAAAT--CCC"),
268    new Sequence("test2", "-----AAATAAATAAAT-----")
269    ));
270  1 group.setStartRes(4);
271  1 group.setEndRes(18);
272  1 var annotJob = AnnotationJob.create(group, true, true, false, false, 0);
273  1 assertThat(annotJob.getInputSequences(), contains(
274    matchesSequenceString("AAATAAATAAAT"),
275    matchesSequenceString("AAATAAATAAAT")
276    ));
277    }
278    }