Clover icon

Coverage Report

  1. Project Clover database Tue Mar 10 2026 14:58:44 GMT
  2. Package jalview.datamodel

File VisibleContigsIteratorTest.java

 

Code metrics

0
138
3
1
222
163
3
0.02
46
3
1

Classes

Class Line # Actions
VisibleContigsIteratorTest 32 138 3
0.00%
 

Contributing tests

No tests hitting this source file were found.

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