import java.io.PrintWriter;
import java.io.StringWriter;
+import java.util.Iterator;
+import java.util.List;
public class Util {
- public static String stringify(Throwable thr)
+ // Returns true iff. a and b contain equal items in the same order
+ public static boolean listsAreEqual(List<?> a, List<?> b)
{
- StringWriter sw = new StringWriter();
- PrintWriter pw = new PrintWriter(sw);
- thr.printStackTrace(pw);
- return sw.toString();
+ if ((null == a) || (null == b)) {
+ return (a == b);
+ }
+
+ if (0 == a.size()) {
+ return (0 == b.size());
+ }
+
+ if (a.size() != b.size()) {
+ return false;
+ }
+
+ Iterator<?> iterA = a.iterator();
+ Iterator<?> iterB = b.iterator();
+
+ while (iterA.hasNext()) {
+ Object elemA = iterA.next();
+ Object elemB = iterB.next();
+
+ if (! objsAreEqual(elemA, elemB)) {
+ return false;
+ }
+ }
+
+ return true;
}
// Test for equality, while taking care to avoid
}
return obj.hashCode();
}
+
+ // Convert a Throwable to the string representation
+ // that is generated by printStackTrace().
+ public static String stringify(Throwable thr)
+ {
+ StringWriter sw = new StringWriter();
+ PrintWriter pw = new PrintWriter(sw);
+ thr.printStackTrace(pw);
+ return sw.toString();
+ }
}