From ef7ded229ddd70a406c37a7aac160b832736eb76 Mon Sep 17 00:00:00 2001 From: gmungoc Date: Sun, 23 Jul 2017 09:37:51 +0100 Subject: [PATCH] JAL-2481 JAL-2624 test for render feature below score feature outwith threshold --- .../renderer/seqfeatures/FeatureRenderer.java | 3 +- .../seqfeatures/FeatureColourFinderTest.java | 35 +++++++++++++++----- 2 files changed, 28 insertions(+), 10 deletions(-) diff --git a/src/jalview/renderer/seqfeatures/FeatureRenderer.java b/src/jalview/renderer/seqfeatures/FeatureRenderer.java index d661915..8feee1f 100644 --- a/src/jalview/renderer/seqfeatures/FeatureRenderer.java +++ b/src/jalview/renderer/seqfeatures/FeatureRenderer.java @@ -416,7 +416,8 @@ public class FeatureRenderer extends FeatureRendererModel * Returns the sequence feature colour rendered at the given column position, * or null if none found. The feature of highest render order (i.e. on top) is * found, subject to both feature type and feature group being visible, and - * its colour returned. + * its colour returned. This method is suitable when no feature transparency + * applied (only the topmost visible feature colour is rendered). *

* Note this method does not check for a gap in the column so would return the * colour for features enclosing a gapped column. Check for gap before calling diff --git a/test/jalview/renderer/seqfeatures/FeatureColourFinderTest.java b/test/jalview/renderer/seqfeatures/FeatureColourFinderTest.java index ecabfca..7fd7abc 100644 --- a/test/jalview/renderer/seqfeatures/FeatureColourFinderTest.java +++ b/test/jalview/renderer/seqfeatures/FeatureColourFinderTest.java @@ -452,15 +452,19 @@ public class FeatureColourFinderTest @Test(groups = "Functional") public void testFindFeatureColour_graduatedWithThreshold() { - seq.addSequenceFeature(new SequenceFeature("kd", "hydrophobicity", 2, + String kdFeature = "kd"; + String metalFeature = "Metal"; + seq.addSequenceFeature(new SequenceFeature(kdFeature, "hydrophobicity", 2, 2, 0f, "KdGroup")); - seq.addSequenceFeature(new SequenceFeature("kd", "hydrophobicity", 4, + seq.addSequenceFeature(new SequenceFeature(kdFeature, "hydrophobicity", 4, 4, 5f, "KdGroup")); - seq.addSequenceFeature(new SequenceFeature("kd", "hydrophobicity", 7, + seq.addSequenceFeature(new SequenceFeature(metalFeature, "Fe", 4, 4, + 5f, "MetalGroup")); + seq.addSequenceFeature(new SequenceFeature(kdFeature, "hydrophobicity", 7, 7, 10f, "KdGroup")); /* - * graduated colour from 0 to 10 + * kd feature has graduated colour from 0 to 10 * above threshold value of 5 */ Color min = new Color(100, 50, 150); @@ -468,8 +472,19 @@ public class FeatureColourFinderTest FeatureColourI fc = new FeatureColour(min, max, 0, 10); fc.setAboveThreshold(true); fc.setThreshold(5f); - fr.setColour("kd", fc); + fr.setColour(kdFeature, fc); + FeatureColour green = new FeatureColour(Color.green); + fr.setColour(metalFeature, green); fr.featuresAdded(); + + /* + * render order is kd above Metal + */ + Object[][] data = new Object[2][]; + data[0] = new Object[] { kdFeature, fc, true }; + data[1] = new Object[] { metalFeature, green, true }; + fr.setFeaturePriority(data); + av.setShowSequenceFeatures(true); /* @@ -479,10 +494,11 @@ public class FeatureColourFinderTest assertEquals(c, Color.blue); /* - * position 4, column 3, score 5 - at threshold - default colour + * position 4, column 3, score 5 - at threshold + * should return Green (colour of Metal feature) */ c = finder.findFeatureColour(Color.blue, seq, 3); - assertEquals(c, Color.blue); + assertEquals(c, Color.green); /* * position 7, column 9, score 10 - maximum colour in range @@ -502,10 +518,11 @@ public class FeatureColourFinderTest assertEquals(c, min); /* - * position 4, column 3, score 5 - at threshold - default colour + * position 4, column 3, score 5 - at threshold + * should return Green (colour of Metal feature) */ c = finder.findFeatureColour(Color.blue, seq, 3); - assertEquals(c, Color.blue); + assertEquals(c, Color.green); /* * position 7, column 9, score 10 - above threshold - default colour -- 1.7.10.2