bc9c2e4685000b6fefa3d2f54686ee12672f984f
[jalview.git] / test / jalview / renderer / OverviewRendererTest.java
1 package jalview.renderer;
2
3 import static org.testng.Assert.assertEquals;
4
5 import jalview.datamodel.Alignment;
6 import jalview.datamodel.AlignmentI;
7 import jalview.datamodel.Sequence;
8 import jalview.datamodel.SequenceFeature;
9 import jalview.datamodel.SequenceI;
10 import jalview.gui.AlignViewport;
11 import jalview.renderer.seqfeatures.FeatureRenderer;
12 import jalview.schemes.FeatureColour;
13 import jalview.schemes.ZappoColourScheme;
14 import jalview.viewmodel.AlignmentViewport;
15 import jalview.viewmodel.OverviewDimensions;
16 import jalview.viewmodel.OverviewDimensionsShowHidden;
17 import jalview.viewmodel.ViewportRanges;
18
19 import java.awt.Color;
20
21 import org.testng.annotations.Test;
22 public class OverviewRendererTest
23 {
24
25   @Test
26   public void testGetColumnColourFromSequence()
27   {
28     OverviewResColourFinder cf = new OverviewResColourFinder(false,
29             Color.PINK, Color.green); // gapColour, hiddenColour
30     Sequence seq1 = new Sequence("seq1", "PQ-RL-");
31     Sequence seq2 = new Sequence("seq2", "FVE");
32     AlignmentI al = new Alignment(new SequenceI[] { seq1, seq2 });
33     AlignmentViewport av = new AlignViewport(al);
34     OverviewDimensions od = new OverviewDimensionsShowHidden(new ViewportRanges(al), false);
35     ResidueShaderI rs = new ResidueShader(new ZappoColourScheme());
36     FeatureRenderer fr = new FeatureRenderer(av);
37     OverviewRenderer or = new OverviewRenderer(fr, od, al, rs, cf);
38
39     // P is magenta (see ResidueProperties.zappo)
40     assertEquals(or.getColumnColourFromSequence(null, seq1, 0), Color.magenta.getRGB());
41     // Q is green
42     assertEquals(or.getColumnColourFromSequence(null, seq1, 1),
43             Color.green.getRGB());
44     // gap is pink (specified in OverviewResColourFinder constructor above)
45     assertEquals(or.getColumnColourFromSequence(null, seq1, 2),
46             Color.pink.getRGB());
47     // F is orange
48     assertEquals(or.getColumnColourFromSequence(null, seq2, 0),
49             Color.orange.getRGB());
50     // E is red
51     assertEquals(or.getColumnColourFromSequence(null, seq2, 2),
52             Color.red.getRGB());
53     // past end of sequence colour as gap (JAL-2929)
54     assertEquals(or.getColumnColourFromSequence(null, seq2, 3),
55             Color.pink.getRGB());
56
57     /*
58      * now add a feature on seq1
59      */
60     seq1.addSequenceFeature(
61             new SequenceFeature("Pfam", "desc", 1, 4, null));
62     fr.findAllFeatures(true);
63     av.setShowSequenceFeatures(true);
64     fr.setColour("Pfam", new FeatureColour(Color.yellow));
65     assertEquals(or.getColumnColourFromSequence(null, seq1, 0),
66             Color.yellow.getRGB());
67
68     // don't show sequence features
69     av.setShowSequenceFeatures(false);
70     assertEquals(or.getColumnColourFromSequence(null, seq1, 0),
71             Color.magenta.getRGB());
72   }
73 }