+/*
+ * 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;
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);
/*
* 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);
}
}