Clover icon

jalviewX

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

File AlignmentPanelTest.java

 
TestUpdateLayout_endRes: expected [156] but found [66]
 

Code metrics

2
40
3
1
249
150
5
0.12
13.33
3
1.67

Classes

Class Line # Actions
AlignmentPanelTest 37 40 5 12
0.7333333573.3%
 

Contributing tests

This file is covered by 2 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.gui;
22   
23    import static org.testng.Assert.assertEquals;
24    import static org.testng.Assert.assertNotEquals;
25   
26    import jalview.bin.Cache;
27    import jalview.bin.Jalview;
28    import jalview.datamodel.Sequence;
29    import jalview.datamodel.SequenceI;
30    import jalview.io.DataSourceType;
31    import jalview.io.FileLoader;
32    import jalview.viewmodel.ViewportRanges;
33   
34    import org.testng.annotations.BeforeMethod;
35    import org.testng.annotations.Test;
36   
 
37    public class AlignmentPanelTest
38    {
39    SequenceI seq1 = new Sequence(
40    "Seq1",
41    "ABCABCABCABCABCABCABCABCBACBACBACBACABCABCABCABCABCABCABCABCBACBACBACBACABCABCABCABCABCABCABCABCBACBACBACBAC");
42   
43    SequenceI seq2 = new Sequence(
44    "Seq2",
45    "ABCABCABCABCABCABCABCABCBACBACBACBACABCABCABCABCABCABCABCABCBACBACBACBACABCABCABCABCABCABCABCABCBACBACBACBAC");
46   
47    SequenceI seq3 = new Sequence(
48    "Seq3",
49    "ABCABCABCABCABCABCABCABCBACBACBACBACABCABCABCABCABCABCABCABCBACBACBACBACABCABCABCABCABCABCABCABCBACBACBACBAC");
50   
51    SequenceI seq4 = new Sequence(
52    "Seq4",
53    "ABCABCABCABCABCABCABCABCBACBACBACBACABCABCABCABCABCABCABCABCBACBACBACBACABCABCABCABCABCABCABCABCBACBACBACBAC");
54   
55    SequenceI seq5 = new Sequence(
56    "Seq5",
57    "ABCABCABCABCABCABCABCABCBACBACBACBACABCABCABCABCABCABCABCABCBACBACBACBACABCABCABCABCABCABCABCABCBACBACBACBAC");
58   
59    SequenceI seq6 = new Sequence(
60    "Seq6",
61    "ABCABCABCABCABCABCABCABCBACBACBACBACABCABCABCABCABCABCABCABCBACBACBACBACABCABCABCABCABCABCABCABCBACBACBACBAC");
62   
63    SequenceI seq7 = new Sequence(
64    "Seq7",
65    "ABCABCABCABCABCABCABCABCBACBACBACBACABCABCABCABCABCABCABCABCBACBACBACBACABCABCABCABCABCABCABCABCBACBACBACBAC");
66   
67    SequenceI seq8 = new Sequence(
68    "Seq8",
69    "ABCABCABCABCABCABCABCABCBACBACBACBACABCABCABCABCABCABCABCABCBACBACBACBACABCABCABCABCABCABCABCABCBACBACBACBAC");
70   
71    SequenceI seq9 = new Sequence(
72    "Seq9",
73    "ABCABCABCABCABCABCABCABCBACBACBACBACABCABCABCABCABCABCABCABCBACBACBACBACABCABCABCABCABCABCABCABCBACBACBACBAC");
74   
75    SequenceI seq10 = new Sequence(
76    "Seq10",
77    "ABCABCABCABCABCABCABCABCBACBACBACBACABCABCABCABCABCABCABCABCBACBACBACBACABCABCABCABCABCABCABCABCBACBACBACBAC");
78   
79    SequenceI seq11 = new Sequence(
80    "Seq11",
81    "ABCABCABCABCABCABCABCABCBACBACBACBACABCABCABCABCABCABCABCABCBACBACBACBACABCABCABCABCABCABCABCABCBACBACBACBAC");
82   
83    SequenceI seq12 = new Sequence(
84    "Seq12",
85    "ABCABCABCABCABCABCABCABCBACBACBACBACABCABCABCABCABCABCABCABCBACBACBACBACABCABCABCABCABCABCABCABCBACBACBACBAC");
86   
87    SequenceI seq13 = new Sequence(
88    "Seq13",
89    "ABCABCABCABCABCABCABCABCBACBACBACBACABCABCABCABCABCABCABCABCBACBACBACBACABCABCABCABCABCABCABCABCBACBACBACBAC");
90   
91    SequenceI seq14 = new Sequence(
92    "Seq14",
93    "ABCABCABCABCABCABCABCABCBACBACBACBACABCABCABCABCABCABCABCABCBACBACBACBACABCABCABCABCABCABCABCABCBACBACBACBAC");
94   
95    SequenceI seq15 = new Sequence(
96    "Seq15",
97    "ABCABCABCABCABCABCABCABCBACBACBACBACABCABCABCABCABCABCABCABCBACBACBACBACABCABCABCABCABCABCABCABCBACBACBACBAC");
98   
99    SequenceI seq16 = new Sequence(
100    "Seq16",
101    "ABCABCABCABCABCABCABCABCBACBACBACBACABCABCABCABCABCABCABCABCBACBACBACBACABCABCABCABCABCABCABCABCBACBACBACBAC");
102   
103    SequenceI seq17 = new Sequence(
104    "Seq17",
105    "ABCABCABCABCABCABCABCABCBACBACBACBACABCABCABCABCABCABCABCABCBACBACBACBACABCABCABCABCABCABCABCABCBACBACBACBAC");
106   
107    SequenceI seq18 = new Sequence(
108    "Seq18",
109    "ABCABCABCABCABCABCABCABCBACBACBACBACABCABCABCABCABCABCABCABCBACBACBACBACABCABCABCABCABCABCABCABCBACBACBACBAC");
110   
111    SequenceI seq19 = new Sequence(
112    "Seq19",
113    "ABCABCABCABCABCABCABCABCBACBACBACBACABCABCABCABCABCABCABCABCBACBACBACBACABCABCABCABCABCABCABCABCBACBACBACBAC");
114   
115    SequenceI seq20 = new Sequence(
116    "Seq20",
117    "ABCABCABCABCABCABCABCABCBACBACBACBACABCABCABCABCABCABCABCABCBACBACBACBACABCABCABCABCABCABCABCABCBACBACBACBAC");
118   
119    SequenceI seq21 = new Sequence(
120    "Seq21",
121    "ABCABCABCABCABCABCABCABCBACBACBACBACABCABCABCABCABCABCABCABCBACBACBACBACABCABCABCABCABCABCABCABCBACBACBACBAC");
122   
123    SequenceI seq22 = new Sequence(
124    "Seq22",
125    "ABCABCABCABCABCABCABCABCBACBACBACBACABCABCABCABCABCABCABCABCBACBACBACBACABCABCABCABCABCABCABCABCBACBACBACBAC");
126   
127    SequenceI seq23 = new Sequence(
128    "Seq23",
129    "ABCABCABCABCABCABCABCABCBACBACBACBACABCABCABCABCABCABCABCABCBACBACBACBACABCABCABCABCABCABCABCABCBACBACBACBAC");
130   
131    AlignFrame af;
132   
 
133  2 toggle @BeforeMethod(alwaysRun = true)
134    public void setUp()
135    {
136  2 Jalview.main(new String[] { "-nonews", "-props",
137    "test/jalview/testProps.jvprops" });
138   
139  2 Cache.applicationProperties.setProperty("SHOW_IDENTITY",
140    Boolean.TRUE.toString());
141  2 af = new FileLoader().LoadFileWaitTillLoaded("examples/uniref50.fa",
142    DataSourceType.FILE);
143   
144    /*
145    * wait for Consensus thread to complete
146    */
147  2 synchronized (this)
148    {
149  2 while (af.getViewport().getConsensusSeq() == null)
150    {
151  0 try
152    {
153  0 wait(50);
154    } catch (InterruptedException e)
155    {
156    }
157    }
158    }
159    }
160   
161   
162    /**
163    * Test side effect that end residue is set correctly by setScrollValues, with
164    * or without hidden columns
165    */
 
166  1 toggle @Test(groups = "Functional")
167    public void TestSetScrollValues()
168    {
169  1 ViewportRanges ranges = af.getViewport().getRanges();
170  1 af.alignPanel.setScrollValues(0, 0);
171   
172  1 int oldres = ranges.getEndRes();
173  1 af.alignPanel.setScrollValues(-1, 5);
174   
175    // setting -ve x value does not change residue
176  1 assertEquals(ranges.getEndRes(), oldres);
177   
178  1 af.alignPanel.setScrollValues(0, 5);
179   
180    // setting 0 as x value does not change residue
181  1 assertEquals(ranges.getEndRes(), oldres);
182   
183  1 af.alignPanel.setScrollValues(5, 5);
184    // setting x value to 5 extends endRes by 5 residues
185  1 assertEquals(ranges.getEndRes(), oldres + 5);
186   
187    // scroll to position after hidden columns sets endres to oldres (width) +
188    // position
189  1 int scrollpos = 60;
190  1 af.getViewport().hideColumns(30, 50);
191  1 af.alignPanel.setScrollValues(scrollpos, 5);
192  1 assertEquals(ranges.getEndRes(), oldres + scrollpos);
193   
194    // scroll to position within hidden columns, still sets endres to oldres +
195    // position
196    // not sure if this is actually correct behaviour but this is what Jalview
197    // currently does
198  1 scrollpos = 40;
199  1 af.getViewport().showAllHiddenColumns();
200  1 af.getViewport().hideColumns(30, 50);
201  1 af.alignPanel.setScrollValues(scrollpos, 5);
202  1 assertEquals(ranges.getEndRes(), oldres + scrollpos);
203   
204    // scroll to position within <width> distance of the end of the alignment
205    // endRes should be set to width of alignment - 1
206  1 scrollpos = 130;
207  1 af.getViewport().showAllHiddenColumns();
208  1 af.alignPanel.setScrollValues(scrollpos, 5);
209  1 assertEquals(ranges.getEndRes(), af.getViewport()
210    .getAlignment().getWidth() - 1);
211   
212    // now hide some columns, and scroll to position within <width>
213    // distance of the end of the alignment
214    // endRes should be set to width of alignment - 1 - the number of hidden
215    // columns
216  1 af.getViewport().hideColumns(30, 50);
217  1 af.alignPanel.setScrollValues(scrollpos, 5);
218  1 assertEquals(ranges.getEndRes(), af.getViewport()
219    .getAlignment().getWidth() - 1 - 21); // 21 is the number of hidden
220    // columns
221    }
222   
223    /**
224    * Test that update layout reverts to original (unwrapped) values for endRes
225    * and endSeq when switching from wrapped to unwrapped mode (JAL-2739)
226    */
 
227  0 toggle @Test(groups = "Functional")
228    public void TestUpdateLayout_endRes()
229    {
230    // get details of original alignment dimensions
231  0 ViewportRanges ranges = af.getViewport().getRanges();
232  0 int endres = ranges.getEndRes();
233   
234    // wrap
235  0 af.alignPanel.getAlignViewport().setWrapAlignment(true);
236  0 af.alignPanel.updateLayout();
237   
238    // endRes changes
239  0 assertNotEquals(ranges.getEndRes(), endres);
240   
241    // unwrap
242  0 af.alignPanel.getAlignViewport().setWrapAlignment(false);
243  0 af.alignPanel.updateLayout();
244   
245    // endRes and endSeq back to original values
246  0 Test failure here assertEquals(ranges.getEndRes(), endres);
247   
248    }
249    }