2 * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
3 * Copyright (C) $$Year-Rel$$ The Jalview Authors
5 * This file is part of Jalview.
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.
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.
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.
21 package jalview.renderer;
23 import static org.testng.AssertJUnit.assertEquals;
25 import jalview.datamodel.Alignment;
26 import jalview.datamodel.AlignmentI;
27 import jalview.datamodel.Sequence;
28 import jalview.datamodel.SequenceI;
29 import jalview.gui.AlignViewport;
30 import jalview.gui.JvOptionPane;
31 import jalview.schemes.UserColourScheme;
32 import jalview.schemes.ZappoColourScheme;
34 import java.awt.Color;
36 import org.testng.annotations.BeforeClass;
37 import org.testng.annotations.Test;
39 public class OverviewResColourFinderTest
42 @BeforeClass(alwaysRun = true)
43 public void setUpJvOptionPane()
45 JvOptionPane.setInteractiveMode(false);
46 JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
49 @Test(groups = { "Functional" })
50 public void testGetResidueBoxColour_none()
52 SequenceI seq = new Sequence("name", "MA--TVLGSPRAPAFF");
53 AlignmentI al = new Alignment(new SequenceI[] { seq });
54 final AlignViewport av = new AlignViewport(al);
55 ResidueColourFinder rcf = new OverviewResColourFinder();
57 // gaps are grey, residues white
58 assertEquals(Color.white, rcf.getResidueColour(true,
59 av.getResidueShading(),
61 assertEquals(Color.lightGray, rcf
62 .getResidueColour(true, av.getResidueShading(), null, seq, 2,
65 // unaffected by showBoxes setting
66 assertEquals(Color.white, rcf.getResidueColour(false,
67 av.getResidueShading(), null, seq, 0, null));
68 assertEquals(Color.lightGray, rcf.getResidueColour(false,
69 av.getResidueShading(), null, seq, 2, null));
72 @Test(groups = { "Functional" })
73 public void testGetResidueBoxColour_zappo()
75 SequenceI seq = new Sequence("name", "MAT--GSPRAPAFF"); // FER1_MAIZE... + a
77 AlignmentI al = new Alignment(new SequenceI[] { seq });
78 final AlignViewport av = new AlignViewport(al);
79 ResidueColourFinder rcf = new OverviewResColourFinder();
80 av.setGlobalColourScheme(new ZappoColourScheme());
82 // @see ResidueProperties.zappo
83 assertEquals(Color.pink,
84 rcf.getResidueColour(true, av.getResidueShading(),
85 null, seq, 0, null)); // M
86 assertEquals(Color.green,
87 rcf.getResidueColour(true, av.getResidueShading(),
88 null, seq, 2, null)); // T
89 assertEquals(Color.magenta,
90 rcf.getResidueColour(true, av.getResidueShading(),
91 null, seq, 5, null)); // G
92 assertEquals(Color.orange,
93 rcf.getResidueColour(true, av.getResidueShading(),
94 null, seq, 12, null)); // F
96 // gap colour not specified so gaps are lightGray
97 assertEquals(Color.lightGray, rcf
98 .getResidueColour(true, av.getResidueShading(), null, seq, 3,
101 // unaffected by showBoxes setting
102 assertEquals(Color.pink, rcf.getResidueColour(false,
103 av.getResidueShading(), null, seq, 0, null)); // M
104 assertEquals(Color.green, rcf.getResidueColour(false,
105 av.getResidueShading(), null, seq, 2, null)); // T
106 assertEquals(Color.magenta, rcf.getResidueColour(false,
107 av.getResidueShading(), null, seq, 5, null)); // G
108 assertEquals(Color.orange, rcf.getResidueColour(false,
109 av.getResidueShading(), null, seq, 12, null)); // F
111 // gap colour not specified so gaps are lightGray
112 assertEquals(Color.lightGray, rcf
113 .getResidueColour(false, av.getResidueShading(), null, seq, 3,
118 @Test(groups = { "Functional" })
119 public void testGetResidueBoxColour_userdef()
121 SequenceI seq = new Sequence("name", "MAT--GSPRAPAFF"); // FER1_MAIZE... + a
123 AlignmentI al = new Alignment(new SequenceI[] { seq });
124 final AlignViewport av = new AlignViewport(al);
125 ResidueColourFinder rcf = new OverviewResColourFinder();
127 Color[] newColours = new Color[24];
128 for (int i = 0; i < 24; i++)
130 newColours[i] = null;
133 av.setGlobalColourScheme(new UserColourScheme(newColours));
135 // gap colour not specified so gaps are lightGray
136 assertEquals(Color.lightGray, rcf
137 .getResidueColour(true, av.getResidueShading(), null, seq, 3,
140 newColours[23] = Color.pink;
141 av.setGlobalColourScheme(new UserColourScheme(newColours));
143 // gap colour specified as pink
144 assertEquals(Color.pink, rcf.getResidueColour(true,
145 av.getResidueShading(),
146 null, seq, 3, null));
148 // unaffected by showBoxes setting
149 // gap colour not specified so gaps are lightGray
150 newColours[23] = null;
151 assertEquals(Color.lightGray, rcf.getResidueColour(false,
152 av.getResidueShading(), null, seq, 3, null));
154 newColours[23] = Color.pink;
155 av.setGlobalColourScheme(new UserColourScheme(newColours));
157 // gap colour specified as pink
158 assertEquals(Color.pink, rcf.getResidueColour(false,
159 av.getResidueShading(), null, seq, 3, null));