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 ResidueColourFinderTest
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 testGetResidueColour_zappo()
52 SequenceI seq = new Sequence("name", "MATVLGSPRAPAFF"); // FER1_MAIZE...
53 AlignmentI al = new Alignment(new SequenceI[] { seq });
54 final AlignViewport av = new AlignViewport(al);
55 ResidueColourFinder rcf = new ResidueColourFinder();
56 av.setGlobalColourScheme(new ZappoColourScheme());
58 // @see ResidueProperties.zappo
59 assertEquals(Color.pink,
60 rcf.getResidueColour(av.getResidueShading(), null, seq, 0,
62 assertEquals(Color.green,
63 rcf.getResidueColour(av.getResidueShading(), null, seq, 2,
65 assertEquals(Color.magenta,
66 rcf.getResidueColour(av.getResidueShading(), null, seq, 5,
68 assertEquals(Color.orange,
69 rcf.getResidueColour(av.getResidueShading(), null, seq, 12,
73 @Test(groups = { "Functional" })
74 public void testGetResidueColour_none()
76 SequenceI seq = new Sequence("name", "MA--TVLGSPRAPAFF");
77 AlignmentI al = new Alignment(new SequenceI[] { seq });
78 final AlignViewport av = new AlignViewport(al);
79 ResidueColourFinder rcf = new ResidueColourFinder();
81 assertEquals(Color.white, rcf.getResidueColour(av.getResidueShading(),
83 assertEquals(Color.white, rcf.getResidueColour(av.getResidueShading(),
87 @Test(groups = { "Functional" })
88 public void testGetResidueColour_userdef()
90 SequenceI seq = new Sequence("name", "MAT--GSPRAPAFF"); // FER1_MAIZE... + a
92 AlignmentI al = new Alignment(new SequenceI[] { seq });
93 final AlignViewport av = new AlignViewport(al);
94 ResidueColourFinder rcf = new ResidueColourFinder();
96 Color[] newColours = new Color[24];
97 for (int i = 0; i < 24; i++)
102 av.setGlobalColourScheme(new UserColourScheme(newColours));
104 // gap colour not specified so gaps are null
105 assertEquals(null, rcf.getResidueColour(av.getResidueShading(),
106 null, seq, 3, null));
108 newColours[23] = Color.pink;
109 av.setGlobalColourScheme(new UserColourScheme(newColours));
111 // gap colour specified as pink
112 assertEquals(Color.pink, rcf.getResidueColour(av.getResidueShading(),
113 null, seq, 3, null));
116 // TODO more tests for getResidueBoxColour covering groups, feature rendering,