Clover icon

jalviewX

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

File OverviewResColourFinderTest.java

 

Code metrics

2
97
6
1
299
185
7
0.07
16.17
6
1.17

Classes

Class Line # Actions
OverviewResColourFinderTest 43 97 7 56
0.4666666746.7%
 

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.renderer;
22   
23    import static org.testng.AssertJUnit.assertEquals;
24   
25    import jalview.bin.Cache;
26    import jalview.datamodel.Alignment;
27    import jalview.datamodel.AlignmentI;
28    import jalview.datamodel.Sequence;
29    import jalview.datamodel.SequenceGroup;
30    import jalview.datamodel.SequenceI;
31    import jalview.gui.AlignViewport;
32    import jalview.gui.JvOptionPane;
33    import jalview.schemes.ColourSchemeI;
34    import jalview.schemes.UserColourScheme;
35    import jalview.schemes.ZappoColourScheme;
36   
37    import java.awt.Color;
38    import java.util.ArrayList;
39   
40    import org.testng.annotations.BeforeClass;
41    import org.testng.annotations.Test;
42   
 
43    public class OverviewResColourFinderTest
44    {
45   
 
46  1 toggle @BeforeClass(alwaysRun = true)
47    public void setUpJvOptionPane()
48    {
49  1 JvOptionPane.setInteractiveMode(false);
50  1 JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
51  1 Cache.loadProperties("test/jalview/io/testProps.jvprops");
52    }
53   
 
54  1 toggle @Test(groups = { "Functional" })
55    public void testGetResidueBoxColour_none()
56    {
57  1 SequenceI seq = new Sequence("name", "MA--TVLGSPRAPAFF");
58  1 AlignmentI al = new Alignment(new SequenceI[] { seq });
59  1 final AlignViewport av = new AlignViewport(al);
60  1 ResidueColourFinder rcf = new OverviewResColourFinder();
61   
62    // gaps are grey, residues white
63  1 assertEquals(Color.white, rcf.getResidueColour(true,
64    av.getResidueShading(),
65    null, seq, 0, null));
66  1 assertEquals(Color.lightGray, rcf
67    .getResidueColour(true, av.getResidueShading(), null, seq, 2,
68    null));
69   
70    // unaffected by showBoxes setting
71  1 assertEquals(Color.white, rcf.getResidueColour(false,
72    av.getResidueShading(), null, seq, 0, null));
73  1 assertEquals(Color.lightGray, rcf.getResidueColour(false,
74    av.getResidueShading(), null, seq, 2, null));
75    }
76   
 
77  1 toggle @Test(groups = { "Functional" })
78    public void testGetResidueBoxColour_zappo()
79    {
80  1 SequenceI seq = new Sequence("name", "MAT--GSPRAPAFF"); // FER1_MAIZE... + a
81    // gap
82  1 AlignmentI al = new Alignment(new SequenceI[] { seq });
83  1 final AlignViewport av = new AlignViewport(al);
84  1 ResidueColourFinder rcf = new OverviewResColourFinder();
85  1 av.setGlobalColourScheme(new ZappoColourScheme());
86   
87    // @see ResidueProperties.zappo
88  1 assertEquals(Color.pink,
89    rcf.getResidueColour(true, av.getResidueShading(),
90    null, seq, 0, null)); // M
91  1 assertEquals(Color.green,
92    rcf.getResidueColour(true, av.getResidueShading(),
93    null, seq, 2, null)); // T
94  1 assertEquals(Color.magenta,
95    rcf.getResidueColour(true, av.getResidueShading(),
96    null, seq, 5, null)); // G
97  1 assertEquals(Color.orange,
98    rcf.getResidueColour(true, av.getResidueShading(),
99    null, seq, 12, null)); // F
100   
101    // gap colour not specified so gaps are lightGray
102  1 assertEquals(Color.lightGray, rcf
103    .getResidueColour(true, av.getResidueShading(), null, seq, 3,
104    null));
105   
106    // unaffected by showBoxes setting
107  1 assertEquals(Color.pink, rcf.getResidueColour(false,
108    av.getResidueShading(), null, seq, 0, null)); // M
109  1 assertEquals(Color.green, rcf.getResidueColour(false,
110    av.getResidueShading(), null, seq, 2, null)); // T
111  1 assertEquals(Color.magenta, rcf.getResidueColour(false,
112    av.getResidueShading(), null, seq, 5, null)); // G
113  1 assertEquals(Color.orange, rcf.getResidueColour(false,
114    av.getResidueShading(), null, seq, 12, null)); // F
115   
116    // gap colour not specified so gaps are lightGray
117  1 assertEquals(Color.lightGray, rcf
118    .getResidueColour(false, av.getResidueShading(), null, seq, 3,
119    null));
120   
121    }
122   
 
123  1 toggle @Test(groups = { "Functional" })
124    public void testGetResidueBoxColour_userdef()
125    {
126  1 SequenceI seq = new Sequence("name", "MAT--GSPRAPAFF"); // FER1_MAIZE... + a
127    // gap
128  1 AlignmentI al = new Alignment(new SequenceI[] { seq });
129  1 final AlignViewport av = new AlignViewport(al);
130  1 ResidueColourFinder rcf = new OverviewResColourFinder();
131   
132  1 Color[] newColours = new Color[24];
133  25 for (int i = 0; i < 24; i++)
134    {
135  24 newColours[i] = null;
136    }
137   
138  1 av.setGlobalColourScheme(new UserColourScheme(newColours));
139   
140    // gap colour not specified so gaps are lightGray
141  1 assertEquals(Color.lightGray, rcf
142    .getResidueColour(true, av.getResidueShading(), null, seq, 3,
143    null));
144   
145  1 newColours[23] = Color.pink;
146  1 av.setGlobalColourScheme(new UserColourScheme(newColours));
147   
148    // gap colour specified as pink
149  1 assertEquals(Color.pink, rcf.getResidueColour(true,
150    av.getResidueShading(),
151    null, seq, 3, null));
152   
153    // unaffected by showBoxes setting
154    // gap colour not specified so gaps are lightGray
155  1 newColours[23] = null;
156  1 assertEquals(Color.lightGray, rcf.getResidueColour(false,
157    av.getResidueShading(), null, seq, 3, null));
158   
159  1 newColours[23] = Color.pink;
160  1 av.setGlobalColourScheme(new UserColourScheme(newColours));
161   
162    // gap colour specified as pink
163  1 assertEquals(Color.pink, rcf.getResidueColour(false,
164    av.getResidueShading(), null, seq, 3, null));
165    }
166   
 
167  0 toggle @Test
168    public void testGetResidueBoxColour_group()
169    {
170  0 SequenceI seq = new Sequence("name", "MA--TVLGSPRAPAFF");
171  0 AlignmentI al = new Alignment(new SequenceI[] { seq });
172   
173  0 ColourSchemeI cs = new ZappoColourScheme();
174  0 ArrayList<SequenceI> seqlist = new ArrayList<>();
175  0 seqlist.add(seq);
176  0 SequenceGroup sg = new SequenceGroup(seqlist, "testgroup", cs, true,
177    true, true, 5, 9);
178  0 al.addGroup(sg);
179  0 SequenceGroup[] groups = new SequenceGroup[1];
180  0 groups[0] = sg;
181   
182  0 final AlignViewport av = new AlignViewport(al);
183  0 ResidueColourFinder rcf = new OverviewResColourFinder();
184   
185    // G in group specified as magenta in Zappo
186  0 assertEquals(Color.magenta, rcf.getResidueColour(false,
187    av.getResidueShading(), groups, seq, 7, null));
188   
189    // Residue outside group coloured white
190  0 assertEquals(Color.white, rcf.getResidueColour(false,
191    av.getResidueShading(), groups, seq, 0, null));
192   
193    // Gap outside group coloured lightgray
194  0 assertEquals(Color.lightGray, rcf.getResidueColour(false,
195    av.getResidueShading(), groups, seq, 2, null));
196   
197    // use legacy colouring
198  0 rcf = new OverviewResColourFinder(true, Color.blue, Color.red);
199   
200    // G in group specified as magenta in Zappo
201  0 assertEquals(Color.magenta, rcf.getResidueColour(false,
202    av.getResidueShading(), groups, seq, 7, null));
203   
204    // Residue outside group coloured lightgray
205  0 assertEquals(Color.lightGray, rcf.getResidueColour(false,
206    av.getResidueShading(), groups, seq, 0, null));
207   
208    // Gap outside group coloured white
209  0 assertEquals(Color.white, rcf.getResidueColour(false,
210    av.getResidueShading(), groups, seq, 2, null));
211   
212    // use new colouring
213  0 rcf = new OverviewResColourFinder(false, Color.blue, Color.red);
214   
215    // G in group specified as magenta in Zappo
216  0 assertEquals(Color.magenta, rcf.getResidueColour(false,
217    av.getResidueShading(), groups, seq, 7, null));
218   
219    // Residue outside group coloured white
220  0 assertEquals(Color.white, rcf.getResidueColour(false,
221    av.getResidueShading(), groups, seq, 0, null));
222   
223    // Gap outside group coloured blue
224  0 assertEquals(Color.blue, rcf.getResidueColour(false,
225    av.getResidueShading(), groups, seq, 2, null));
226    }
227   
 
228  0 toggle @Test
229    public void testGetBoxColour()
230    {
231  0 SequenceI seq = new Sequence("name", "MAT--GSPRAPAFF"); // FER1_MAIZE... + a
232    // gap
233  0 AlignmentI al = new Alignment(new SequenceI[] { seq });
234  0 final AlignViewport av = new AlignViewport(al);
235   
236    // non-legacy colouring
237  0 ResidueColourFinder rcf = new OverviewResColourFinder();
238  0 ResidueShaderI shader = new ResidueShader();
239   
240    // residues white
241  0 Color c = rcf.getBoxColour(shader, seq, 0);
242  0 assertEquals(Color.white, c);
243   
244    // gaps gap colour
245  0 c = rcf.getBoxColour(shader, seq, 3);
246  0 assertEquals(
247    jalview.renderer.OverviewResColourFinder.OVERVIEW_DEFAULT_GAP,
248    c);
249   
250    // legacy colouring set explicitly via constructor
251  0 rcf = new OverviewResColourFinder(true, Color.blue, Color.red);
252  0 shader = new ResidueShader();
253   
254    // residues light gray
255  0 c = rcf.getBoxColour(shader, seq, 0);
256  0 assertEquals(Color.lightGray, c);
257   
258    // gaps white
259  0 c = rcf.getBoxColour(shader, seq, 3);
260  0 assertEquals(Color.white, c);
261   
262    // legacy colouring off
263  0 rcf = new OverviewResColourFinder();
264  0 shader = new ResidueShader();
265   
266    // residues white
267  0 c = rcf.getBoxColour(shader, seq, 0);
268  0 assertEquals(Color.white, c);
269   
270    // gaps gap colour
271  0 c = rcf.getBoxColour(shader, seq, 3);
272  0 assertEquals(
273    jalview.renderer.OverviewResColourFinder.OVERVIEW_DEFAULT_GAP,
274    c);
275   
276    // non legacy colouring with colour scheme
277  0 rcf = new OverviewResColourFinder(false, Color.blue, Color.red);
278  0 shader = new ResidueShader(new ZappoColourScheme());
279   
280    // M residue pink
281  0 c = rcf.getBoxColour(shader, seq, 0);
282  0 assertEquals(Color.pink, c);
283   
284    // gaps blue
285  0 c = rcf.getBoxColour(shader, seq, 3);
286  0 assertEquals(Color.blue, c);
287   
288    // legacy colouring with colour scheme
289  0 rcf = new OverviewResColourFinder(true, Color.blue, Color.red);
290   
291    // M residue pink
292  0 c = rcf.getBoxColour(shader, seq, 0);
293  0 assertEquals(Color.pink, c);
294   
295    // gaps white
296  0 c = rcf.getBoxColour(shader, seq, 3);
297  0 assertEquals(Color.white, c);
298    }
299    }