assertEquals(Color.yellow, fc1.getColour());
assertEquals(10f, fc1.getMin());
assertEquals(20f, fc1.getMax());
+
+ /*
+ * modify original attribute label and check that copy doesn't change
+ */
+ fc.setAttributeName("MAF", "AF");
+ assertArrayEquals(new String[] { "AF" }, fc1.getAttributeName());
+
}
@Test(groups = { "Functional" })
fc = new FeatureColour();
fc.setColourByLabel(true);
fc.setAttributeName("CLIN_SIG");
- assertEquals("domain\tattribute|CLIN_SIG", fc.toJalviewFormat("domain"));
-
+ assertEquals("domain\tattribute|CLIN_SIG",
+ fc.toJalviewFormat("domain"));
+
/*
* colour by label (autoscaled) (an odd state you can reach by selecting
* 'above threshold', then deselecting 'threshold is min/max' then 'colour
"domain\tscore|%s|%s|noValueMax|abso|12.0|25.0|none", greenHex,
redHex);
assertEquals(expected, fc.toJalviewFormat("domain"));
-
+
/*
* colour ranges over the actual score ranges (not min/max)
*/
fc.setThreshold(12.5f);
fc.setBelowThreshold(true);
expected = String.format(
- "domain\tscore|%s|%s|noValueMax|12.0|25.0|below|12.5",
- greenHex, redHex);
+ "domain\tscore|%s|%s|noValueMax|12.0|25.0|below|12.5", greenHex,
+ redHex);
assertEquals(expected, fc.toJalviewFormat("domain"));
/*
/*
* simple colour by hex code
*/
- fc = FeatureColour.parseJalviewFeatureColour(Format
- .getHexString(Color.RED));
+ fc = FeatureColour
+ .parseJalviewFeatureColour(Format.getHexString(Color.RED));
assertTrue(fc.isSimpleColour());
assertEquals(Color.RED, fc.getColour());
public void testIsOutwithThreshold()
{
FeatureColourI fc = new FeatureColour(Color.red);
- SequenceFeature sf = new SequenceFeature("METAL", "desc", 10, 12, 1.2f, "grp");
+ SequenceFeature sf = new SequenceFeature("METAL", "desc", 10, 12, 1.2f,
+ "grp");
assertFalse(fc.isOutwithThreshold(null));
assertFalse(fc.isOutwithThreshold(sf));
sf.setValue("AC", "junk");
assertFalse(fc.isOutwithThreshold(sf)); // bad value is ignored
}
+
+ /**
+ * Test description of feature colour suitable for a tooltip
+ */
+ @Test(groups = { "Functional" })
+ public void testGetDescription()
+ {
+ /*
+ * plain colour
+ */
+ FeatureColour fc = new FeatureColour(Color.RED);
+ assertEquals(
+ String.format("r=%d,g=%d,b=%d", Color.RED.getRed(),
+ Color.red.getGreen(), Color.red.getBlue()),
+ fc.getDescription());
+
+ /*
+ * colour by label (no threshold)
+ */
+ fc = new FeatureColour();
+ fc.setColourByLabel(true);
+ assertEquals("By Label", fc.getDescription());
+
+ /*
+ * colour by attribute text (no threshold)
+ */
+ fc = new FeatureColour();
+ fc.setColourByLabel(true);
+ fc.setAttributeName("CLIN_SIG");
+ assertEquals("By CLIN_SIG", fc.getDescription());
+
+ /*
+ * colour by label (above score threshold)
+ */
+ fc = new FeatureColour();
+ fc.setColourByLabel(true);
+ fc.setAutoScaled(false);
+ fc.setThreshold(12.5f);
+ fc.setAboveThreshold(true);
+ assertEquals("By Label (Score > 12.5)", fc.getDescription());
+
+ /*
+ * colour by label (below score threshold)
+ */
+ fc.setBelowThreshold(true);
+ assertEquals("By Label (Score < 12.5)", fc.getDescription());
+
+ /*
+ * colour by attributes text (below score threshold)
+ */
+ fc.setBelowThreshold(true);
+ fc.setAttributeName("CSQ", "Consequence");
+ assertEquals("By CSQ:Consequence (Score < 12.5)", fc.getDescription());
+
+ /*
+ * graduated colour by score, no threshold
+ */
+ fc = new FeatureColour(null, Color.GREEN, Color.RED, null, 12f, 25f);
+ assertEquals("By Score", fc.getDescription());
+
+ /*
+ * graduated colour by score, below threshold
+ */
+ fc.setThreshold(12.5f);
+ fc.setBelowThreshold(true);
+ assertEquals("By Score (< 12.5)", fc.getDescription());
+
+ /*
+ * graduated colour by score, above threshold
+ */
+ fc.setThreshold(12.5f);
+ fc.setAboveThreshold(true);
+ fc.setAutoScaled(false);
+ assertEquals("By Score (> 12.5)", fc.getDescription());
+
+ /*
+ * graduated colour by attribute, no threshold
+ */
+ fc.setAttributeName("CSQ", "AF");
+ fc.setAboveThreshold(false);
+ fc.setAutoScaled(false);
+ assertEquals("By CSQ:AF", fc.getDescription());
+
+ /*
+ * graduated colour by attribute, above threshold
+ */
+ fc.setAboveThreshold(true);
+ fc.setAutoScaled(false);
+ assertEquals("By CSQ:AF (> 12.5)", fc.getDescription());
+ }
}