Program: 28060
Project: 28060
Buggy source:
public void testInvertibleOperators(){
  Map<String,String> inverses=ImmutableMap.<String,String>builder().put("String_Node_Str","String_Node_Str").put("String_Node_Str","String_Node_Str").put("String_Node_Str","String_Node_Str").put("String_Node_Str","String_Node_Str").put("String_Node_Str","String_Node_Str").put("String_Node_Str","String_Node_Str").put("String_Node_Str","String_Node_Str").put("String_Node_Str","String_Node_Str").build();
  Set<String> comparators=ImmutableSet.of("String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str");
  Set<String> equalitors=ImmutableSet.of("String_Node_Str","String_Node_Str");
  Set<String> uncomparables=ImmutableSet.of("String_Node_Str","String_Node_Str");
  List<String> operators=ImmutableList.copyOf(inverses.values());
  for (int iOperandA=0; iOperandA < LITERAL_OPERANDS.size(); iOperandA++) {
    for (int iOperandB=0; iOperandB < LITERAL_OPERANDS.size(); iOperandB++) {
      for (int iOp=0; iOp < operators.size(); iOp++) {
        String a=LITERAL_OPERANDS.get(iOperandA);
        String b=LITERAL_OPERANDS.get(iOperandB);
        String op=operators.get(iOp);
        String inverse=inverses.get(op);
        if (comparators.contains(op) && (uncomparables.contains(a) || uncomparables.contains(b))) {
          assertSameResults(join(a,op,b),"String_Node_Str");
          assertSameResults(join(a,inverse,b),"String_Node_Str");
        }
 else         if (a.equals(b) && equalitors.contains(op)) {
          if (a.equals("String_Node_Str") || a.equals("String_Node_Str")) {
            foldSame(join(a,op,b));
            foldSame(join(a,inverse,b));
          }
 else {
            assertSameResults(join(a,op,b),"String_Node_Str");
            assertSameResults(join(a,inverse,b),"String_Node_Str");
          }
        }
 else {
          assertNotSameResults(join(a,op,b),join(a,inverse,b));
        }
      }
    }
  }
}

Fixed version (ground truth):
public void testInvertibleOperators(){
  Map<String,String> inverses=ImmutableMap.<String,String>builder().put("String_Node_Str","String_Node_Str").put("String_Node_Str","String_Node_Str").put("String_Node_Str","String_Node_Str").put("String_Node_Str","String_Node_Str").put("String_Node_Str","String_Node_Str").put("String_Node_Str","String_Node_Str").put("String_Node_Str","String_Node_Str").put("String_Node_Str","String_Node_Str").build();
  Set<String> comparators=ImmutableSet.of("String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str");
  Set<String> equalitors=ImmutableSet.of("String_Node_Str","String_Node_Str");
  Set<String> uncomparables=ImmutableSet.of("String_Node_Str","String_Node_Str");
  List<String> operators=ImmutableList.copyOf(inverses.values());
  for (int iOperandA=0; iOperandA < LITERAL_OPERANDS.size(); iOperandA++) {
    for (int iOperandB=0; iOperandB < LITERAL_OPERANDS.size(); iOperandB++) {
      for (int iOp=0; iOp < operators.size(); iOp++) {
        String a=LITERAL_OPERANDS.get(iOperandA);
        String b=LITERAL_OPERANDS.get(iOperandB);
        String op=operators.get(iOp);
        String inverse=inverses.get(op);
        if (comparators.contains(op) && (uncomparables.contains(a) || uncomparables.contains(b))) {
          assertSameResults(join(a,op,b),"String_Node_Str");
          assertSameResults(join(a,inverse,b),"String_Node_Str");
        }
 else         if (a.equals(b) && equalitors.contains(op)) {
          if (a.equals("String_Node_Str") || a.equals("String_Node_Str") || a.equals("String_Node_Str")) {
            foldSame(join(a,op,b));
            foldSame(join(a,inverse,b));
          }
 else {
            assertSameResults(join(a,op,b),"String_Node_Str");
            assertSameResults(join(a,inverse,b),"String_Node_Str");
          }
        }
 else {
          assertNotSameResults(join(a,op,b),join(a,inverse,b));
        }
      }
    }
  }
}