2 * Jalview - A Sequence Alignment Editor and Viewer (Version 2.9.0b2)
3 * Copyright (C) 2015 The Jalview Authors
5 * This file is part of Jalview.
7 * Jalview is free software: you can redistribute it and/or
8 * modify it under the terms of the GNU General Public License
9 * as published by the Free Software Foundation, either version 3
10 * of the License, or (at your option) any later version.
12 * Jalview is distributed in the hope that it will be useful, but
13 * WITHOUT ANY WARRANTY; without even the implied warranty
14 * of MERCHANTABILITY or FITNESS FOR A PARTICULAR
15 * PURPOSE. See the GNU General Public License for more details.
17 * You should have received a copy of the GNU General Public License
18 * along with Jalview. If not, see <http://www.gnu.org/licenses/>.
19 * The Jalview Authors are detailed in the 'AUTHORS' file.
23 import static org.testng.AssertJUnit.assertEquals;
24 import static org.testng.AssertJUnit.assertNull;
26 import java.awt.Color;
28 import org.testng.annotations.Test;
30 public class ColorUtilsTest
33 Color paleColour = new Color(97, 203, 111); // pale green
35 Color midColour = new Color(135, 57, 41); // mid red
37 Color darkColour = new Color(11, 30, 50); // dark blue
39 @Test(groups = { "Functional" })
40 public void testDarkerThan()
42 assertEquals("Wrong darker shade", new Color(32, 69, 37),
43 ColorUtils.darkerThan(paleColour));
44 assertEquals("Wrong darker shade", new Color(45, 18, 13),
45 ColorUtils.darkerThan(midColour));
46 assertEquals("Wrong darker shade", new Color(2, 9, 16),
47 ColorUtils.darkerThan(darkColour));
48 assertNull(ColorUtils.darkerThan(null));
51 @Test(groups = { "Functional" })
52 public void testBrighterThan()
54 assertEquals("Wrong brighter shade", new Color(255, 255, 255), // white
55 ColorUtils.brighterThan(paleColour));
56 assertEquals("Wrong brighter shade", new Color(255, 164, 117),
57 ColorUtils.brighterThan(midColour));
58 assertEquals("Wrong brighter shade", new Color(30, 85, 144),
59 ColorUtils.brighterThan(darkColour));
60 assertNull(ColorUtils.brighterThan(null));
64 * @see http://www.rtapo.com/notes/named_colors.html
66 @Test(groups = { "Functional" })
67 public void testToTkCode()
69 assertEquals("#fffafa", ColorUtils.toTkCode(new Color(255, 250, 250))); // snow
70 assertEquals("#e6e6fa", ColorUtils.toTkCode(new Color(230, 230, 250))); // lavender
71 assertEquals("#dda0dd", ColorUtils.toTkCode(new Color(221, 160, 221))); // plum
72 assertEquals("#800080", ColorUtils.toTkCode(new Color(128, 0, 128))); // purple
73 assertEquals("#00ff00", ColorUtils.toTkCode(new Color(0, 255, 0))); // lime
76 @Test(groups = { "Functional" })
77 public void testGetGraduatedColour()
79 Color minColour = new Color(100, 100, 100);
80 Color maxColour = new Color(180, 200, 220);
83 * value half-way between min and max
85 Color col = ColorUtils.getGraduatedColour(20f, 10f, minColour, 30f,
87 assertEquals(140, col.getRed());
88 assertEquals(150, col.getGreen());
89 assertEquals(160, col.getBlue());
92 * value two-thirds of the way between min and max
95 .getGraduatedColour(30f, 10f, minColour, 40f, maxColour);
96 assertEquals(153, col.getRed());
97 // Color constructor rounds float value to nearest int
98 assertEquals(167, col.getGreen());
99 assertEquals(180, col.getBlue());
105 .getGraduatedColour(10f, 10f, minColour, 30f, maxColour);
106 assertEquals(minColour, col);
112 .getGraduatedColour(30f, 10f, minColour, 30f, maxColour);
113 assertEquals(maxColour, col);
118 col = ColorUtils.getGraduatedColour(0f, 10f, minColour, 30f, maxColour);
119 assertEquals(minColour, col);
125 .getGraduatedColour(40f, 10f, minColour, 30f, maxColour);
126 assertEquals(maxColour, col);
132 .getGraduatedColour(40f, 10f, minColour, 10f, maxColour);
133 assertEquals(minColour, col);