CVS: junit/src/org/junit Ignore.java, 1.1, 1.2 Assert.java, 1.2, 1.3

David Saff <[email protected]>
Newsgroups gmane.comp.java.junit.devel
Message-ID <[email protected]>
Update of /cvsroot/junit/junit/src/org/junit
In directory sc8-pr-cvs6.sourceforge.net:/tmp/cvs-serv11688/src/org/junit

Modified Files:
	Ignore.java Assert.java 
Log Message:
Can @Ignore classes
assertArrayEquals added


Index: Ignore.java
===================================================================
RCS file: /cvsroot/junit/junit/src/org/junit/Ignore.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -d -r1.1 -r1.2
--- Ignore.java	21 Nov 2006 18:53:34 -0000	1.1
+++ Ignore.java	24 Jan 2007 16:32:59 -0000	1.2
@@ -22,7 +22,7 @@
  *
  */
 @Retention(RetentionPolicy.RUNTIME)
-@Target(ElementType.METHOD)
+@Target({ElementType.METHOD, ElementType.TYPE})
 public @interface Ignore {
 	/**
 	 * The optional reason why the test is ignored.

Index: Assert.java
===================================================================
RCS file: /cvsroot/junit/junit/src/org/junit/Assert.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -r1.2 -r1.3
--- Assert.java	21 Nov 2006 19:52:30 -0000	1.2
+++ Assert.java	24 Jan 2007 16:32:59 -0000	1.3
@@ -1,5 +1,7 @@
 package org.junit;
 
+import java.lang.reflect.Array;
+
 import org.junit.internal.ArrayComparisonFailure;
 
 /**
@@ -87,7 +89,7 @@
 	static public void assertEquals(String message, Object expected, Object actual) {
 		if (expected == null && actual == null)
 			return;
-		if (expected != null && expected.equals(actual))
+		if (expected != null && isEquals(expected, actual))
 			return;
 		else if (expected instanceof String && actual instanceof String) {
 			String cleanMessage= message == null ? "" : message;
@@ -97,6 +99,12 @@
 			failNotEquals(message, expected, actual);
 	}
 
+	private static boolean isEquals(Object expected, Object actual) {
+		if (expected instanceof Number && actual instanceof Number)
+			return ((Number) expected).longValue() == ((Number) actual).longValue();
+		return expected.equals(actual);
+	}
+
 	/**
 	 * Asserts that two objects are equal. If they are not, an {@link AssertionError} 
 	 * without a message is thrown. If <code>expected</code> and <code>actual</code>
@@ -116,38 +124,11 @@
 	 * @param expecteds Object array or array of arrays (multi-dimensional array) with expected values.
 	 * @param actuals Object array or array of arrays (multi-dimensional array) with actual values
 	 */
-	public static void assertEquals(String message, Object[] expecteds, Object[] actuals) {
-		if (expecteds == actuals)
-			return;
-		String header = message == null ? "" : message + ": ";
-		if (expecteds == null)
-			fail(header + "expected array was null");
-		if (actuals == null)
-			fail(header + "actual array was null");
-		if (actuals.length != expecteds.length)
-			fail(header + "array lengths differed, expected.length=" + expecteds.length + " actual.length=" + actuals.length);
-
-		for (int i= 0; i < expecteds.length; i++) {
-			Object o1= expecteds[i];
-			Object o2= actuals[i];
-			if (o1.getClass().isArray() && o2.getClass().isArray()) {
-				Object[] expected= (Object[]) o1;
-				Object[] actual= (Object[]) o2;
-				try {
-					assertEquals(message, expected, actual);
-				} catch (ArrayComparisonFailure e) {
-					e.addDimension(i);
-					throw e;
-				}
-			} else
-				try {
-					assertEquals(o1, o2);
-				} catch (AssertionError e) {
-					throw new ArrayComparisonFailure(header, e, i);
-				}
-		}
+	public static void assertArrayEquals(String message, Object[] expecteds,
+			Object[] actuals) throws ArrayComparisonFailure {
+		internalArrayEquals(message, expecteds, actuals);
 	}
-
+	
 	/**
 	 * Asserts that two object arrays are equal. If they are not, an {@link AssertionError} 
 	 * is thrown.  If <code>expected</code> and <code>actual</code> are <code>null</code>, 
@@ -155,87 +136,183 @@
 	 * @param expecteds Object array or array of arrays (multi-dimensional array) with expected values
 	 * @param actuals Object array or array of arrays (multi-dimensional array) with actual values
 	 */
-	public static void assertEquals(Object[] expecteds, Object[] actuals) {
-		assertEquals(null, expecteds, actuals);
+	public static void assertArrayEquals(Object[] expecteds, Object[] actuals) {
+		assertArrayEquals(null, expecteds, actuals);
 	}
 
 	/**
-	 * Asserts that two longs are equal. If they are not
-	 * an {@link AssertionError} is thrown with the given message.
+	 * TODO: fix javadoc
+	 * Asserts that two object arrays are equal. If they are not, an
+	 * {@link AssertionError} is thrown with the given message. If <code>expecteds</code> and
+	 *  <code>actuals</code> are <code>null</code>, they are considered equal.
+	 * @param message the identifying message or <code>null</code> for the {@link AssertionError}
+	 * @param expecteds Object array or array of arrays (multi-dimensional array) with expected values.
+	 * @param actuals Object array or array of arrays (multi-dimensional array) with actual values
 	 */
-	static public void assertEquals(String message, long expected, long actual) {
-	    assertEquals(message, Long.valueOf(expected), Long.valueOf(actual));
+	public static void assertArrayEquals(String message, byte[] expecteds,
+			byte[] actuals) throws ArrayComparisonFailure {
+		internalArrayEquals(message, expecteds, actuals);
+	}
+
+	/**
+	 * TODO: fix javadoc
+	 * Asserts that two object arrays are equal. If they are not, an {@link AssertionError} 
+	 * is thrown.  If <code>expected</code> and <code>actual</code> are <code>null</code>, 
+	 * they are considered equal.
+	 * @param expecteds Object array or array of arrays (multi-dimensional array) with expected values
+	 * @param actuals Object array or array of arrays (multi-dimensional array) with actual values
+	 */
+	public static void assertArrayEquals(byte[] expecteds, byte[] actuals) {
+		assertArrayEquals(null, expecteds, actuals);
 	}
 	
 	/**
-	 * Asserts that two longs are equal.
+	 * TODO: fix javadoc
+	 * Asserts that two object arrays are equal. If they are not, an
+	 * {@link AssertionError} is thrown with the given message. If <code>expecteds</code> and
+	 *  <code>actuals</code> are <code>null</code>, they are considered equal.
+	 * @param message the identifying message or <code>null</code> for the {@link AssertionError}
+	 * @param expecteds Object array or array of arrays (multi-dimensional array) with expected values.
+	 * @param actuals Object array or array of arrays (multi-dimensional array) with actual values
 	 */
-	static public void assertEquals(long expected, long actual) {
-	    assertEquals(null, expected, actual);
+	public static void assertArrayEquals(String message, char[] expecteds,
+			char[] actuals) throws ArrayComparisonFailure {
+		internalArrayEquals(message, expecteds, actuals);
+	}
+
+	/**
+	 * TODO: fix javadoc
+	 * Asserts that two object arrays are equal. If they are not, an {@link AssertionError} 
+	 * is thrown.  If <code>expected</code> and <code>actual</code> are <code>null</code>, 
+	 * they are considered equal.
+	 * @param expecteds Object array or array of arrays (multi-dimensional array) with expected values
+	 * @param actuals Object array or array of arrays (multi-dimensional array) with actual values
+	 */
+	public static void assertArrayEquals(char[] expecteds, char[] actuals) {
+		assertArrayEquals(null, expecteds, actuals);
 	}
 	
 	/**
-	 * Asserts that two bytes are equal. If they are not
-	 * an {@link AssertionError} is thrown with the given message.
+	 * TODO: fix javadoc
+	 * Asserts that two object arrays are equal. If they are not, an
+	 * {@link AssertionError} is thrown with the given message. If <code>expecteds</code> and
+	 *  <code>actuals</code> are <code>null</code>, they are considered equal.
+	 * @param message the identifying message or <code>null</code> for the {@link AssertionError}
+	 * @param expecteds Object array or array of arrays (multi-dimensional array) with expected values.
+	 * @param actuals Object array or array of arrays (multi-dimensional array) with actual values
 	 */
-  	static public void assertEquals(String message, byte expected, byte actual) {
-		assertEquals(message, Byte.valueOf(expected), Byte.valueOf(actual));
+	public static void assertArrayEquals(String message, short[] expecteds,
+			short[] actuals) throws ArrayComparisonFailure {
+		internalArrayEquals(message, expecteds, actuals);
 	}
-  	
+
 	/**
-   	 * Asserts that two bytes are equal.
+	 * TODO: fix javadoc
+	 * Asserts that two object arrays are equal. If they are not, an {@link AssertionError} 
+	 * is thrown.  If <code>expected</code> and <code>actual</code> are <code>null</code>, 
+	 * they are considered equal.
+	 * @param expecteds Object array or array of arrays (multi-dimensional array) with expected values
+	 * @param actuals Object array or array of arrays (multi-dimensional array) with actual values
 	 */
-	static public void assertEquals(byte expected, byte actual) {
-		assertEquals(null, expected, actual);
+	public static void assertArrayEquals(short[] expecteds, short[] actuals) {
+		assertArrayEquals(null, expecteds, actuals);
 	}
 	
 	/**
-	 * Asserts that two chars are equal. If they are not
-	 * an {@link AssertionError} is thrown with the given message.
+	 * TODO: fix javadoc
+	 * Asserts that two object arrays are equal. If they are not, an
+	 * {@link AssertionError} is thrown with the given message. If <code>expecteds</code> and
+	 *  <code>actuals</code> are <code>null</code>, they are considered equal.
+	 * @param message the identifying message or <code>null</code> for the {@link AssertionError}
+	 * @param expecteds Object array or array of arrays (multi-dimensional array) with expected values.
+	 * @param actuals Object array or array of arrays (multi-dimensional array) with actual values
 	 */
-  	static public void assertEquals(String message, char expected, char actual) {
-    		assertEquals(message, Character.valueOf(expected), Character.valueOf(actual));
-  	}
-  	
+	public static void assertArrayEquals(String message, int[] expecteds,
+			int[] actuals) throws ArrayComparisonFailure {
+		internalArrayEquals(message, expecteds, actuals);
+	}
+
 	/**
-	 * Asserts that two chars are equal.
+	 * TODO: fix javadoc
+	 * Asserts that two object arrays are equal. If they are not, an {@link AssertionError} 
+	 * is thrown.  If <code>expected</code> and <code>actual</code> are <code>null</code>, 
+	 * they are considered equal.
+	 * @param expecteds Object array or array of arrays (multi-dimensional array) with expected values
+	 * @param actuals Object array or array of arrays (multi-dimensional array) with actual values
 	 */
-  	static public void assertEquals(char expected, char actual) {
-		assertEquals(null, expected, actual);
+	public static void assertArrayEquals(int[] expecteds, int[] actuals) {
+		assertArrayEquals(null, expecteds, actuals);
 	}
-  	
+
 	/**
-	 * Asserts that two shorts are equal. If they are not
-	 * an {@link AssertionError} is thrown with the given message.
+	 * TODO: fix javadoc
+	 * Asserts that two object arrays are equal. If they are not, an {@link AssertionError} 
+	 * is thrown.  If <code>expected</code> and <code>actual</code> are <code>null</code>, 
+	 * they are considered equal.
+	 * @param expecteds Object array or array of arrays (multi-dimensional array) with expected values
+	 * @param actuals Object array or array of arrays (multi-dimensional array) with actual values
 	 */
-	static public void assertEquals(String message, short expected, short actual) {
-    		assertEquals(message, Short.valueOf(expected), Short.valueOf(actual));
+	public static void assertArrayEquals(long[] expecteds, long[] actuals) {
+		assertArrayEquals(null, expecteds, actuals);
 	}
 	
-  	/**
-	 * Asserts that two shorts are equal.
+	/**
+	 * TODO: fix javadoc
+	 * Asserts that two object arrays are equal. If they are not, an
+	 * {@link AssertionError} is thrown with the given message. If <code>expecteds</code> and
+	 *  <code>actuals</code> are <code>null</code>, they are considered equal.
+	 * @param message the identifying message or <code>null</code> for the {@link AssertionError}
+	 * @param expecteds Object array or array of arrays (multi-dimensional array) with expected values.
+	 * @param actuals Object array or array of arrays (multi-dimensional array) with actual values
 	 */
-	static public void assertEquals(short expected, short actual) {
-		assertEquals(null, expected, actual);
+	public static void assertArrayEquals(String message, long[] expecteds,
+			long[] actuals) throws ArrayComparisonFailure {
+		internalArrayEquals(message, expecteds, actuals);
 	}
 	
 	/**
-	 * Asserts that two ints are equal. If they are not
-	 * an {@link AssertionError} is thrown with the given message.
-	 */
-  	static public void assertEquals(String message, int expected, int actual) {
-		assertEquals(message, Integer.valueOf(expected), Integer.valueOf(actual));
-  	}
-  	
-  	/**
-   	 * Asserts that two ints are equal.
+	 * Asserts that two object arrays are equal. If they are not, an
+	 * {@link AssertionError} is thrown with the given message. If <code>expecteds</code> and
+	 *  <code>actuals</code> are <code>null</code>, they are considered equal.
+	 * @param message the identifying message or <code>null</code> for the {@link AssertionError}
+	 * @param expecteds Object array or array of arrays (multi-dimensional array) with expected values.
+	 * @param actuals Object array or array of arrays (multi-dimensional array) with actual values
 	 */
-  	static public void assertEquals(int expected, int actual) {
-  		assertEquals(null, expected, actual);
-	}
+	private static void internalArrayEquals(String message, Object expecteds,
+			Object actuals) throws ArrayComparisonFailure {
+		if (expecteds == actuals)
+			return;
+		String header = message == null ? "" : message + ": ";
+		if (expecteds == null)
+			fail(header + "expected array was null");
+		if (actuals == null)
+			fail(header + "actual array was null");
+		int actualsLength= Array.getLength(actuals);
+		int expectedsLength= Array.getLength(expecteds);
+		if (actualsLength != expectedsLength)
+			fail(header + "array lengths differed, expected.length=" + expectedsLength + " actual.length=" + actualsLength);
 	
+		for (int i= 0; i < expectedsLength; i++) {
+			Object expected= Array.get(expecteds, i);
+			Object actual= Array.get(actuals, i);
+			if (expected.getClass().isArray() && actual.getClass().isArray()) {
+				try {
+					internalArrayEquals(message, expected, actual);
+				} catch (ArrayComparisonFailure e) {
+					e.addDimension(i);
+					throw e;
+				}
+			} else
+				try {
+					assertEquals(expected, actual);
+				} catch (AssertionError e) {
+					throw new ArrayComparisonFailure(header, e, i);
+				}
+		}
+	}
+
 	/**
-	 * Asserts that two doubles are equal to within a positive delta. If they
+	 * Asserts that two doubles or floats are equal to within a positive delta. If they
 	 * are not, an {@link AssertionError} is thrown with the given message. If the
 	 * expected value is infinity then the delta value is ignored. NaNs are
 	 * considered equal:
@@ -254,7 +331,7 @@
 	}
 
 	/**
-	 * Asserts that two doubles are equal to within a positive delta. If they
+	 * Asserts that two doubles or floats are equal to within a positive delta. If they
 	 * are not, an {@link AssertionError} is thrown. If the
 	 * expected value is infinity then the delta value is ignored.NaNs are
 	 * considered equal:
@@ -269,40 +346,6 @@
 	}
 
 	/**
-	 * Asserts that two floats are equal to within a positive delta. If they
-	 * are not, an {@link AssertionError} is thrown with the given message. If the
-	 * expected value is infinity then the delta value is ignored. NaNs are
-	 * considered equal:
-	 * <code>assertEquals(Float.NaN, Float.NaN, *)</code> passes
-	 * @param message the identifying message or <code>null</code> for the {@link AssertionError}
-	 * @param expected the expected float value
-	 * @param actual the float value to check against <code>expected</code>
-	 * @param delta the maximum delta between <code>expected</code> and <code>actual</code> for which 
-	 * both numbers are still considered equal.
-	 */
-	static public void assertEquals(String message, float expected, float actual, float delta) {
-		if (Float.compare(expected, actual) == 0)
-			return;
-		if (!(Math.abs(expected - actual) <= delta))
-			failNotEquals(message, new Float(expected), new Float(actual));
-	}
-
-	/**
-	 * Asserts that two floats are equal to within a positive delta. If they
-	 * are not, an {@link AssertionError} is thrown. If the
-	 * expected value is infinity then the delta value is ignored. {@link Float#NaN NaNs} are
-	 * considered equal:
-	 * <code>assertEquals(Float.NaN, Float.NaN, *)</code> passes
-	 * @param expected the expected value
-	 * @param actual the value to check against <code>expected</code>
-	 * @param delta the maximum delta between <code>expected</code> and <code>actual</code> for which 
-	 * both numbers are still considered equal.
-	 */
-	static public void assertEquals(float expected, float actual, float delta) {
-		assertEquals(null, expected, actual, delta);
-	}
-
-	/**
 	 * Asserts that an object isn't null. If it is an {@link AssertionError} is
 	 * thrown with the given message.
 	 * @param message the identifying message or <code>null</code> for the {@link AssertionError}
@@ -411,4 +454,31 @@
 		return formatted + "expected:<" + expected + "> but was:<" + actual + ">";
 	}
 
+	/**
+	 * Asserts that two object arrays are equal. If they are not, an
+	 * {@link AssertionError} is thrown with the given message. If <code>expecteds</code> and
+	 *  <code>actuals</code> are <code>null</code>, they are considered equal.
+	 * @param message the identifying message or <code>null</code> for the {@link AssertionError}
+	 * @param expecteds Object array or array of arrays (multi-dimensional array) with expected values.
+	 * @param actuals Object array or array of arrays (multi-dimensional array) with actual values
+	 * @deprecated use assertArrayEquals
+	 */
+	@Deprecated
+	public static void assertEquals(String message, Object[] expecteds, Object[] actuals) {
+		assertArrayEquals(message, expecteds, actuals);
+	}
+
+	/**
+	 * Asserts that two object arrays are equal. If they are not, an {@link AssertionError} 
+	 * is thrown.  If <code>expected</code> and <code>actual</code> are <code>null</code>, 
+	 * they are considered equal.
+	 * @param expecteds Object array or array of arrays (multi-dimensional array) with expected values
+	 * @param actuals Object array or array of arrays (multi-dimensional array) with actual values
+	 * @deprecated use assertArrayEquals
+	 */
+	@Deprecated
+	public static void assertEquals(Object[] expecteds, Object[] actuals) {
+		assertArrayEquals(expecteds, actuals);
+	}
+
 }


-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.