Author: bayard
Date: Tue Oct 24 14:02:56 2006
New Revision: 467482
URL: http://svn.apache.org/viewvc?view=rev&rev=467482
Log:
Adding equals(int[], int[]) style methods to NumberUtils as requested by Paul
Benedict in LANG-238
Modified:
jakarta/commons/proper/lang/trunk/src/java/org/apache/commons/lang/math/NumberUtils.java
jakarta/commons/proper/lang/trunk/src/test/org/apache/commons/lang/math/NumberUtilsTest.java
Modified:
jakarta/commons/proper/lang/trunk/src/java/org/apache/commons/lang/math/NumberUtils.java
URL:
http://svn.apache.org/viewvc/jakarta/commons/proper/lang/trunk/src/java/org/apache/commons/lang/math/NumberUtils.java?view=diff&rev=467482&r1=467481&r2=467482
==============================================================================
---
jakarta/commons/proper/lang/trunk/src/java/org/apache/commons/lang/math/NumberUtils.java
(original)
+++
jakarta/commons/proper/lang/trunk/src/java/org/apache/commons/lang/math/NumberUtils.java
Tue Oct 24 14:02:56 2006
@@ -668,6 +668,170 @@
return new BigDecimal(str);
}
+ // Equals in array
+ //--------------------------------------------------------------------
+ /**
+ * <p>Whether the contents of two byte[] arrays are equal.</p>
+ *
+ * @param array1 first array to compare
+ * @param array2 second array to compare
+ * @return whether the two arrays are equal
+ */
+ public static boolean equals(byte[] array1, byte[] array2) {
+ if (array1 == array2) {
+ return true;
+ }
+ if (array1 == null || array2 == null) {
+ return false;
+ }
+ if (array1.length != array2.length) {
+ return false;
+ }
+
+ for (int i=0; i<array1.length; i++) {
+ if (array1[i] != array2[i]) {
+ return false;
+ }
+ }
+
+ return true;
+ }
+
+ /**
+ * <p>Whether the contents of two short[] arrays are equal.</p>
+ *
+ * @param array1 first array to compare
+ * @param array2 second array to compare
+ * @return whether the two arrays are equal
+ */
+ public static boolean equals(short[] array1, short[] array2) {
+ if (array1 == array2) {
+ return true;
+ }
+ if (array1 == null || array2 == null) {
+ return false;
+ }
+ if (array1.length != array2.length) {
+ return false;
+ }
+
+ for (int i=0; i<array1.length; i++) {
+ if (array1[i] != array2[i]) {
+ return false;
+ }
+ }
+
+ return true;
+ }
+
+ /**
+ * <p>Whether the contents of two int[] arrays are equal.</p>
+ *
+ * @param array1 first array to compare
+ * @param array2 second array to compare
+ * @return whether the two arrays are equal
+ */
+ public static boolean equals(int[] array1, int[] array2) {
+ if (array1 == array2) {
+ return true;
+ }
+ if (array1 == null || array2 == null) {
+ return false;
+ }
+ if (array1.length != array2.length) {
+ return false;
+ }
+
+ for (int i=0; i<array1.length; i++) {
+ if (array1[i] != array2[i]) {
+ return false;
+ }
+ }
+
+ return true;
+ }
+
+ /**
+ * <p>Whether the contents of two long[] arrays are equal.</p>
+ *
+ * @param array1 first array to compare
+ * @param array2 second array to compare
+ * @return whether the two arrays are equal
+ */
+ public static boolean equals(long[] array1, long[] array2) {
+ if (array1 == array2) {
+ return true;
+ }
+ if (array1 == null || array2 == null) {
+ return false;
+ }
+ if (array1.length != array2.length) {
+ return false;
+ }
+
+ for (int i=0; i<array1.length; i++) {
+ if (array1[i] != array2[i]) {
+ return false;
+ }
+ }
+
+ return true;
+ }
+
+ /**
+ * <p>Whether the contents of two float[] arrays are equal.</p>
+ *
+ * @param array1 first array to compare
+ * @param array2 second array to compare
+ * @return whether the two arrays are equal
+ */
+ public static boolean equals(float[] array1, float[] array2) {
+ if (array1 == array2) {
+ return true;
+ }
+ if (array1 == null || array2 == null) {
+ return false;
+ }
+ if (array1.length != array2.length) {
+ return false;
+ }
+
+ for (int i=0; i<array1.length; i++) {
+ if (compare(array1[i], array2[i]) != 0) {
+ return false;
+ }
+ }
+
+ return true;
+ }
+
+ /**
+ * <p>Whether the contents of two double[] arrays are equal.</p>
+ *
+ * @param array1 first array to compare
+ * @param array2 second array to compare
+ * @return whether the two arrays are equal
+ */
+ public static boolean equals(double[] array1, double[] array2) {
+ if (array1 == array2) {
+ return true;
+ }
+ if (array1 == null || array2 == null) {
+ return false;
+ }
+ if (array1.length != array2.length) {
+ return false;
+ }
+
+ for (int i=0; i<array1.length; i++) {
+ if (compare(array1[i], array2[i]) != 0) {
+ return false;
+ }
+ }
+
+ return true;
+ }
+
// Min in array
//--------------------------------------------------------------------
/**
Modified:
jakarta/commons/proper/lang/trunk/src/test/org/apache/commons/lang/math/NumberUtilsTest.java
URL:
http://svn.apache.org/viewvc/jakarta/commons/proper/lang/trunk/src/test/org/apache/commons/lang/math/NumberUtilsTest.java?view=diff&rev=467482&r1=467481&r2=467482
==============================================================================
---
jakarta/commons/proper/lang/trunk/src/test/org/apache/commons/lang/math/NumberUtilsTest.java
(original)
+++
jakarta/commons/proper/lang/trunk/src/test/org/apache/commons/lang/math/NumberUtilsTest.java
Tue Oct 24 14:02:56 2006
@@ -318,6 +318,194 @@
}
}
+ // equals tests
+ // ----------------------------------------------------------------------
+ public void testEqualsByte() {
+ byte[] array1 = null;
+ byte[] array2 = null;
+ assertEquals( true, NumberUtils.equals(array1, array2) );
+ assertEquals( true, NumberUtils.equals(array2, array1) );
+
+ array1 = new byte[] { 50, 20 }; // array2 still null
+ assertEquals( false, NumberUtils.equals(array1, array2) );
+ assertEquals( false, NumberUtils.equals(array2, array1) );
+
+ // test same reference equivalence
+ array2 = array1;
+ assertEquals( true, NumberUtils.equals(array1, array2) );
+
+ // test object equivalence
+ array2 = new byte[] { 50, 20 };
+ assertEquals( true, NumberUtils.equals(array1, array2) );
+
+ // test symmetry is not equivalent
+ array2 = new byte[] { 20, 50 };
+ assertEquals( false, NumberUtils.equals(array1, array2) );
+
+ // test the whole length of rhs is tested against
+ array2 = new byte[] { 50, 20, 10 };
+ assertEquals( false, NumberUtils.equals(array1, array2) );
+
+ // test whole length of lhs is tested against
+ array2 = new byte[] { 50 };
+ assertEquals( false, NumberUtils.equals(array1, array2) );
+ }
+
+ public void testEqualsShort() {
+ short[] array1 = null;
+ short[] array2 = null;
+ assertEquals( true, NumberUtils.equals(array1, array2) );
+ assertEquals( true, NumberUtils.equals(array2, array1) );
+
+ array1 = new short[] { 50, 20 }; // array2 still null
+ assertEquals( false, NumberUtils.equals(array1, array2) );
+ assertEquals( false, NumberUtils.equals(array2, array1) );
+
+ // test same reference equivalence
+ array2 = array1;
+ assertEquals( true, NumberUtils.equals(array1, array2) );
+
+ // test object equivalence
+ array2 = new short[] { 50, 20 };
+ assertEquals( true, NumberUtils.equals(array1, array2) );
+
+ // test symmetry is not equivalent
+ array2 = new short[] { 20, 50 };
+ assertEquals( false, NumberUtils.equals(array1, array2) );
+
+ // test the whole length of rhs is tested against
+ array2 = new short[] { 50, 20, 10 };
+ assertEquals( false, NumberUtils.equals(array1, array2) );
+
+ // test whole length of lhs is tested against
+ array2 = new short[] { 50 };
+ assertEquals( false, NumberUtils.equals(array1, array2) );
+ }
+
+ public void testEqualsInt() {
+ int[] array1 = null;
+ int[] array2 = null;
+ assertEquals( true, NumberUtils.equals(array1, array2) );
+ assertEquals( true, NumberUtils.equals(array2, array1) );
+
+ array1 = new int[] { 50, 20 }; // array2 still null
+ assertEquals( false, NumberUtils.equals(array1, array2) );
+ assertEquals( false, NumberUtils.equals(array2, array1) );
+
+ // test same reference equivalence
+ array2 = array1;
+ assertEquals( true, NumberUtils.equals(array1, array2) );
+
+ // test object equivalence
+ array2 = new int[] { 50, 20 };
+ assertEquals( true, NumberUtils.equals(array1, array2) );
+
+ // test symmetry is not equivalent
+ array2 = new int[] { 20, 50 };
+ assertEquals( false, NumberUtils.equals(array1, array2) );
+
+ // test the whole length of rhs is tested against
+ array2 = new int[] { 50, 20, 10 };
+ assertEquals( false, NumberUtils.equals(array1, array2) );
+
+ // test whole length of lhs is tested against
+ array2 = new int[] { 50 };
+ assertEquals( false, NumberUtils.equals(array1, array2) );
+ }
+
+ public void testEqualsLong() {
+ long[] array1 = null;
+ long[] array2 = null;
+ assertEquals( true, NumberUtils.equals(array1, array2) );
+ assertEquals( true, NumberUtils.equals(array2, array1) );
+
+ array1 = new long[] { 50L, 20L }; // array2 still null
+ assertEquals( false, NumberUtils.equals(array1, array2) );
+ assertEquals( false, NumberUtils.equals(array2, array1) );
+
+ // test same reference equivalence
+ array2 = array1;
+ assertEquals( true, NumberUtils.equals(array1, array2) );
+
+ // test object equivalence
+ array2 = new long[] { 50L, 20L };
+ assertEquals( true, NumberUtils.equals(array1, array2) );
+
+ // test symmetry is not equivalent
+ array2 = new long[] { 20L, 50L };
+ assertEquals( false, NumberUtils.equals(array1, array2) );
+
+ // test the whole length of rhs is tested against
+ array2 = new long[] { 50L, 20L, 10L };
+ assertEquals( false, NumberUtils.equals(array1, array2) );
+
+ // test whole length of lhs is tested against
+ array2 = new long[] { 50L };
+ assertEquals( false, NumberUtils.equals(array1, array2) );
+ }
+
+ public void testEqualsFloat() {
+ float[] array1 = null;
+ float[] array2 = null;
+ assertEquals( true, NumberUtils.equals(array1, array2) );
+ assertEquals( true, NumberUtils.equals(array2, array1) );
+
+ array1 = new float[] { 50.6f, 20.6f }; // array2 still null
+ assertEquals( false, NumberUtils.equals(array1, array2) );
+ assertEquals( false, NumberUtils.equals(array2, array1) );
+
+ // test same reference equivalence
+ array2 = array1;
+ assertEquals( true, NumberUtils.equals(array1, array2) );
+
+ // test object equivalence
+ array2 = new float[] { 50.6f, 20.6f };
+ assertEquals( true, NumberUtils.equals(array1, array2) );
+
+ // test symmetry is not equivalent
+ array2 = new float[] { 20.6f, 50.6f };
+ assertEquals( false, NumberUtils.equals(array1, array2) );
+
+ // test the whole length of rhs is tested against
+ array2 = new float[] { 50.6f, 20.6f, 10.6f };
+ assertEquals( false, NumberUtils.equals(array1, array2) );
+
+ // test whole length of lhs is tested against
+ array2 = new float[] { 50.6f };
+ assertEquals( false, NumberUtils.equals(array1, array2) );
+ }
+
+ public void testEqualsDouble() {
+ double[] array1 = null;
+ double[] array2 = null;
+ assertEquals( true, NumberUtils.equals(array1, array2) );
+ assertEquals( true, NumberUtils.equals(array2, array1) );
+
+ array1 = new double[] { 50.6, 20.6 }; // array2 still null
+ assertEquals( false, NumberUtils.equals(array1, array2) );
+ assertEquals( false, NumberUtils.equals(array2, array1) );
+
+ // test same reference equivalence
+ array2 = array1;
+ assertEquals( true, NumberUtils.equals(array1, array2) );
+
+ // test object equivalence
+ array2 = new double[] { 50.6, 20.6 };
+ assertEquals( true, NumberUtils.equals(array1, array2) );
+
+ // test symmetry is not equivalent
+ array2 = new double[] { 20.6, 50.6 };
+ assertEquals( false, NumberUtils.equals(array1, array2) );
+
+ // test the whole length of rhs is tested against
+ array2 = new double[] { 50.6, 20.6, 10.6 };
+ assertEquals( false, NumberUtils.equals(array1, array2) );
+
+ // test whole length of lhs is tested against
+ array2 = new double[] { 50.6 };
+ assertEquals( false, NumberUtils.equals(array1, array2) );
+ }
+
// min/max tests
// ----------------------------------------------------------------------
public void testMinLong() {
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]