Exemplo n.º 1
0
  private boolean checkEach(
      Object want1, String name1, List list1, String name2, List list2, List result) {
    boolean ok = true;
    try {
      int index2 = list2.indexOf(want1);
      if (index2 < 0) {
        f.format(
            "  ** %s %s 0x%x (%s) not in %s %n",
            want1.getClass().getName(), want1, want1.hashCode(), name1, name2);
        ok = false;
      } else { // found it in second list
        Object want2 = list2.get(index2);
        int index1 = list1.indexOf(want2);
        if (index1 < 0) { // can this happen ??
          f.format(
              "  ** %s %s 0x%x (%s) not in %s %n",
              want2.getClass().getName(), want2, want2.hashCode(), name2, name1);
          ok = false;

        } else { // found it in both lists
          Object want = list1.get(index1);
          if (!want.equals(want1)) {
            f.format(
                "  ** %s %s 0x%x (%s) not equal to %s 0x%x (%s) %n",
                want1.getClass().getName(),
                want1,
                want1.hashCode(),
                name1,
                want2,
                want2.hashCode(),
                name2);
            ok = false;
          } else {
            if (showEach) f.format("  OK <%s> equals <%s>%n", want1, want2);
            if (result != null) {
              result.add(want1);
              result.add(want2);
            }
          }
        }
      }

    } catch (Throwable t) {
      t.printStackTrace();
      f.format(" *** Throwable= %s %n", t.getMessage());
    }

    return ok;
  }