X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=test%2Fjalview%2Frenderer%2FOverviewResColourFinderTest.java;h=3931dbffc4e14e7605ecf39018e0d9c42272642b;hb=3459a8a691cb22508d7067f240b7254e588e77d3;hp=59348d564a6197d6c4b5c5941fc2b168a03159b1;hpb=fb548a8458941602b0b8b45da5aaf60206e10ec2;p=jalview.git diff --git a/test/jalview/renderer/OverviewResColourFinderTest.java b/test/jalview/renderer/OverviewResColourFinderTest.java index 59348d5..3931dbf 100644 --- a/test/jalview/renderer/OverviewResColourFinderTest.java +++ b/test/jalview/renderer/OverviewResColourFinderTest.java @@ -22,16 +22,20 @@ package jalview.renderer; import static org.testng.AssertJUnit.assertEquals; +import jalview.bin.Cache; import jalview.datamodel.Alignment; import jalview.datamodel.AlignmentI; import jalview.datamodel.Sequence; +import jalview.datamodel.SequenceGroup; import jalview.datamodel.SequenceI; import jalview.gui.AlignViewport; import jalview.gui.JvOptionPane; +import jalview.schemes.ColourSchemeI; import jalview.schemes.UserColourScheme; import jalview.schemes.ZappoColourScheme; import java.awt.Color; +import java.util.ArrayList; import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; @@ -44,6 +48,7 @@ public class OverviewResColourFinderTest { JvOptionPane.setInteractiveMode(false); JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION); + Cache.loadProperties("test/jalview/io/testProps.jvprops"); } @Test(groups = { "Functional" }) @@ -55,18 +60,16 @@ public class OverviewResColourFinderTest ResidueColourFinder rcf = new OverviewResColourFinder(); // gaps are grey, residues white - assertEquals(Color.white, rcf.getResidueColour(av.getResidueShading(), - null, seq, 0, null)); - assertEquals(Color.lightGray, rcf - .getResidueColour(av.getResidueShading(), null, seq, 2, null)); - - // boxes off does not change anything - av.setShowBoxes(false); - assertEquals(Color.white, rcf - .getResidueColour(av.getResidueShading(), null, seq, 0, null)); - assertEquals(Color.lightGray, rcf - .getResidueColour(av.getResidueShading(), - null, seq, 2, null)); + assertEquals(Color.white, rcf.getResidueColour(true, + av.getResidueShading(), null, seq, 0, null)); + assertEquals(Color.lightGray, rcf.getResidueColour(true, + av.getResidueShading(), null, seq, 2, null)); + + // unaffected by showBoxes setting + assertEquals(Color.white, rcf.getResidueColour(false, + av.getResidueShading(), null, seq, 0, null)); + assertEquals(Color.lightGray, rcf.getResidueColour(false, + av.getResidueShading(), null, seq, 2, null)); } @Test(groups = { "Functional" }) @@ -80,34 +83,32 @@ public class OverviewResColourFinderTest av.setGlobalColourScheme(new ZappoColourScheme()); // @see ResidueProperties.zappo - assertEquals(Color.pink, rcf.getResidueColour(av.getResidueShading(), - null, seq, 0, null)); // M - assertEquals(Color.green, rcf.getResidueColour(av.getResidueShading(), - null, seq, 2, null)); // T - assertEquals(Color.magenta, rcf.getResidueColour(av.getResidueShading(), - null, seq, 5, null)); // G - assertEquals(Color.orange, rcf.getResidueColour(av.getResidueShading(), - null, seq, 12, null)); // F + assertEquals(Color.pink, rcf.getResidueColour(true, + av.getResidueShading(), null, seq, 0, null)); // M + assertEquals(Color.green, rcf.getResidueColour(true, + av.getResidueShading(), null, seq, 2, null)); // T + assertEquals(Color.magenta, rcf.getResidueColour(true, + av.getResidueShading(), null, seq, 5, null)); // G + assertEquals(Color.orange, rcf.getResidueColour(true, + av.getResidueShading(), null, seq, 12, null)); // F // gap colour not specified so gaps are lightGray - assertEquals(Color.lightGray, rcf - .getResidueColour(av.getResidueShading(), null, seq, 3, null)); - - // boxes off does not change anything - av.setShowBoxes(false); + assertEquals(Color.lightGray, rcf.getResidueColour(true, + av.getResidueShading(), null, seq, 3, null)); - assertEquals(Color.pink, rcf.getResidueColour(av.getResidueShading(), - null, seq, 0, null)); // M - assertEquals(Color.green, rcf.getResidueColour(av.getResidueShading(), - null, seq, 2, null)); // T - assertEquals(Color.magenta, rcf.getResidueColour(av.getResidueShading(), - null, seq, 5, null)); // G - assertEquals(Color.orange, rcf.getResidueColour(av.getResidueShading(), - null, seq, 12, null)); // F + // unaffected by showBoxes setting + assertEquals(Color.pink, rcf.getResidueColour(false, + av.getResidueShading(), null, seq, 0, null)); // M + assertEquals(Color.green, rcf.getResidueColour(false, + av.getResidueShading(), null, seq, 2, null)); // T + assertEquals(Color.magenta, rcf.getResidueColour(false, + av.getResidueShading(), null, seq, 5, null)); // G + assertEquals(Color.orange, rcf.getResidueColour(false, + av.getResidueShading(), null, seq, 12, null)); // F // gap colour not specified so gaps are lightGray - assertEquals(Color.lightGray, rcf - .getResidueColour(av.getResidueShading(), null, seq, 3, null)); + assertEquals(Color.lightGray, rcf.getResidueColour(false, + av.getResidueShading(), null, seq, 3, null)); } @@ -129,14 +130,160 @@ public class OverviewResColourFinderTest av.setGlobalColourScheme(new UserColourScheme(newColours)); // gap colour not specified so gaps are lightGray - assertEquals(Color.lightGray, rcf - .getResidueColour(av.getResidueShading(), null, seq, 3, null)); + assertEquals(Color.lightGray, rcf.getResidueColour(true, + av.getResidueShading(), null, seq, 3, null)); newColours[23] = Color.pink; av.setGlobalColourScheme(new UserColourScheme(newColours)); // gap colour specified as pink - assertEquals(Color.pink, rcf.getResidueColour(av.getResidueShading(), - null, seq, 3, null)); + assertEquals(Color.pink, rcf.getResidueColour(true, + av.getResidueShading(), null, seq, 3, null)); + + // unaffected by showBoxes setting + // gap colour not specified so gaps are lightGray + newColours[23] = null; + assertEquals(Color.lightGray, rcf.getResidueColour(false, + av.getResidueShading(), null, seq, 3, null)); + + newColours[23] = Color.pink; + av.setGlobalColourScheme(new UserColourScheme(newColours)); + + // gap colour specified as pink + assertEquals(Color.pink, rcf.getResidueColour(false, + av.getResidueShading(), null, seq, 3, null)); + } + + @Test + public void testGetResidueBoxColour_group() + { + SequenceI seq = new Sequence("name", "MA--TVLGSPRAPAFF"); + AlignmentI al = new Alignment(new SequenceI[] { seq }); + + ColourSchemeI cs = new ZappoColourScheme(); + ArrayList seqlist = new ArrayList<>(); + seqlist.add(seq); + SequenceGroup sg = new SequenceGroup(seqlist, "testgroup", cs, true, + true, true, 5, 9); + al.addGroup(sg); + SequenceGroup[] groups = new SequenceGroup[1]; + groups[0] = sg; + + final AlignViewport av = new AlignViewport(al); + ResidueColourFinder rcf = new OverviewResColourFinder(); + + // G in group specified as magenta in Zappo + assertEquals(Color.magenta, rcf.getResidueColour(false, + av.getResidueShading(), groups, seq, 7, null)); + + // Residue outside group coloured white + assertEquals(Color.white, rcf.getResidueColour(false, + av.getResidueShading(), groups, seq, 0, null)); + + // Gap outside group coloured lightgray + assertEquals(Color.lightGray, rcf.getResidueColour(false, + av.getResidueShading(), groups, seq, 2, null)); + + // use legacy colouring + rcf = new OverviewResColourFinder(true, Color.blue, Color.red); + + // G in group specified as magenta in Zappo + assertEquals(Color.magenta, rcf.getResidueColour(false, + av.getResidueShading(), groups, seq, 7, null)); + + // Residue outside group coloured lightgray + assertEquals(Color.lightGray, rcf.getResidueColour(false, + av.getResidueShading(), groups, seq, 0, null)); + + // Gap outside group coloured white + assertEquals(Color.white, rcf.getResidueColour(false, + av.getResidueShading(), groups, seq, 2, null)); + + // use new colouring + rcf = new OverviewResColourFinder(false, Color.blue, Color.red); + + // G in group specified as magenta in Zappo + assertEquals(Color.magenta, rcf.getResidueColour(false, + av.getResidueShading(), groups, seq, 7, null)); + + // Residue outside group coloured white + assertEquals(Color.white, rcf.getResidueColour(false, + av.getResidueShading(), groups, seq, 0, null)); + + // Gap outside group coloured blue + assertEquals(Color.blue, rcf.getResidueColour(false, + av.getResidueShading(), groups, seq, 2, null)); + } + + @Test + public void testGetBoxColour() + { + SequenceI seq = new Sequence("name", "MAT--GSPRAPAFF"); // FER1_MAIZE... + a + // gap + AlignmentI al = new Alignment(new SequenceI[] { seq }); + final AlignViewport av = new AlignViewport(al); + + // non-legacy colouring + ResidueColourFinder rcf = new OverviewResColourFinder(); + ResidueShaderI shader = new ResidueShader(); + + // residues white + Color c = rcf.getBoxColour(shader, seq, 0); + assertEquals(Color.white, c); + + // gaps gap colour + c = rcf.getBoxColour(shader, seq, 3); + assertEquals( + jalview.renderer.OverviewResColourFinder.OVERVIEW_DEFAULT_GAP, + c); + + // legacy colouring set explicitly via constructor + rcf = new OverviewResColourFinder(true, Color.blue, Color.red); + shader = new ResidueShader(); + + // residues light gray + c = rcf.getBoxColour(shader, seq, 0); + assertEquals(Color.lightGray, c); + + // gaps white + c = rcf.getBoxColour(shader, seq, 3); + assertEquals(Color.white, c); + + // legacy colouring off + rcf = new OverviewResColourFinder(); + shader = new ResidueShader(); + + // residues white + c = rcf.getBoxColour(shader, seq, 0); + assertEquals(Color.white, c); + + // gaps gap colour + c = rcf.getBoxColour(shader, seq, 3); + assertEquals( + jalview.renderer.OverviewResColourFinder.OVERVIEW_DEFAULT_GAP, + c); + + // non legacy colouring with colour scheme + rcf = new OverviewResColourFinder(false, Color.blue, Color.red); + shader = new ResidueShader(new ZappoColourScheme()); + + // M residue pink + c = rcf.getBoxColour(shader, seq, 0); + assertEquals(Color.pink, c); + + // gaps blue + c = rcf.getBoxColour(shader, seq, 3); + assertEquals(Color.blue, c); + + // legacy colouring with colour scheme + rcf = new OverviewResColourFinder(true, Color.blue, Color.red); + + // M residue pink + c = rcf.getBoxColour(shader, seq, 0); + assertEquals(Color.pink, c); + + // gaps white + c = rcf.getBoxColour(shader, seq, 3); + assertEquals(Color.white, c); } }