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(av.getResidueShading(),
60 assertEquals(Color.lightGray, rcf
61 .getResidueColour(av.getResidueShading(), null, seq, 2, null));
63 // boxes off does not change anything
64 av.setShowBoxes(false);
65 assertEquals(Color.white, rcf
66 .getResidueColour(av.getResidueShading(), null, seq, 0, null));
67 assertEquals(Color.lightGray, rcf
68 .getResidueColour(av.getResidueShading(),
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, rcf.getResidueColour(av.getResidueShading(),
84 null, seq, 0, null)); // M
85 assertEquals(Color.green, rcf.getResidueColour(av.getResidueShading(),
86 null, seq, 2, null)); // T
87 assertEquals(Color.magenta, rcf.getResidueColour(av.getResidueShading(),
88 null, seq, 5, null)); // G
89 assertEquals(Color.orange, rcf.getResidueColour(av.getResidueShading(),
90 null, seq, 12, null)); // F
92 // gap colour not specified so gaps are lightGray
93 assertEquals(Color.lightGray, rcf
94 .getResidueColour(av.getResidueShading(), null, seq, 3, null));
96 // boxes off does not change anything
97 av.setShowBoxes(false);
99 assertEquals(Color.pink, rcf.getResidueColour(av.getResidueShading(),
100 null, seq, 0, null)); // M
101 assertEquals(Color.green, rcf.getResidueColour(av.getResidueShading(),
102 null, seq, 2, null)); // T
103 assertEquals(Color.magenta, rcf.getResidueColour(av.getResidueShading(),
104 null, seq, 5, null)); // G
105 assertEquals(Color.orange, rcf.getResidueColour(av.getResidueShading(),
106 null, seq, 12, null)); // F
108 // gap colour not specified so gaps are lightGray
109 assertEquals(Color.lightGray, rcf
110 .getResidueColour(av.getResidueShading(), null, seq, 3, null));
114 @Test(groups = { "Functional" })
115 public void testGetResidueBoxColour_userdef()
117 SequenceI seq = new Sequence("name", "MAT--GSPRAPAFF"); // FER1_MAIZE... + a
119 AlignmentI al = new Alignment(new SequenceI[] { seq });
120 final AlignViewport av = new AlignViewport(al);
121 ResidueColourFinder rcf = new OverviewResColourFinder();
123 Color[] newColours = new Color[24];
124 for (int i = 0; i < 24; i++)
126 newColours[i] = null;
129 av.setGlobalColourScheme(new UserColourScheme(newColours));
131 // gap colour not specified so gaps are lightGray
132 assertEquals(Color.lightGray, rcf
133 .getResidueColour(av.getResidueShading(), null, seq, 3, null));
135 newColours[23] = Color.pink;
136 av.setGlobalColourScheme(new UserColourScheme(newColours));
138 // gap colour specified as pink
139 assertEquals(Color.pink, rcf.getResidueColour(av.getResidueShading(),
140 null, seq, 3, null));