Clover icon

Coverage Report

  1. Project Clover database Thu Aug 13 2020 12:04:21 BST
  2. Package jalview.datamodel

File VisibleContigsIteratorTest.java

 

Code metrics

0
138
3
1
223
164
3
0.02
46
3
1

Classes

Class Line # Actions
VisibleContigsIteratorTest 32 138 3
1.0100%
 

Contributing tests

This file is covered by 3 tests. .

Source view

1    /*
2    * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
3    * Copyright (C) $$Year-Rel$$ The Jalview Authors
4    *
5    * This file is part of Jalview.
6    *
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.
11    *
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.
16    *
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.
20    */
21    package jalview.datamodel;
22   
23    import static org.testng.Assert.assertEquals;
24    import static org.testng.AssertJUnit.assertFalse;
25    import static org.testng.AssertJUnit.assertTrue;
26   
27    import java.util.ArrayList;
28    import java.util.List;
29   
30    import org.testng.annotations.Test;
31   
 
32    public class VisibleContigsIteratorTest
33    {
34    /**
35    * Test the iterator with single visible regions
36    */
 
37  1 toggle @Test(groups = { "Functional" })
38    public void testSimpleVisibleRegions()
39    {
40  1 List<int[]> hiddenColumns = null;
41   
42    // null hidden columns
43  1 VisibleContigsIterator it = new VisibleContigsIterator(3, 10,
44    hiddenColumns);
45  1 assertTrue(it.hasNext());
46  1 assertFalse(it.endsAtHidden());
47  1 int[] result = it.next();
48  1 assertEquals(3, result[0]);
49  1 assertEquals(9, result[1]);
50  1 assertFalse(it.hasNext());
51  1 assertFalse(it.endsAtHidden());
52   
53  1 hiddenColumns = new ArrayList<>();
54   
55    // no hidden columns
56  1 it = new VisibleContigsIterator(3, 10,
57    hiddenColumns);
58  1 assertTrue(it.hasNext());
59  1 assertFalse(it.endsAtHidden());
60  1 result = it.next();
61  1 assertEquals(3, result[0]);
62  1 assertEquals(9, result[1]);
63  1 assertFalse(it.hasNext());
64  1 assertFalse(it.endsAtHidden());
65   
66    // hidden columns, but not where we are looking
67  1 hiddenColumns.add(new int[] { 5, 10 });
68  1 hiddenColumns.add(new int[] { 25, 40 });
69   
70  1 it = new VisibleContigsIterator(2, 3, hiddenColumns);
71  1 assertTrue(it.hasNext());
72  1 assertFalse(it.endsAtHidden());
73  1 result = it.next();
74  1 assertEquals(2, result[0]);
75  1 assertEquals(2, result[1]);
76  1 assertFalse(it.hasNext());
77  1 assertFalse(it.endsAtHidden());
78   
79  1 it = new VisibleContigsIterator(5, 7, hiddenColumns);
80  1 assertFalse(it.hasNext());
81  1 assertFalse(it.endsAtHidden());
82   
83  1 it = new VisibleContigsIterator(11, 15, hiddenColumns);
84  1 assertTrue(it.hasNext());
85  1 assertFalse(it.endsAtHidden());
86  1 result = it.next();
87  1 assertEquals(11, result[0]);
88  1 assertEquals(14, result[1]);
89  1 assertFalse(it.hasNext());
90  1 assertFalse(it.endsAtHidden());
91   
92  1 it = new VisibleContigsIterator(50, 60, hiddenColumns);
93  1 assertTrue(it.hasNext());
94  1 assertFalse(it.endsAtHidden());
95  1 result = it.next();
96  1 assertEquals(50, result[0]);
97  1 assertEquals(59, result[1]);
98  1 assertFalse(it.hasNext());
99  1 assertFalse(it.endsAtHidden());
100    }
101   
102    /**
103    * Test the iterator with multiple visible regions
104    */
 
105  1 toggle @Test(groups = { "Functional" })
106    public void testMultipleVisibleRegions()
107    {
108  1 List<int[]> hiddenColumns = new ArrayList<>();
109  1 hiddenColumns.add(new int[] { 5, 10 });
110  1 hiddenColumns.add(new int[] { 25, 40 });
111   
112    // all hidden columns covered
113  1 VisibleContigsIterator it = new VisibleContigsIterator(3, 50,
114    hiddenColumns);
115  1 assertTrue(it.hasNext());
116  1 assertFalse(it.endsAtHidden());
117  1 int[] result = it.next();
118  1 assertEquals(3, result[0]);
119  1 assertEquals(4, result[1]);
120   
121  1 assertTrue(it.hasNext());
122  1 assertFalse(it.endsAtHidden());
123  1 result = it.next();
124  1 assertEquals(11, result[0]);
125  1 assertEquals(24, result[1]);
126   
127  1 assertTrue(it.hasNext());
128  1 assertFalse(it.endsAtHidden());
129  1 result = it.next();
130  1 assertEquals(41, result[0]);
131  1 assertEquals(49, result[1]);
132   
133  1 assertFalse(it.hasNext());
134  1 assertFalse(it.endsAtHidden());
135    }
136   
137    /**
138    * Test the iterator with regions which start/end at hidden region edges
139    */
 
140  1 toggle @Test(groups = { "Functional" })
141    public void testVisibleRegionsAtHiddenEdges()
142    {
143  1 List<int[]> hiddenColumns = new ArrayList<>();
144  1 hiddenColumns.add(new int[] { 5, 10 });
145  1 hiddenColumns.add(new int[] { 25, 40 });
146   
147  1 VisibleContigsIterator it = new VisibleContigsIterator(0, 10,
148    hiddenColumns);
149  1 assertTrue(it.hasNext());
150  1 assertTrue(it.endsAtHidden());
151  1 int[] result = it.next();
152  1 assertEquals(0, result[0]);
153  1 assertEquals(4, result[1]);
154  1 assertFalse(it.hasNext());
155  1 assertTrue(it.endsAtHidden());
156   
157  1 it = new VisibleContigsIterator(2, 11, hiddenColumns);
158  1 assertTrue(it.hasNext());
159  1 assertTrue(it.endsAtHidden());
160  1 result = it.next();
161  1 assertEquals(2, result[0]);
162  1 assertEquals(4, result[1]);
163  1 assertFalse(it.hasNext());
164  1 assertTrue(it.endsAtHidden());
165   
166  1 it = new VisibleContigsIterator(2, 12, hiddenColumns);
167  1 assertTrue(it.hasNext());
168  1 assertFalse(it.endsAtHidden());
169  1 result = it.next();
170  1 assertEquals(2, result[0]);
171  1 assertEquals(4, result[1]);
172  1 assertTrue(it.hasNext());
173  1 assertFalse(it.endsAtHidden());
174  1 result = it.next();
175  1 assertEquals(11, result[0]);
176  1 assertEquals(11, result[1]);
177  1 assertFalse(it.hasNext());
178  1 assertFalse(it.endsAtHidden());
179   
180  1 it = new VisibleContigsIterator(13, 25, hiddenColumns);
181  1 assertTrue(it.hasNext());
182  1 assertFalse(it.endsAtHidden());
183  1 result = it.next();
184  1 assertEquals(13, result[0]);
185  1 assertEquals(24, result[1]);
186  1 assertFalse(it.hasNext());
187   
188  1 it = new VisibleContigsIterator(13, 26, hiddenColumns);
189  1 assertTrue(it.hasNext());
190  1 assertTrue(it.endsAtHidden());
191  1 result = it.next();
192  1 assertEquals(13, result[0]);
193  1 assertEquals(24, result[1]);
194  1 assertFalse(it.hasNext());
195   
196  1 it = new VisibleContigsIterator(13, 27, hiddenColumns);
197  1 assertTrue(it.hasNext());
198  1 assertTrue(it.endsAtHidden());
199  1 result = it.next();
200  1 assertEquals(13, result[0]);
201  1 assertEquals(24, result[1]);
202  1 assertFalse(it.hasNext());
203   
204  1 it = new VisibleContigsIterator(13, 41, hiddenColumns);
205  1 assertTrue(it.hasNext());
206  1 assertTrue(it.endsAtHidden());
207  1 result = it.next();
208  1 assertEquals(13, result[0]);
209  1 assertEquals(24, result[1]);
210  1 assertFalse(it.hasNext());
211   
212  1 it = new VisibleContigsIterator(13, 42, hiddenColumns);
213  1 assertTrue(it.hasNext());
214  1 assertFalse(it.endsAtHidden());
215  1 result = it.next();
216  1 assertEquals(13, result[0]);
217  1 assertEquals(24, result[1]);
218  1 assertTrue(it.hasNext());
219  1 result = it.next();
220  1 assertEquals(41, result[0]);
221  1 assertEquals(41, result[1]);
222    }
223    }