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));
64 @Test(groups = { "Functional" })
65 public void testGetResidueBoxColour_zappo()
67 SequenceI seq = new Sequence("name", "MAT--GSPRAPAFF"); // FER1_MAIZE... + a
69 AlignmentI al = new Alignment(new SequenceI[] { seq });
70 final AlignViewport av = new AlignViewport(al);
71 ResidueColourFinder rcf = new OverviewResColourFinder();
72 av.setGlobalColourScheme(new ZappoColourScheme());
74 // @see ResidueProperties.zappo
75 assertEquals(Color.pink, rcf.getResidueColour(av.getResidueShading(),
76 null, seq, 0, null)); // M
77 assertEquals(Color.green, rcf.getResidueColour(av.getResidueShading(),
78 null, seq, 2, null)); // T
79 assertEquals(Color.magenta, rcf.getResidueColour(av.getResidueShading(),
80 null, seq, 5, null)); // G
81 assertEquals(Color.orange, rcf.getResidueColour(av.getResidueShading(),
82 null, seq, 12, null)); // F
84 // gap colour not specified so gaps are lightGray
85 assertEquals(Color.lightGray, rcf
86 .getResidueColour(av.getResidueShading(), null, seq, 3, null));
88 // gap colour not specified so gaps are lightGray
89 assertEquals(Color.lightGray, rcf
90 .getResidueColour(av.getResidueShading(), null, seq, 3, null));
94 @Test(groups = { "Functional" })
95 public void testGetResidueBoxColour_userdef()
97 SequenceI seq = new Sequence("name", "MAT--GSPRAPAFF"); // FER1_MAIZE... + a
99 AlignmentI al = new Alignment(new SequenceI[] { seq });
100 final AlignViewport av = new AlignViewport(al);
101 ResidueColourFinder rcf = new OverviewResColourFinder();
103 Color[] newColours = new Color[24];
104 for (int i = 0; i < 24; i++)
106 newColours[i] = null;
109 av.setGlobalColourScheme(new UserColourScheme(newColours));
111 // gap colour not specified so gaps are lightGray
112 assertEquals(Color.lightGray, rcf
113 .getResidueColour(av.getResidueShading(), null, seq, 3, null));
115 newColours[23] = Color.pink;
116 av.setGlobalColourScheme(new UserColourScheme(newColours));
118 // gap colour specified as pink
119 assertEquals(Color.pink, rcf.getResidueColour(av.getResidueShading(),
120 null, seq, 3, null));