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.Assert.assertEquals;
25 import jalview.datamodel.Alignment;
26 import jalview.datamodel.AlignmentI;
27 import jalview.datamodel.Sequence;
28 import jalview.datamodel.SequenceFeature;
29 import jalview.datamodel.SequenceI;
30 import jalview.gui.AlignViewport;
31 import jalview.renderer.seqfeatures.FeatureRenderer;
32 import jalview.schemes.FeatureColour;
33 import jalview.schemes.ZappoColourScheme;
34 import jalview.viewmodel.AlignmentViewport;
35 import jalview.viewmodel.OverviewDimensions;
36 import jalview.viewmodel.OverviewDimensionsShowHidden;
37 import jalview.viewmodel.ViewportRanges;
39 import java.awt.Color;
41 import org.testng.annotations.Test;
43 public class OverviewRendererTest
47 public void testGetColumnColourFromSequence()
49 // gapColour, residueColour, hiddenColour
50 OverviewResColourFinder cf = new OverviewResColourFinder(Color.PINK,
51 Color.white, Color.green);
52 Sequence seq1 = new Sequence("seq1", "PQ-RL-");
53 Sequence seq2 = new Sequence("seq2", "FVE");
54 AlignmentI al = new Alignment(new SequenceI[] { seq1, seq2 });
55 AlignmentViewport av = new AlignViewport(al);
56 OverviewDimensions od = new OverviewDimensionsShowHidden(
57 new ViewportRanges(al), false);
58 ResidueShaderI rs = new ResidueShader(new ZappoColourScheme());
59 FeatureRenderer fr = new FeatureRenderer(av);
60 OverviewRenderer or = new OverviewRenderer(fr, od, al, rs, cf);
62 // P is magenta (see ResidueProperties.zappo)
63 assertEquals(or.getColumnColourFromSequence(null, seq1, 0),
64 Color.magenta.getRGB());
66 assertEquals(or.getColumnColourFromSequence(null, seq1, 1),
67 Color.green.getRGB());
68 // gap is pink (specified in OverviewResColourFinder constructor above)
69 assertEquals(or.getColumnColourFromSequence(null, seq1, 2),
72 assertEquals(or.getColumnColourFromSequence(null, seq2, 0),
73 Color.orange.getRGB());
75 assertEquals(or.getColumnColourFromSequence(null, seq2, 2),
77 // past end of sequence colour as gap (JAL-2929)
78 assertEquals(or.getColumnColourFromSequence(null, seq2, 3),
82 * now add a feature on seq1
84 seq1.addSequenceFeature(
85 new SequenceFeature("Pfam", "desc", 1, 4, null));
86 fr.findAllFeatures(true);
87 av.setShowSequenceFeatures(true);
88 fr.setColour("Pfam", new FeatureColour(Color.yellow));
89 assertEquals(or.getColumnColourFromSequence(null, seq1, 0),
90 Color.yellow.getRGB());
92 // don't show sequence features
93 av.setShowSequenceFeatures(false);
94 assertEquals(or.getColumnColourFromSequence(null, seq1, 0),
95 Color.magenta.getRGB());