X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=test%2Fjalview%2Frenderer%2Fseqfeatures%2FFeatureColourFinderTest.java;h=7fd7abc792f604c8247ad16dcd016e749e198b44;hb=cef8dbc4cf7c8b47864b11aad36596901003639a;hp=28d608f97752b1522d2c2db822e61edd00098d82;hpb=cbd8097349fa0358d4a576115dcbcb15f5767a0c;p=jalview.git diff --git a/test/jalview/renderer/seqfeatures/FeatureColourFinderTest.java b/test/jalview/renderer/seqfeatures/FeatureColourFinderTest.java index 28d608f..7fd7abc 100644 --- a/test/jalview/renderer/seqfeatures/FeatureColourFinderTest.java +++ b/test/jalview/renderer/seqfeatures/FeatureColourFinderTest.java @@ -448,4 +448,86 @@ public class FeatureColourFinderTest FeatureColourFinder finder2 = new FeatureColourFinder(null); assertTrue(finder2.noFeaturesDisplayed()); } + + @Test(groups = "Functional") + public void testFindFeatureColour_graduatedWithThreshold() + { + String kdFeature = "kd"; + String metalFeature = "Metal"; + seq.addSequenceFeature(new SequenceFeature(kdFeature, "hydrophobicity", 2, + 2, 0f, "KdGroup")); + seq.addSequenceFeature(new SequenceFeature(kdFeature, "hydrophobicity", 4, + 4, 5f, "KdGroup")); + seq.addSequenceFeature(new SequenceFeature(metalFeature, "Fe", 4, 4, + 5f, "MetalGroup")); + seq.addSequenceFeature(new SequenceFeature(kdFeature, "hydrophobicity", 7, + 7, 10f, "KdGroup")); + + /* + * kd feature has graduated colour from 0 to 10 + * above threshold value of 5 + */ + Color min = new Color(100, 50, 150); + Color max = new Color(200, 0, 100); + FeatureColourI fc = new FeatureColour(min, max, 0, 10); + fc.setAboveThreshold(true); + fc.setThreshold(5f); + 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); + + /* + * position 2, column 1, score 0 - below threshold - default colour + */ + Color c = finder.findFeatureColour(Color.blue, seq, 1); + assertEquals(c, Color.blue); + + /* + * 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.green); + + /* + * position 7, column 9, score 10 - maximum colour in range + */ + c = finder.findFeatureColour(Color.blue, seq, 9); + assertEquals(c, max); + + /* + * now colour below threshold of 5 + */ + fc.setBelowThreshold(true); + + /* + * position 2, column 1, score 0 - min colour + */ + c = finder.findFeatureColour(Color.blue, seq, 1); + assertEquals(c, min); + + /* + * 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.green); + + /* + * position 7, column 9, score 10 - above threshold - default colour + */ + c = finder.findFeatureColour(Color.blue, seq, 9); + assertEquals(c, Color.blue); + } }