JAL-1360 Javadoc/JUnit
authorgmungoc <g.m.carstairs@dundee.ac.uk>
Thu, 18 Sep 2014 10:19:17 +0000 (11:19 +0100)
committergmungoc <g.m.carstairs@dundee.ac.uk>
Thu, 18 Sep 2014 10:19:17 +0000 (11:19 +0100)
src/jalview/util/ColorUtils.java
test/jalview/util/ColorUtilsTest.java [new file with mode: 0644]

index 0d726a2..fd76086 100644 (file)
@@ -59,29 +59,28 @@ public class ColorUtils
 
   }
 
-/**
-   * Returns a colour three shades darker. 
-   * 
-   * We use darker text to indicate unselected buttons, lighter text for selected. Note you can't 
-   * guarantee that darkerThan/brighterThan undo each other, as they may result in black/white.
+  /**
+   * Returns a colour three shades darker. Note you can't guarantee that
+   * brighterThan reverses this, as darkerThan may result in black.
    * 
    * @param col
    * @return
    */
-  public static Color darkerThan(Color col) {
-         return col.darker().darker().darker();
+  public static Color darkerThan(Color col)
+  {
+    return col == null ? null : col.darker().darker().darker();
   }
 
-/**
-   * Returns a colour three shades brighter. 
+  /**
+   * Returns a colour three shades brighter. Note you can't guarantee that
+   * darkerThan reverses this, as brighterThan may result in white.
    * 
-   * We use darker text to indicate unselected buttons, lighter text for selected. Note you can't 
-   * guarantee that darkerThan/brighterThan undo each other, as they may result in black/white.
    * @param col
    * @return
    */
-  public static Color brighterThan(Color col) {
-         return col.brighter().brighter().brighter();
+  public static Color brighterThan(Color col)
+  {
+    return col == null ? null : col.brighter().brighter().brighter();
   }
 
 }
diff --git a/test/jalview/util/ColorUtilsTest.java b/test/jalview/util/ColorUtilsTest.java
new file mode 100644 (file)
index 0000000..da2e6ca
--- /dev/null
@@ -0,0 +1,42 @@
+package jalview.util;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNull;
+
+import java.awt.Color;
+
+import org.junit.Test;
+
+public class ColorUtilsTest
+{
+
+  Color paleColour = new Color(97, 203, 111); // pale green
+
+  Color midColour = new Color(135, 57, 41); // mid red
+
+  Color darkColour = new Color(11, 30, 50); // dark blue
+
+  @Test
+  public void testDarkerThan()
+  {
+    assertEquals("Wrong darker shade", new Color(32, 69, 37),
+            ColorUtils.darkerThan(paleColour));
+    assertEquals("Wrong darker shade", new Color(45, 18, 13),
+            ColorUtils.darkerThan(midColour));
+    assertEquals("Wrong darker shade", new Color(2, 9, 16),
+            ColorUtils.darkerThan(darkColour));
+    assertNull(ColorUtils.darkerThan(null));
+  }
+
+  @Test
+  public void testBrighterThan()
+  {
+    assertEquals("Wrong brighter shade", new Color(255, 255, 255), // white
+            ColorUtils.brighterThan(paleColour));
+    assertEquals("Wrong brighter shade", new Color(255, 164, 117),
+            ColorUtils.brighterThan(midColour));
+    assertEquals("Wrong brighter shade", new Color(30, 85, 144),
+            ColorUtils.brighterThan(darkColour));
+    assertNull(ColorUtils.brighterThan(null));
+  }
+}