junit.framework.ComparisonFailure Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of dx Show documentation
Show all versions of dx Show documentation
dx is an Android SDK platform tool that transforms Java bytecode (and JARs) into Dalvik VM 'DEX' code.
The newest version!
package junit.framework;
/**
* Thrown when an assert equals for Strings failed.
*
* Inspired by a patch from Alex Chaffee mailto:[email protected]
*/
public class ComparisonFailure extends AssertionFailedError {
private String fExpected;
private String fActual;
/**
* Constructs a comparison failure.
* @param message the identifying message or null
* @param expected the expected string value
* @param actual the actual string value
*/
public ComparisonFailure (String message, String expected, String actual) {
super (message);
fExpected= expected;
fActual= actual;
}
/**
* Returns "..." in place of common prefix and "..." in
* place of common suffix between expected and actual.
*
* @see java.lang.Throwable#getMessage()
*/
public String getMessage() {
if (fExpected == null || fActual == null)
return Assert.format(super.getMessage(), fExpected, fActual);
int end= Math.min(fExpected.length(), fActual.length());
int i= 0;
for(; i < end; i++) {
if (fExpected.charAt(i) != fActual.charAt(i))
break;
}
int j= fExpected.length()-1;
int k= fActual.length()-1;
for (; k >= i && j >= i; k--,j--) {
if (fExpected.charAt(j) != fActual.charAt(k))
break;
}
String actual, expected;
// equal strings
if (j < i && k < i) {
expected= fExpected;
actual= fActual;
} else {
expected= fExpected.substring(i, j+1);
actual= fActual.substring(i, k+1);
if (i <= end && i > 0) {
expected= "..."+expected;
actual= "..."+actual;
}
if (j < fExpected.length()-1)
expected= expected+"...";
if (k < fActual.length()-1)
actual= actual+"...";
}
return Assert.format(super.getMessage(), expected, actual);
}
}