public synchronized boolean equals(java.lang.Object obj) {
   if (!(obj instanceof PlanRecord)) return false;
   PlanRecord other = (PlanRecord) obj;
   if (obj == null) return false;
   if (this == obj) return true;
   if (__equalsCalc != null) {
     return (__equalsCalc == obj);
   }
   __equalsCalc = obj;
   boolean _equals;
   _equals =
       true
           && ((this.item == null && other.getItem() == null)
               || (this.item != null && this.item.equals(other.getItem())));
   __equalsCalc = null;
   return _equals;
 }
  private static void test(final ConflictSolverTestsFixture fixture) {
    final ConflictSolver testee = new LeastPointedPlanPruningConflictSolver();

    testee.attemptToSolveConflicts(fixture.recordsPerJointPlan);

    for (PlanRecord r : fixture.allRecords) {
      if (fixture.expectedUnfeasiblePlans.contains(r.getPlan())) {
        Assert.assertFalse("plan " + r.getPlan() + " unexpectedly feasible", r.isFeasible());
      } else {
        Assert.assertTrue("plan " + r.getPlan() + " unexpectedly unfeasible", r.isFeasible());
      }
    }
  }