Merge branch 'bug/JAL-2791exportFilteredFeature' into merge/JAL-2791
[jalview.git] / test / jalview / schemes / FeatureColourTest.java
index a96caec..6ccce85 100644 (file)
@@ -712,4 +712,44 @@ public class FeatureColourTest
     Color expected = new Color(70, 120, 170);
     assertEquals(expected, fc.getColor(sf));
   }
+
+  @Test(groups = { "Functional" })
+  public void testIsOutwithThreshold()
+  {
+    FeatureColourI fc = new FeatureColour(Color.red);
+    SequenceFeature sf = new SequenceFeature("METAL", "desc", 10, 12, 1.2f, "grp");
+    assertFalse(fc.isOutwithThreshold(null));
+    assertFalse(fc.isOutwithThreshold(sf));
+
+    fc = new FeatureColour(Color.white, Color.black, Color.green, 0f, 10f);
+    assertFalse(fc.isOutwithThreshold(sf)); // no threshold
+
+    fc.setAboveThreshold(true);
+    fc.setThreshold(1f);
+    assertFalse(fc.isOutwithThreshold(sf)); // feature score 1.2 is above 1
+
+    fc.setThreshold(2f);
+    assertTrue(fc.isOutwithThreshold(sf)); // feature score 1.2 is not above 2
+
+    fc.setBelowThreshold(true);
+    assertFalse(fc.isOutwithThreshold(sf)); // feature score 1.2 is below 2
+
+    fc.setThreshold(1f);
+    assertTrue(fc.isOutwithThreshold(sf)); // feature score 1.2 is not below 1
+
+    /*
+     * with attribute value threshold
+     */
+    fc.setAttributeName("AC");
+    assertFalse(fc.isOutwithThreshold(sf)); // missing attribute AC is ignored
+
+    sf.setValue("AC", "-1");
+    assertFalse(fc.isOutwithThreshold(sf)); // value -1 is below 1
+
+    sf.setValue("AC", "1");
+    assertTrue(fc.isOutwithThreshold(sf)); // value 1 is not below 1
+
+    sf.setValue("AC", "junk");
+    assertFalse(fc.isOutwithThreshold(sf)); // bad value is ignored
+  }
 }