Author: britter
Date: Tue Jan  6 19:56:08 2015
New Revision: 1649919

URL: http://svn.apache.org/r1649919
Log:
IMAGING-150: Implement equals and hashcode on color classes. Thanks to Stephan 
Koeninger.

Modified:
    commons/proper/imaging/trunk/src/changes/changes.xml
    
commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/color/ColorCieLab.java
    
commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/color/ColorCieLch.java
    
commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/color/ColorCieLuv.java
    
commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/color/ColorCmy.java
    
commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/color/ColorCmyk.java
    
commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/color/ColorHsl.java
    
commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/color/ColorHsv.java
    
commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/color/ColorHunterLab.java
    
commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/color/ColorXyz.java
    
commons/proper/imaging/trunk/src/test/java/org/apache/commons/imaging/color/ColorCieLabTest.java
    
commons/proper/imaging/trunk/src/test/java/org/apache/commons/imaging/color/ColorCieLchTest.java
    
commons/proper/imaging/trunk/src/test/java/org/apache/commons/imaging/color/ColorCieLuvTest.java
    
commons/proper/imaging/trunk/src/test/java/org/apache/commons/imaging/color/ColorCmyTest.java
    
commons/proper/imaging/trunk/src/test/java/org/apache/commons/imaging/color/ColorCmykTest.java
    
commons/proper/imaging/trunk/src/test/java/org/apache/commons/imaging/color/ColorHslTest.java
    
commons/proper/imaging/trunk/src/test/java/org/apache/commons/imaging/color/ColorHsvTest.java
    
commons/proper/imaging/trunk/src/test/java/org/apache/commons/imaging/color/ColorHunterLabTest.java
    
commons/proper/imaging/trunk/src/test/java/org/apache/commons/imaging/color/ColorXyzTest.java

Modified: commons/proper/imaging/trunk/src/changes/changes.xml
URL: 
http://svn.apache.org/viewvc/commons/proper/imaging/trunk/src/changes/changes.xml?rev=1649919&r1=1649918&r2=1649919&view=diff
==============================================================================
--- commons/proper/imaging/trunk/src/changes/changes.xml (original)
+++ commons/proper/imaging/trunk/src/changes/changes.xml Tue Jan  6 19:56:08 
2015
@@ -46,6 +46,9 @@ The <action> type attribute can be add,u
   <body>
 
     <release version="1.0" date="TBA" description="TBA">
+      <action issue="IMAGING-150" dev="britter" type="update" due-to="Stephan 
Koeninger">
+        Implement equals and hashcode on color classes
+      </action>
       <action issue="IMAGING-117" dev="sebb" type="fix">
         Classes should not expose mutable arrays
       </action>

Modified: 
commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/color/ColorCieLab.java
URL: 
http://svn.apache.org/viewvc/commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/color/ColorCieLab.java?rev=1649919&r1=1649918&r2=1649919&view=diff
==============================================================================
--- 
commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/color/ColorCieLab.java
 (original)
+++ 
commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/color/ColorCieLab.java
 Tue Jan  6 19:56:08 2015
@@ -32,4 +32,40 @@ public final class ColorCieLab {
     public String toString() {
         return "{L: " + L + ", a: " + a + ", b: " + b + "}";
     }
+
+    @Override
+    public boolean equals(Object o) {
+        if (this == o) {
+            return true;
+        }
+        if (o == null || getClass() != o.getClass()) {
+            return false;
+        }
+
+        ColorCieLab that = (ColorCieLab) o;
+        if (Double.compare(that.L, L) != 0) {
+            return false;
+        }
+        if (Double.compare(that.a, a) != 0) {
+            return false;
+        }
+        if (Double.compare(that.b, b) != 0) {
+            return false;
+        }
+
+        return true;
+    }
+
+    @Override
+    public int hashCode() {
+        int result;
+        long temp;
+        temp = Double.doubleToLongBits(L);
+        result = (int) (temp ^ (temp >>> 32));
+        temp = Double.doubleToLongBits(a);
+        result = 31 * result + (int) (temp ^ (temp >>> 32));
+        temp = Double.doubleToLongBits(b);
+        result = 31 * result + (int) (temp ^ (temp >>> 32));
+        return result;
+    }
 }

Modified: 
commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/color/ColorCieLch.java
URL: 
http://svn.apache.org/viewvc/commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/color/ColorCieLch.java?rev=1649919&r1=1649918&r2=1649919&view=diff
==============================================================================
--- 
commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/color/ColorCieLch.java
 (original)
+++ 
commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/color/ColorCieLch.java
 Tue Jan  6 19:56:08 2015
@@ -32,4 +32,40 @@ public final class ColorCieLch {
     public String toString() {
         return "{L: " + L + ", C: " + C + ", H: " + H + "}";
     }
+
+    @Override
+    public boolean equals(Object o) {
+        if (this == o) {
+            return true;
+        }
+        if (o == null || getClass() != o.getClass()) {
+            return false;
+        }
+
+        ColorCieLch that = (ColorCieLch) o;
+        if (Double.compare(that.C, C) != 0) {
+            return false;
+        }
+        if (Double.compare(that.H, H) != 0) {
+            return false;
+        }
+        if (Double.compare(that.L, L) != 0) {
+            return false;
+        }
+
+        return true;
+    }
+
+    @Override
+    public int hashCode() {
+        int result;
+        long temp;
+        temp = Double.doubleToLongBits(L);
+        result = (int) (temp ^ (temp >>> 32));
+        temp = Double.doubleToLongBits(C);
+        result = 31 * result + (int) (temp ^ (temp >>> 32));
+        temp = Double.doubleToLongBits(H);
+        result = 31 * result + (int) (temp ^ (temp >>> 32));
+        return result;
+    }
 }

Modified: 
commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/color/ColorCieLuv.java
URL: 
http://svn.apache.org/viewvc/commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/color/ColorCieLuv.java?rev=1649919&r1=1649918&r2=1649919&view=diff
==============================================================================
--- 
commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/color/ColorCieLuv.java
 (original)
+++ 
commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/color/ColorCieLuv.java
 Tue Jan  6 19:56:08 2015
@@ -32,4 +32,40 @@ public final class ColorCieLuv {
     public String toString() {
         return "{L: " + L + ", u: " + u + ", v: " + v + "}";
     }
+
+    @Override
+    public boolean equals(Object o) {
+        if (this == o) {
+            return true;
+        }
+        if (o == null || getClass() != o.getClass()) {
+            return false;
+        }
+
+        ColorCieLuv that = (ColorCieLuv) o;
+        if (Double.compare(that.L, L) != 0) {
+            return false;
+        }
+        if (Double.compare(that.u, u) != 0) {
+            return false;
+        }
+        if (Double.compare(that.v, v) != 0) {
+            return false;
+        }
+
+        return true;
+    }
+
+    @Override
+    public int hashCode() {
+        int result;
+        long temp;
+        temp = Double.doubleToLongBits(L);
+        result = (int) (temp ^ (temp >>> 32));
+        temp = Double.doubleToLongBits(u);
+        result = 31 * result + (int) (temp ^ (temp >>> 32));
+        temp = Double.doubleToLongBits(v);
+        result = 31 * result + (int) (temp ^ (temp >>> 32));
+        return result;
+    }
 }

Modified: 
commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/color/ColorCmy.java
URL: 
http://svn.apache.org/viewvc/commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/color/ColorCmy.java?rev=1649919&r1=1649918&r2=1649919&view=diff
==============================================================================
--- 
commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/color/ColorCmy.java
 (original)
+++ 
commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/color/ColorCmy.java
 Tue Jan  6 19:56:08 2015
@@ -32,4 +32,40 @@ public final class ColorCmy {
     public String toString() {
         return "{C: " + C + ", M: " + M + ", Y: " + Y + "}";
     }
+
+    @Override
+    public boolean equals(Object o) {
+        if (this == o) {
+            return true;
+        }
+        if (o == null || getClass() != o.getClass()) {
+            return false;
+        }
+
+        ColorCmy colorCmy = (ColorCmy) o;
+        if (Double.compare(colorCmy.C, C) != 0) {
+            return false;
+        }
+        if (Double.compare(colorCmy.M, M) != 0) {
+            return false;
+        }
+        if (Double.compare(colorCmy.Y, Y) != 0) {
+            return false;
+        }
+
+        return true;
+    }
+
+    @Override
+    public int hashCode() {
+        int result;
+        long temp;
+        temp = Double.doubleToLongBits(C);
+        result = (int) (temp ^ (temp >>> 32));
+        temp = Double.doubleToLongBits(M);
+        result = 31 * result + (int) (temp ^ (temp >>> 32));
+        temp = Double.doubleToLongBits(Y);
+        result = 31 * result + (int) (temp ^ (temp >>> 32));
+        return result;
+    }
 }

Modified: 
commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/color/ColorCmyk.java
URL: 
http://svn.apache.org/viewvc/commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/color/ColorCmyk.java?rev=1649919&r1=1649918&r2=1649919&view=diff
==============================================================================
--- 
commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/color/ColorCmyk.java
 (original)
+++ 
commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/color/ColorCmyk.java
 Tue Jan  6 19:56:08 2015
@@ -34,4 +34,43 @@ public final class ColorCmyk {
     public String toString() {
         return "{C: " + C + ", M: " + M + ", Y: " + Y + ", K: " + K + "}";
     }
+
+    @Override
+    public boolean equals(Object o) {
+        if (this == o) {
+            return true;
+        }
+        if (o == null || getClass() != o.getClass()) return false;
+
+        ColorCmyk colorCmyk = (ColorCmyk) o;
+        if (Double.compare(colorCmyk.C, C) != 0) {
+            return false;
+        }
+        if (Double.compare(colorCmyk.K, K) != 0) {
+            return false;
+        }
+        if (Double.compare(colorCmyk.M, M) != 0) {
+            return false;
+        }
+        if (Double.compare(colorCmyk.Y, Y) != 0) {
+            return false;
+        }
+
+        return true;
+    }
+
+    @Override
+    public int hashCode() {
+        int result;
+        long temp;
+        temp = Double.doubleToLongBits(C);
+        result = (int) (temp ^ (temp >>> 32));
+        temp = Double.doubleToLongBits(M);
+        result = 31 * result + (int) (temp ^ (temp >>> 32));
+        temp = Double.doubleToLongBits(Y);
+        result = 31 * result + (int) (temp ^ (temp >>> 32));
+        temp = Double.doubleToLongBits(K);
+        result = 31 * result + (int) (temp ^ (temp >>> 32));
+        return result;
+    }
 }

Modified: 
commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/color/ColorHsl.java
URL: 
http://svn.apache.org/viewvc/commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/color/ColorHsl.java?rev=1649919&r1=1649918&r2=1649919&view=diff
==============================================================================
--- 
commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/color/ColorHsl.java
 (original)
+++ 
commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/color/ColorHsl.java
 Tue Jan  6 19:56:08 2015
@@ -32,4 +32,40 @@ public final class ColorHsl {
     public String toString() {
         return "{H: " + H + ", S: " + S + ", L: " + L + "}";
     }
+
+    @Override
+    public boolean equals(Object o) {
+        if (this == o) {
+            return true;
+        }
+        if (o == null || getClass() != o.getClass()) {
+            return false;
+        }
+
+        ColorHsl colorHsl = (ColorHsl) o;
+        if (Double.compare(colorHsl.H, H) != 0) {
+            return false;
+        }
+        if (Double.compare(colorHsl.L, L) != 0) {
+            return false;
+        }
+        if (Double.compare(colorHsl.S, S) != 0) {
+            return false;
+        }
+
+        return true;
+    }
+
+    @Override
+    public int hashCode() {
+        int result;
+        long temp;
+        temp = Double.doubleToLongBits(H);
+        result = (int) (temp ^ (temp >>> 32));
+        temp = Double.doubleToLongBits(S);
+        result = 31 * result + (int) (temp ^ (temp >>> 32));
+        temp = Double.doubleToLongBits(L);
+        result = 31 * result + (int) (temp ^ (temp >>> 32));
+        return result;
+    }
 }

Modified: 
commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/color/ColorHsv.java
URL: 
http://svn.apache.org/viewvc/commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/color/ColorHsv.java?rev=1649919&r1=1649918&r2=1649919&view=diff
==============================================================================
--- 
commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/color/ColorHsv.java
 (original)
+++ 
commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/color/ColorHsv.java
 Tue Jan  6 19:56:08 2015
@@ -32,4 +32,40 @@ public final class ColorHsv {
     public String toString() {
         return "{H: " + H + ", S: " + S + ", V: " + V + "}";
     }
+
+    @Override
+    public boolean equals(Object o) {
+        if (this == o) {
+            return true;
+        }
+        if (o == null || getClass() != o.getClass()) {
+            return false;
+        }
+
+        ColorHsv colorHsv = (ColorHsv) o;
+        if (Double.compare(colorHsv.H, H) != 0) {
+            return false;
+        }
+        if (Double.compare(colorHsv.S, S) != 0) {
+            return false;
+        }
+        if (Double.compare(colorHsv.V, V) != 0) {
+            return false;
+        }
+
+        return true;
+    }
+
+    @Override
+    public int hashCode() {
+        int result;
+        long temp;
+        temp = Double.doubleToLongBits(H);
+        result = (int) (temp ^ (temp >>> 32));
+        temp = Double.doubleToLongBits(S);
+        result = 31 * result + (int) (temp ^ (temp >>> 32));
+        temp = Double.doubleToLongBits(V);
+        result = 31 * result + (int) (temp ^ (temp >>> 32));
+        return result;
+    }
 }

Modified: 
commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/color/ColorHunterLab.java
URL: 
http://svn.apache.org/viewvc/commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/color/ColorHunterLab.java?rev=1649919&r1=1649918&r2=1649919&view=diff
==============================================================================
--- 
commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/color/ColorHunterLab.java
 (original)
+++ 
commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/color/ColorHunterLab.java
 Tue Jan  6 19:56:08 2015
@@ -32,4 +32,40 @@ public final class ColorHunterLab {
     public String toString() {
         return "{L: " + L + ", a: " + a + ", b: " + b + "}";
     }
+
+    @Override
+    public boolean equals(Object o) {
+        if (this == o) {
+            return true;
+        }
+        if (o == null || getClass() != o.getClass()) {
+            return false;
+        }
+
+        ColorHunterLab that = (ColorHunterLab) o;
+        if (Double.compare(that.L, L) != 0) {
+            return false;
+        }
+        if (Double.compare(that.a, a) != 0) {
+            return false;
+        }
+        if (Double.compare(that.b, b) != 0) {
+            return false;
+        }
+
+        return true;
+    }
+
+    @Override
+    public int hashCode() {
+        int result;
+        long temp;
+        temp = Double.doubleToLongBits(L);
+        result = (int) (temp ^ (temp >>> 32));
+        temp = Double.doubleToLongBits(a);
+        result = 31 * result + (int) (temp ^ (temp >>> 32));
+        temp = Double.doubleToLongBits(b);
+        result = 31 * result + (int) (temp ^ (temp >>> 32));
+        return result;
+    }
 }

Modified: 
commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/color/ColorXyz.java
URL: 
http://svn.apache.org/viewvc/commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/color/ColorXyz.java?rev=1649919&r1=1649918&r2=1649919&view=diff
==============================================================================
--- 
commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/color/ColorXyz.java
 (original)
+++ 
commons/proper/imaging/trunk/src/main/java/org/apache/commons/imaging/color/ColorXyz.java
 Tue Jan  6 19:56:08 2015
@@ -32,4 +32,40 @@ public final class ColorXyz {
     public String toString() {
         return "{X: " + X + ", Y: " + Y + ", Z: " + Z + "}";
     }
+
+    @Override
+    public boolean equals(Object o) {
+        if (this == o) {
+            return true;
+        }
+        if (o == null || getClass() != o.getClass()) {
+            return false;
+        }
+
+        ColorXyz colorXyz = (ColorXyz) o;
+        if (Double.compare(colorXyz.X, X) != 0) {
+            return false;
+        }
+        if (Double.compare(colorXyz.Y, Y) != 0) {
+            return false;
+        }
+        if (Double.compare(colorXyz.Z, Z) != 0) {
+            return false;
+        }
+
+        return true;
+    }
+
+    @Override
+    public int hashCode() {
+        int result;
+        long temp;
+        temp = Double.doubleToLongBits(X);
+        result = (int) (temp ^ (temp >>> 32));
+        temp = Double.doubleToLongBits(Y);
+        result = 31 * result + (int) (temp ^ (temp >>> 32));
+        temp = Double.doubleToLongBits(Z);
+        result = 31 * result + (int) (temp ^ (temp >>> 32));
+        return result;
+    }
 }

Modified: 
commons/proper/imaging/trunk/src/test/java/org/apache/commons/imaging/color/ColorCieLabTest.java
URL: 
http://svn.apache.org/viewvc/commons/proper/imaging/trunk/src/test/java/org/apache/commons/imaging/color/ColorCieLabTest.java?rev=1649919&r1=1649918&r2=1649919&view=diff
==============================================================================
--- 
commons/proper/imaging/trunk/src/test/java/org/apache/commons/imaging/color/ColorCieLabTest.java
 (original)
+++ 
commons/proper/imaging/trunk/src/test/java/org/apache/commons/imaging/color/ColorCieLabTest.java
 Tue Jan  6 19:56:08 2015
@@ -16,18 +16,23 @@
  */
 package org.apache.commons.imaging.color;
 
-import static org.junit.Assert.assertEquals;
-
 import org.junit.Before;
 import org.junit.Test;
 
+import static org.hamcrest.CoreMatchers.is;
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
 public class ColorCieLabTest {
 
     private ColorCieLab color;
+    private ColorCieLab colorCopy;
 
     @Before
     public void setUp() throws Exception {
         color = new ColorCieLab(1.0, 2.0, 3.0);
+        colorCopy = new ColorCieLab(1.0, 2.0, 3.0);
     }
 
     @Test
@@ -49,4 +54,10 @@ public class ColorCieLabTest {
     public void testToString() throws Exception {
         assertEquals("{L: 1.0, a: 2.0, b: 3.0}", color.toString());
     }
+
+    @Test
+    public void testHashCodeAndEquals() throws Exception {
+        assertTrue(color.equals(colorCopy) && colorCopy.equals(color));
+        assertThat(color.hashCode(), is(colorCopy.hashCode()));
+    }
 }

Modified: 
commons/proper/imaging/trunk/src/test/java/org/apache/commons/imaging/color/ColorCieLchTest.java
URL: 
http://svn.apache.org/viewvc/commons/proper/imaging/trunk/src/test/java/org/apache/commons/imaging/color/ColorCieLchTest.java?rev=1649919&r1=1649918&r2=1649919&view=diff
==============================================================================
--- 
commons/proper/imaging/trunk/src/test/java/org/apache/commons/imaging/color/ColorCieLchTest.java
 (original)
+++ 
commons/proper/imaging/trunk/src/test/java/org/apache/commons/imaging/color/ColorCieLchTest.java
 Tue Jan  6 19:56:08 2015
@@ -16,7 +16,10 @@
  */
 package org.apache.commons.imaging.color;
 
+import static org.hamcrest.CoreMatchers.is;
+import static org.hamcrest.MatcherAssert.assertThat;
 import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
 
 import org.junit.Before;
 import org.junit.Test;
@@ -24,10 +27,12 @@ import org.junit.Test;
 public class ColorCieLchTest {
 
     private ColorCieLch color;
+    private ColorCieLch colorCopy;
 
     @Before
     public void setUp() throws Exception {
         color = new ColorCieLch(1.0, 2.0, 3.0);
+        colorCopy = new ColorCieLch(1.0, 2.0, 3.0);
     }
 
     @Test
@@ -49,4 +54,10 @@ public class ColorCieLchTest {
     public void testToString() throws Exception {
         assertEquals("{L: 1.0, C: 2.0, H: 3.0}", color.toString());
     }
+
+    @Test
+    public void testHashCodeAndEquals() throws Exception {
+        assertTrue(color.equals(colorCopy) && colorCopy.equals(color));
+        assertThat(color.hashCode(), is(colorCopy.hashCode()));
+    }
 }

Modified: 
commons/proper/imaging/trunk/src/test/java/org/apache/commons/imaging/color/ColorCieLuvTest.java
URL: 
http://svn.apache.org/viewvc/commons/proper/imaging/trunk/src/test/java/org/apache/commons/imaging/color/ColorCieLuvTest.java?rev=1649919&r1=1649918&r2=1649919&view=diff
==============================================================================
--- 
commons/proper/imaging/trunk/src/test/java/org/apache/commons/imaging/color/ColorCieLuvTest.java
 (original)
+++ 
commons/proper/imaging/trunk/src/test/java/org/apache/commons/imaging/color/ColorCieLuvTest.java
 Tue Jan  6 19:56:08 2015
@@ -16,7 +16,10 @@
  */
 package org.apache.commons.imaging.color;
 
+import static org.hamcrest.CoreMatchers.is;
+import static org.hamcrest.MatcherAssert.assertThat;
 import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
 
 import org.junit.Before;
 import org.junit.Test;
@@ -24,10 +27,12 @@ import org.junit.Test;
 public class ColorCieLuvTest {
 
     private ColorCieLuv color;
+    private ColorCieLuv colorCopy;
 
     @Before
     public void setUp() throws Exception {
         color = new ColorCieLuv(1.0, 2.0, 3.0);
+        colorCopy = new ColorCieLuv(1.0, 2.0, 3.0);
     }
 
     @Test
@@ -49,4 +54,10 @@ public class ColorCieLuvTest {
     public void testToString() throws Exception {
         assertEquals("{L: 1.0, u: 2.0, v: 3.0}", color.toString());
     }
+
+    @Test
+    public void testHashCodeAndEquals() throws Exception {
+        assertTrue(color.equals(colorCopy) && colorCopy.equals(color));
+        assertThat(color.hashCode(), is(colorCopy.hashCode()));
+    }
 }

Modified: 
commons/proper/imaging/trunk/src/test/java/org/apache/commons/imaging/color/ColorCmyTest.java
URL: 
http://svn.apache.org/viewvc/commons/proper/imaging/trunk/src/test/java/org/apache/commons/imaging/color/ColorCmyTest.java?rev=1649919&r1=1649918&r2=1649919&view=diff
==============================================================================
--- 
commons/proper/imaging/trunk/src/test/java/org/apache/commons/imaging/color/ColorCmyTest.java
 (original)
+++ 
commons/proper/imaging/trunk/src/test/java/org/apache/commons/imaging/color/ColorCmyTest.java
 Tue Jan  6 19:56:08 2015
@@ -16,7 +16,10 @@
  */
 package org.apache.commons.imaging.color;
 
+import static org.hamcrest.CoreMatchers.is;
+import static org.hamcrest.MatcherAssert.assertThat;
 import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
 
 import org.junit.Before;
 import org.junit.Test;
@@ -24,10 +27,12 @@ import org.junit.Test;
 public class ColorCmyTest {
 
     private ColorCmy color;
+    private ColorCmy colorCopy;
 
     @Before
     public void setUp() throws Exception {
         color = new ColorCmy(1.0, 2.0, 3.0);
+        colorCopy = new ColorCmy(1.0, 2.0, 3.0);
     }
 
     @Test
@@ -49,4 +54,10 @@ public class ColorCmyTest {
     public void testToString() throws Exception {
         assertEquals("{C: 1.0, M: 2.0, Y: 3.0}", color.toString());
     }
+
+    @Test
+    public void testHashCodeAndEquals() throws Exception {
+        assertTrue(color.equals(colorCopy) && colorCopy.equals(color));
+        assertThat(color.hashCode(), is(colorCopy.hashCode()));
+    }
 }

Modified: 
commons/proper/imaging/trunk/src/test/java/org/apache/commons/imaging/color/ColorCmykTest.java
URL: 
http://svn.apache.org/viewvc/commons/proper/imaging/trunk/src/test/java/org/apache/commons/imaging/color/ColorCmykTest.java?rev=1649919&r1=1649918&r2=1649919&view=diff
==============================================================================
--- 
commons/proper/imaging/trunk/src/test/java/org/apache/commons/imaging/color/ColorCmykTest.java
 (original)
+++ 
commons/proper/imaging/trunk/src/test/java/org/apache/commons/imaging/color/ColorCmykTest.java
 Tue Jan  6 19:56:08 2015
@@ -16,7 +16,10 @@
  */
 package org.apache.commons.imaging.color;
 
+import static org.hamcrest.CoreMatchers.is;
+import static org.hamcrest.MatcherAssert.assertThat;
 import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
 
 import org.junit.Before;
 import org.junit.Test;
@@ -24,10 +27,12 @@ import org.junit.Test;
 public class ColorCmykTest {
 
     private ColorCmyk color;
+    private ColorCmyk colorCopy;
 
     @Before
     public void setUp() throws Exception {
         color = new ColorCmyk(1.0, 2.0, 3.0, 4.0);
+        colorCopy = new ColorCmyk(1.0, 2.0, 3.0, 4.0);
     }
 
     @Test
@@ -54,4 +59,10 @@ public class ColorCmykTest {
     public void testToString() throws Exception {
         assertEquals("{C: 1.0, M: 2.0, Y: 3.0, K: 4.0}", color.toString());
     }
+
+    @Test
+    public void testHashCodeAndEquals() throws Exception {
+        assertTrue(color.equals(colorCopy) && colorCopy.equals(color));
+        assertThat(color.hashCode(), is(colorCopy.hashCode()));
+    }
 }

Modified: 
commons/proper/imaging/trunk/src/test/java/org/apache/commons/imaging/color/ColorHslTest.java
URL: 
http://svn.apache.org/viewvc/commons/proper/imaging/trunk/src/test/java/org/apache/commons/imaging/color/ColorHslTest.java?rev=1649919&r1=1649918&r2=1649919&view=diff
==============================================================================
--- 
commons/proper/imaging/trunk/src/test/java/org/apache/commons/imaging/color/ColorHslTest.java
 (original)
+++ 
commons/proper/imaging/trunk/src/test/java/org/apache/commons/imaging/color/ColorHslTest.java
 Tue Jan  6 19:56:08 2015
@@ -16,7 +16,10 @@
  */
 package org.apache.commons.imaging.color;
 
+import static org.hamcrest.CoreMatchers.is;
+import static org.hamcrest.MatcherAssert.assertThat;
 import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
 
 import org.junit.Before;
 import org.junit.Test;
@@ -24,10 +27,12 @@ import org.junit.Test;
 public class ColorHslTest {
 
     private ColorHsl color;
+    private ColorHsl colorCopy;
 
     @Before
     public void setUp() throws Exception {
         color = new ColorHsl(1.0, 2.0, 3.0);
+        colorCopy = new ColorHsl(1.0, 2.0, 3.0);
     }
 
     @Test
@@ -49,4 +54,10 @@ public class ColorHslTest {
     public void testToString() throws Exception {
         assertEquals("{H: 1.0, S: 2.0, L: 3.0}", color.toString());
     }
+
+    @Test
+    public void testHashCodeAndEquals() throws Exception {
+        assertTrue(color.equals(colorCopy) && colorCopy.equals(color));
+        assertThat(color.hashCode(), is(colorCopy.hashCode()));
+    }
 }

Modified: 
commons/proper/imaging/trunk/src/test/java/org/apache/commons/imaging/color/ColorHsvTest.java
URL: 
http://svn.apache.org/viewvc/commons/proper/imaging/trunk/src/test/java/org/apache/commons/imaging/color/ColorHsvTest.java?rev=1649919&r1=1649918&r2=1649919&view=diff
==============================================================================
--- 
commons/proper/imaging/trunk/src/test/java/org/apache/commons/imaging/color/ColorHsvTest.java
 (original)
+++ 
commons/proper/imaging/trunk/src/test/java/org/apache/commons/imaging/color/ColorHsvTest.java
 Tue Jan  6 19:56:08 2015
@@ -16,7 +16,10 @@
  */
 package org.apache.commons.imaging.color;
 
+import static org.hamcrest.CoreMatchers.is;
+import static org.hamcrest.MatcherAssert.assertThat;
 import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
 
 import org.junit.Before;
 import org.junit.Test;
@@ -24,10 +27,12 @@ import org.junit.Test;
 public class ColorHsvTest {
 
     private ColorHsv color;
+    private ColorHsv colorCopy;
 
     @Before
     public void setUp() throws Exception {
         color = new ColorHsv(1.0, 2.0, 3.0);
+        colorCopy = new ColorHsv(1.0, 2.0, 3.0);
     }
 
     @Test
@@ -49,4 +54,10 @@ public class ColorHsvTest {
     public void testToString() throws Exception {
         assertEquals("{H: 1.0, S: 2.0, V: 3.0}", color.toString());
     }
+
+    @Test
+    public void testHashCodeAndEquals() throws Exception {
+        assertTrue(color.equals(colorCopy) && colorCopy.equals(color));
+        assertThat(color.hashCode(), is(colorCopy.hashCode()));
+    }
 }

Modified: 
commons/proper/imaging/trunk/src/test/java/org/apache/commons/imaging/color/ColorHunterLabTest.java
URL: 
http://svn.apache.org/viewvc/commons/proper/imaging/trunk/src/test/java/org/apache/commons/imaging/color/ColorHunterLabTest.java?rev=1649919&r1=1649918&r2=1649919&view=diff
==============================================================================
--- 
commons/proper/imaging/trunk/src/test/java/org/apache/commons/imaging/color/ColorHunterLabTest.java
 (original)
+++ 
commons/proper/imaging/trunk/src/test/java/org/apache/commons/imaging/color/ColorHunterLabTest.java
 Tue Jan  6 19:56:08 2015
@@ -16,7 +16,10 @@
  */
 package org.apache.commons.imaging.color;
 
+import static org.hamcrest.CoreMatchers.is;
+import static org.hamcrest.MatcherAssert.assertThat;
 import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
 
 import org.junit.Before;
 import org.junit.Test;
@@ -24,10 +27,12 @@ import org.junit.Test;
 public class ColorHunterLabTest {
 
     private ColorHunterLab color;
+    private ColorHunterLab colorCopy;
 
     @Before
     public void setUp() throws Exception {
         color = new ColorHunterLab(1.0, 2.0, 3.0);
+        colorCopy = new ColorHunterLab(1.0, 2.0, 3.0);
     }
 
     @Test
@@ -49,4 +54,10 @@ public class ColorHunterLabTest {
     public void testToString() throws Exception {
         assertEquals("{L: 1.0, a: 2.0, b: 3.0}", color.toString());
     }
+
+    @Test
+    public void testHashCodeAndEquals() throws Exception {
+        assertTrue(color.equals(colorCopy) && colorCopy.equals(color));
+        assertThat(color.hashCode(), is(colorCopy.hashCode()));
+    }
 }

Modified: 
commons/proper/imaging/trunk/src/test/java/org/apache/commons/imaging/color/ColorXyzTest.java
URL: 
http://svn.apache.org/viewvc/commons/proper/imaging/trunk/src/test/java/org/apache/commons/imaging/color/ColorXyzTest.java?rev=1649919&r1=1649918&r2=1649919&view=diff
==============================================================================
--- 
commons/proper/imaging/trunk/src/test/java/org/apache/commons/imaging/color/ColorXyzTest.java
 (original)
+++ 
commons/proper/imaging/trunk/src/test/java/org/apache/commons/imaging/color/ColorXyzTest.java
 Tue Jan  6 19:56:08 2015
@@ -16,7 +16,10 @@
  */
 package org.apache.commons.imaging.color;
 
+import static org.hamcrest.CoreMatchers.is;
+import static org.hamcrest.MatcherAssert.assertThat;
 import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
 
 import org.junit.Before;
 import org.junit.Test;
@@ -24,10 +27,12 @@ import org.junit.Test;
 public class ColorXyzTest {
 
     private ColorXyz color;
+    private ColorXyz colorCopy;
 
     @Before
     public void setUp() throws Exception {
         color = new ColorXyz(1.0, 2.0, 3.0);
+        colorCopy = new ColorXyz(1.0, 2.0, 3.0);
     }
 
     @Test
@@ -49,4 +54,10 @@ public class ColorXyzTest {
     public void testToString() throws Exception {
         assertEquals("{X: 1.0, Y: 2.0, Z: 3.0}", color.toString());
     }
+
+    @Test
+    public void testHashCodeAndEquals() throws Exception {
+        assertTrue(color.equals(colorCopy) && colorCopy.equals(color));
+        assertThat(color.hashCode(), is(colorCopy.hashCode()));
+    }
 }


Reply via email to