Merge branch 'releases/Release_2_10_4_Branch'
[jalview.git] / test / jalview / renderer / seqfeatures / FeatureRendererTest.java
index 3e27aba..6bb611c 100644 (file)
@@ -1,3 +1,23 @@
+/*
+ * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
+ * Copyright (C) $$Year-Rel$$ The Jalview Authors
+ * 
+ * This file is part of Jalview.
+ * 
+ * Jalview is free software: you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License 
+ * as published by the Free Software Foundation, either version 3
+ * of the License, or (at your option) any later version.
+ *  
+ * Jalview is distributed in the hope that it will be useful, but 
+ * WITHOUT ANY WARRANTY; without even the implied warranty 
+ * of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
+ * PURPOSE.  See the GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with Jalview.  If not, see <http://www.gnu.org/licenses/>.
+ * The Jalview Authors are detailed in the 'AUTHORS' file.
+ */
 package jalview.renderer.seqfeatures;
 
 import static org.testng.Assert.assertEquals;
@@ -267,15 +287,20 @@ public class FeatureRendererTest
     fr.filterFeaturesForDisplay(features, null); // empty list, does nothing
 
     SequenceI seq = av.getAlignment().getSequenceAt(0);
-    SequenceFeature sf1 = new SequenceFeature("Cath", "", 6, 8, "group1");
+    SequenceFeature sf1 = new SequenceFeature("Cath", "", 6, 8, Float.NaN,
+            "group1");
     seq.addSequenceFeature(sf1);
-    SequenceFeature sf2 = new SequenceFeature("Cath", "", 5, 11, "group2");
+    SequenceFeature sf2 = new SequenceFeature("Cath", "", 5, 11, 2f,
+            "group2");
     seq.addSequenceFeature(sf2);
-    SequenceFeature sf3 = new SequenceFeature("Cath", "", 5, 11, "group3");
+    SequenceFeature sf3 = new SequenceFeature("Cath", "", 5, 11, 3f,
+            "group3");
     seq.addSequenceFeature(sf3);
-    SequenceFeature sf4 = new SequenceFeature("Cath", "", 6, 8, "group4");
+    SequenceFeature sf4 = new SequenceFeature("Cath", "", 6, 8, 4f,
+            "group4");
     seq.addSequenceFeature(sf4);
-    SequenceFeature sf5 = new SequenceFeature("Cath", "", 6, 9, "group4");
+    SequenceFeature sf5 = new SequenceFeature("Cath", "", 6, 9, 5f,
+            "group4");
     seq.addSequenceFeature(sf5);
 
     fr.findAllFeatures(true);
@@ -329,29 +354,36 @@ public class FeatureRendererTest
 
     /*
      * no filtering of co-located features with graduated colour scheme
+     * filterFeaturesForDisplay does _not_ check colour threshold
      * sf2 is removed as its group is hidden
      */
     features = seq.getSequenceFeatures();
     fr.filterFeaturesForDisplay(features, new FeatureColour(Color.black,
             Color.white, 0f, 1f));
     assertEquals(features.size(), 4);
-    assertTrue(features.contains(sf1));
-    assertTrue(features.contains(sf3));
-    assertTrue(features.contains(sf4));
-    assertTrue(features.contains(sf5));
+    assertFalse(features.contains(sf2));
 
     /*
-     * filtering of co-located features with colour by label
+     * co-located features with colour by label
+     * should not get filtered
      */
     features = seq.getSequenceFeatures();
     FeatureColour fc = new FeatureColour(Color.black);
     fc.setColourByLabel(true);
     fr.filterFeaturesForDisplay(features, fc);
-    assertEquals(features.size(), 3);
-    assertTrue(features.contains(sf1) || features.contains(sf4));
-    assertFalse(features.contains(sf1) && features.contains(sf4));
-    assertFalse(features.contains(sf2));
+    assertEquals(features.size(), 4);
+    assertTrue(features.contains(sf1));
     assertTrue(features.contains(sf3));
+    assertTrue(features.contains(sf4));
     assertTrue(features.contains(sf5));
+
+    /*
+     * no filtering if transparency is applied
+     */
+    fr.setTransparency(0.5f);
+    features = seq.getSequenceFeatures();
+    fr.setGroupVisibility("group2", true);
+    fr.filterFeaturesForDisplay(features, new FeatureColour(Color.RED));
+    assertEquals(features.size(), 5);
   }
 }