Clover icon

Coverage Report

  1. Project Clover database Mon Sep 2 2024 17:57:51 BST
  2. Package jalview.datamodel

File AllRowsIteratorTest.java

 

Code metrics

10
29
6
1
133
82
11
0.38
4.83
6
1.83

Classes

Class Line # Actions
AllRowsIteratorTest 33 29 11
0.9555555695.6%
 

Contributing tests

This file is covered by 4 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.assertTrue;
24   
25    import jalview.analysis.AlignmentGenerator;
26   
27    import java.util.Hashtable;
28    import java.util.NoSuchElementException;
29   
30    import org.testng.annotations.BeforeClass;
31    import org.testng.annotations.Test;
32   
 
33    public class AllRowsIteratorTest
34    {
35    AlignmentI al;
36   
37    Hashtable<SequenceI, SequenceCollectionI> hiddenRepSequences = new Hashtable<>();
38   
 
39  1 toggle @BeforeClass(alwaysRun = true)
40    public void setup()
41    {
42    // create random alignment
43  1 AlignmentGenerator gen = new AlignmentGenerator(false);
44  1 al = gen.generate(20, 15, 123, 5, 5);
45  1 if (!hiddenRepSequences.isEmpty())
46    {
47  0 al.getHiddenSequences().showAll(hiddenRepSequences);
48    }
49  1 hideSequences(2, 4);
50    }
51   
52    /*
53    * Test iterator iterates through collection correctly
54    */
 
55  1 toggle @Test(groups = { "Functional" })
56    public void testHasNextAndNext()
57    {
58  1 AllRowsIterator it = new AllRowsIterator(0, 3, al);
59  1 int count = 0;
60  5 while (it.hasNext())
61    {
62  4 it.next();
63  4 count++;
64    }
65  1 assertTrue(count == 4, "hasNext() is false after 4 iterations");
66    }
67   
68    /*
69    * Test iterator throws NoSuchElementException at end of iteration
70    */
 
71  1 toggle @Test(
72    groups =
73    { "Functional" },
74    expectedExceptions =
75    { NoSuchElementException.class })
76    public void testLastNext() throws NoSuchElementException
77    {
78  1 AllRowsIterator it = new AllRowsIterator(0, 3, al);
79  5 while (it.hasNext())
80    {
81  4 it.next();
82    }
83  1 it.next();
84    }
85   
86    /*
87    * Test iterator throws UnsupportedOperationException on call to remove
88    */
 
89  1 toggle @Test(
90    groups =
91    { "Functional" },
92    expectedExceptions =
93    { UnsupportedOperationException.class })
94    public void testRemove() throws UnsupportedOperationException
95    {
96  1 AllRowsIterator it = new AllRowsIterator(0, 3, al);
97  1 it.remove();
98    }
99   
100    /*
101    * Hide sequences between start and end
102    */
 
103  1 toggle private void hideSequences(int start, int end)
104    {
105  1 SequenceI[] allseqs = al.getSequencesArray();
106  1 SequenceGroup theseSeqs = new SequenceGroup();
107   
108  4 for (int i = start; i <= end; i++)
109    {
110  3 theseSeqs.addSequence(allseqs[i], false);
111  3 al.getHiddenSequences().hideSequence(allseqs[i]);
112    }
113   
114  1 hiddenRepSequences.put(allseqs[start], theseSeqs);
115    }
116   
117    /*
118    * Test iterator behaves correctly when there is only one element in the collection
119    */
 
120  1 toggle @Test(groups = { "Functional" })
121    public void testOneElement()
122    {
123  1 AllRowsIterator it = new AllRowsIterator(0, 0, al);
124  1 int count = 0;
125  2 while (it.hasNext())
126    {
127  1 it.next();
128  1 count++;
129    }
130  1 assertTrue(count == 1, "hasNext() is false after 1 iteration");
131    }
132   
133    }