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())); + } }