Clover icon

jalviewX

  1. Project Clover database Wed Oct 31 2018 15:13:58 GMT
  2. Package jalview.datamodel

File AllRowsIteratorTest.java

 

Code metrics

10
29
6
1
130
78
11
0.38
4.83
6
1.83

Classes

Class Line # Actions
AllRowsIteratorTest 33 29 11 17
0.6222222462.2%
 

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  0 toggle @BeforeClass
40    public void setup()
41    {
42    // create random alignment
43  0 AlignmentGenerator gen = new AlignmentGenerator(false);
44  0 al = gen.generate(20, 15, 123, 5, 5);
45  0 if (!hiddenRepSequences.isEmpty())
46    {
47  0 al.getHiddenSequences().showAll(hiddenRepSequences);
48    }
49  0 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 = { "Functional" },
73    expectedExceptions = { NoSuchElementException.class })
74    public void testLastNext() throws NoSuchElementException
75    {
76  1 AllRowsIterator it = new AllRowsIterator(0, 3, al);
77  5 while (it.hasNext())
78    {
79  4 it.next();
80    }
81  1 it.next();
82    }
83   
84    /*
85    * Test iterator throws UnsupportedOperationException on call to remove
86    */
 
87  1 toggle @Test(
88    groups = { "Functional" },
89    expectedExceptions = { UnsupportedOperationException.class })
90    public void testRemove() throws UnsupportedOperationException
91    {
92  1 AllRowsIterator it = new AllRowsIterator(0, 3, al);
93  1 it.remove();
94    }
95   
96   
97    /*
98    * Hide sequences between start and end
99    */
 
100  0 toggle private void hideSequences(int start, int end)
101    {
102  0 SequenceI[] allseqs = al.getSequencesArray();
103  0 SequenceGroup theseSeqs = new SequenceGroup();
104   
105  0 for (int i = start; i <= end; i++)
106    {
107  0 theseSeqs.addSequence(allseqs[i], false);
108  0 al.getHiddenSequences().hideSequence(allseqs[i]);
109    }
110   
111  0 hiddenRepSequences.put(allseqs[start], theseSeqs);
112    }
113   
114    /*
115    * Test iterator behaves correctly when there is only one element in the collection
116    */
 
117  1 toggle @Test(groups = { "Functional" })
118    public void testOneElement()
119    {
120  1 AllRowsIterator it = new AllRowsIterator(0, 0, al);
121  1 int count = 0;
122  2 while (it.hasNext())
123    {
124  1 it.next();
125  1 count++;
126    }
127  1 assertTrue(count == 1, "hasNext() is false after 1 iteration");
128    }
129   
130    }