2 * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
3 * Copyright (C) $$Year-Rel$$ 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 jalview.schemes.Colour;
28 import java.awt.Color;
30 import org.testng.annotations.Test;
32 public class ColorUtilsTest
35 Color paleColour = new Color(97, 203, 111); // pale green
37 Color midColour = new Color(135, 57, 41); // mid red
39 Color darkColour = new Color(11, 30, 50); // dark blue
41 @Test(groups = { "Functional" })
42 public void testDarkerThan()
44 assertEquals("Wrong darker shade", new Color(32, 69, 37),
45 ColorUtils.darkerThan(paleColour));
46 assertEquals("Wrong darker shade", new Color(45, 18, 13),
47 ColorUtils.darkerThan(midColour));
48 assertEquals("Wrong darker shade", new Color(2, 9, 16),
49 ColorUtils.darkerThan(darkColour));
50 assertNull(ColorUtils.darkerThan(null));
53 @Test(groups = { "Functional" })
54 public void testBrighterThan()
56 assertEquals("Wrong brighter shade", new Color(255, 255, 255), // white
57 ColorUtils.brighterThan(paleColour));
58 assertEquals("Wrong brighter shade", new Color(255, 164, 117),
59 ColorUtils.brighterThan(midColour));
60 assertEquals("Wrong brighter shade", new Color(30, 85, 144),
61 ColorUtils.brighterThan(darkColour));
62 assertNull(ColorUtils.brighterThan(null));
66 * @see http://www.rtapo.com/notes/named_colors.html
68 @Test(groups = { "Functional" })
69 public void testToTkCode()
71 assertEquals("#fffafa", ColorUtils.toTkCode(new Colour(255, 250, 250))); // snow
72 assertEquals("#e6e6fa", ColorUtils.toTkCode(new Colour(230, 230, 250))); // lavender
73 assertEquals("#dda0dd", ColorUtils.toTkCode(new Colour(221, 160, 221))); // plum
74 assertEquals("#800080", ColorUtils.toTkCode(new Colour(128, 0, 128))); // purple
75 assertEquals("#00ff00", ColorUtils.toTkCode(new Colour(0, 255, 0))); // lime
78 @Test(groups = { "Functional" })
79 public void testGetGraduatedColour()
81 Color minColour = new Color(100, 100, 100);
82 Color maxColour = new Color(180, 200, 220);
85 * value half-way between min and max
87 Color col = ColorUtils.getGraduatedColour(20f, 10f, minColour, 30f,
89 assertEquals(140, col.getRed());
90 assertEquals(150, col.getGreen());
91 assertEquals(160, col.getBlue());
94 * value two-thirds of the way between min and max
97 .getGraduatedColour(30f, 10f, minColour, 40f, maxColour);
98 assertEquals(153, col.getRed());
99 // Color constructor rounds float value to nearest int
100 assertEquals(167, col.getGreen());
101 assertEquals(180, col.getBlue());
107 .getGraduatedColour(10f, 10f, minColour, 30f, maxColour);
108 assertEquals(minColour, col);
114 .getGraduatedColour(30f, 10f, minColour, 30f, maxColour);
115 assertEquals(maxColour, col);
120 col = ColorUtils.getGraduatedColour(0f, 10f, minColour, 30f, maxColour);
121 assertEquals(minColour, col);
127 .getGraduatedColour(40f, 10f, minColour, 30f,
129 assertEquals(maxColour, col);
135 .getGraduatedColour(40f, 10f, minColour, 10f, maxColour);
136 assertEquals(minColour, col);