X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=test%2Fjalview%2Fschemes%2FUserColourSchemeTest.java;h=2a482eee116add5d4a39090a8521089fd9962117;hb=2b8c0785318a3528e1876e8e2dd48b7d831eae69;hp=645d5b8afcba31c5a6ae6ffb9be076d21087eed6;hpb=5f4e1e4c330b045e9c8bce28ee132a0fca3834d8;p=jalview.git diff --git a/test/jalview/schemes/UserColourSchemeTest.java b/test/jalview/schemes/UserColourSchemeTest.java index 645d5b8..2a482ee 100644 --- a/test/jalview/schemes/UserColourSchemeTest.java +++ b/test/jalview/schemes/UserColourSchemeTest.java @@ -21,8 +21,6 @@ package jalview.schemes; import static org.testng.AssertJUnit.assertEquals; -import static org.testng.AssertJUnit.assertNull; -import static org.testng.AssertJUnit.assertSame; import jalview.gui.JvOptionPane; @@ -42,40 +40,73 @@ public class UserColourSchemeTest } @Test(groups = "Functional") - public void testGetColourFromString() + public void testParseAppletParameter() { - /* - * by colour name - if known to AWT, and included in - * - * @see ColourSchemeProperty.getAWTColorFromName() - */ - assertSame(Color.RED, UserColourScheme.getColourFromString("red")); - assertSame(Color.RED, UserColourScheme.getColourFromString("Red")); - assertSame(Color.RED, UserColourScheme.getColourFromString(" RED ")); + UserColourScheme cs = new UserColourScheme("white"); + cs.parseAppletParameter("D,E=red; K,R,H=0022FF; c=10 , 20,30"); + assertEquals(Color.RED, cs.findColour('D')); + assertEquals(Color.RED, cs.findColour('d')); + assertEquals(Color.RED, cs.findColour('E')); + assertEquals(Color.RED, cs.findColour('e')); + Color c1 = new Color(0x0022ff); + assertEquals(c1, cs.findColour('K')); + assertEquals(c1, cs.findColour('R')); + assertEquals(c1, cs.findColour('h')); + Color c2 = new Color(10, 20, 30); + assertEquals(c2, cs.findColour('c')); + assertEquals(Color.WHITE, cs.findColour('G')); + assertEquals(Color.WHITE, cs.findColour('-')); + assertEquals(Color.WHITE, cs.findColour('.')); + assertEquals(Color.WHITE, cs.findColour(' ')); - /* - * by RGB hex code - */ - String hexColour = Integer.toHexString(Color.RED.getRGB() & 0xffffff); - assertEquals(Color.RED, UserColourScheme.getColourFromString(hexColour)); - // 'hex' prefixes _not_ wanted here - assertNull(UserColourScheme.getColourFromString("0x" + hexColour)); - assertNull(UserColourScheme.getColourFromString("#" + hexColour)); + cs = new UserColourScheme("white"); + cs.parseAppletParameter("D,E=red; K,R,H=0022FF; c=10 , 20,30;t=orange;lowercase=blue;s=pink"); + assertEquals(Color.RED, cs.findColour('D')); + assertEquals(Color.blue, cs.findColour('d')); + assertEquals(Color.RED, cs.findColour('E')); + assertEquals(Color.blue, cs.findColour('e')); + assertEquals(c1, cs.findColour('K')); + assertEquals(c1, cs.findColour('R')); + assertEquals(Color.blue, cs.findColour('h')); + assertEquals(c2, cs.findColour('c')); + // 'lowercase' sets all lower-case not already set to the given colour + assertEquals(Color.orange, cs.findColour('t')); + assertEquals(Color.blue, cs.findColour('k')); + assertEquals(Color.blue, cs.findColour('a')); + assertEquals(Color.pink, cs.findColour('s')); + } - /* - * by RGB triplet - */ - String rgb = String.format("%d,%d,%d", Color.red.getRed(), - Color.red.getGreen(), Color.red.getBlue()); - assertEquals(Color.RED, UserColourScheme.getColourFromString(rgb)); + @Test(groups = "Functional") + public void testToAppletParameter() + { + UserColourScheme cs = new UserColourScheme( + "E,D=red; K,R,H=0022FF; c=10 , 20,30"); + String param = cs.toAppletParameter(); + assertEquals("D,E=ff0000;H,K,R=0022ff;c=0a141e", param); + } + + /** + * Test for user colour scheme constructed with a colour per residue, + * including gap. Note this can currently be done from the User Defined + * Colours dialog, but not by parsing a colours parameter, as + * parseAppletParameter only recognises amino acid codes. + */ + @Test(groups = "Functional") + public void testConstructor_coloursArray() + { + Color g = Color.green; + Color y = Color.yellow; + Color b = Color.blue; + Color r = Color.red; + // colours for ARNDCQEGHILKMFPSTWYVBZ and gap + Color[] colours = new Color[] { g, y, b, r, g, y, r, b, g, y, r, b, g, + y, r, b, g, y, r, b, g, y, r, g }; + UserColourScheme cs = new UserColourScheme(colours); - /* - * odds and ends - */ - assertNull(UserColourScheme.getColourFromString(null)); - assertNull(UserColourScheme.getColourFromString("rubbish")); - assertEquals(Color.WHITE, UserColourScheme.getColourFromString("-1")); - assertNull(UserColourScheme.getColourFromString(String - .valueOf(Integer.MAX_VALUE))); + assertEquals(g, cs.findColour('A')); + assertEquals(b, cs.findColour('n')); + assertEquals(g, cs.findColour('-')); + assertEquals(g, cs.findColour('.')); + assertEquals(g, cs.findColour(' ')); } }