Program: 184332
Project: 184332
Buggy source:
public final void testAdd_Update_Remove(){
  DateTime now=new DateTime();
  EditableEntity v=new EditableEntity();
  v.put("String_Node_Str",now);
  list.add(v);
  v=new EditableEntity();
  v.put("String_Node_Str",now.withDayOfWeek(1));
  list.add(v);
  v=new EditableEntity();
  v.put("String_Node_Str",now.withDayOfMonth(1));
  list.add(v);
  v=new EditableEntity();
  v.put("String_Node_Str",now.minusMonths(1).withDayOfMonth(1));
  list.add(v);
  v=new EditableEntity();
  v.put("String_Node_Str",now.minusMonths(2).withDayOfMonth(2));
  list.add(v);
  v=new EditableEntity();
  v.put("String_Node_Str",now.minusMonths(3).withDayOfMonth(2));
  list.add(v);
  v=new EditableEntity();
  v.put("String_Node_Str",now.minusMonths(4).withDayOfMonth(2));
  list.add(v);
  v=new EditableEntity();
  v.put("String_Node_Str",now.minusMonths(5).withDayOfMonth(2));
  list.add(v);
  assertEquals(1,classificator.getData("String_Node_Str").size());
  assertEquals(1,classificator.getData("String_Node_Str").size());
  assertEquals(1,classificator.getData("String_Node_Str").size());
  assertEquals(2,classificator.getData("String_Node_Str").size());
  assertEquals(3,classificator.getData("String_Node_Str").size());
  EditableEntity v1=new EditableEntity();
  v1.put("String_Node_Str",now.withDayOfMonth(2));
  list.remove(v);
  list.add(v1);
  assertEquals(1,classificator.getData("String_Node_Str").size());
  assertEquals(1,classificator.getData("String_Node_Str").size());
  assertEquals(1 + 1,classificator.getData("String_Node_Str").size());
  assertEquals(2,classificator.getData("String_Node_Str").size());
  assertEquals(3 - 1,classificator.getData("String_Node_Str").size());
  list.remove(v1);
  assertEquals(1,classificator.getData("String_Node_Str").size());
  assertEquals(1,classificator.getData("String_Node_Str").size());
  assertEquals(1 + 1 - 1,classificator.getData("String_Node_Str").size());
  assertEquals(2,classificator.getData("String_Node_Str").size());
  assertEquals(3 - 1,classificator.getData("String_Node_Str").size());
  Set<String> classifications=classificator.getClassifications();
  assertEquals(5,classifications.size());
  assertEquals("String_Node_Str",Joiner.on("String_Node_Str").join(classifications));
  EditableEntity vOld=new EditableEntity();
  vOld.put("String_Node_Str",now.minusMonths(9));
  list.add(vOld);
  assertEquals(1,classificator.getData("String_Node_Str").size());
  assertEquals(1,classificator.getData("String_Node_Str").size());
  assertEquals(1 + 1 - 1,classificator.getData("String_Node_Str").size());
  assertEquals(2,classificator.getData("String_Node_Str").size());
  assertEquals(3 - 1,classificator.getData("String_Node_Str").size());
  assertEquals(0,classificator.getData("String_Node_Str").size());
}

Fixed version (ground truth):
public final void testAdd_Update_Remove(){
  DateTime now=new DateTime().withDayOfMonth(10).withDayOfWeek(3);
  EditableEntity v=new EditableEntity();
  v.put("String_Node_Str",now);
  list.add(v);
  v=new EditableEntity();
  v.put("String_Node_Str",now.withDayOfWeek(1));
  list.add(v);
  v=new EditableEntity();
  v.put("String_Node_Str",now.withDayOfMonth(1));
  list.add(v);
  v=new EditableEntity();
  v.put("String_Node_Str",now.minusMonths(1).withDayOfMonth(1));
  list.add(v);
  v=new EditableEntity();
  v.put("String_Node_Str",now.minusMonths(2).withDayOfMonth(2));
  list.add(v);
  v=new EditableEntity();
  v.put("String_Node_Str",now.minusMonths(3).withDayOfMonth(2));
  list.add(v);
  v=new EditableEntity();
  v.put("String_Node_Str",now.minusMonths(4).withDayOfMonth(2));
  list.add(v);
  v=new EditableEntity();
  v.put("String_Node_Str",now.minusMonths(5).withDayOfMonth(2));
  list.add(v);
  assertEquals(1,classificator.getData("String_Node_Str").size());
  assertEquals(1,classificator.getData("String_Node_Str").size());
  assertEquals(1,classificator.getData("String_Node_Str").size());
  assertEquals(2,classificator.getData("String_Node_Str").size());
  assertEquals(3,classificator.getData("String_Node_Str").size());
  EditableEntity v1=new EditableEntity();
  v1.put("String_Node_Str",now.withDayOfMonth(2));
  list.remove(v);
  list.add(v1);
  assertEquals(1,classificator.getData("String_Node_Str").size());
  assertEquals(1,classificator.getData("String_Node_Str").size());
  assertEquals(1 + 1,classificator.getData("String_Node_Str").size());
  assertEquals(2,classificator.getData("String_Node_Str").size());
  assertEquals(3 - 1,classificator.getData("String_Node_Str").size());
  list.remove(v1);
  assertEquals(1,classificator.getData("String_Node_Str").size());
  assertEquals(1,classificator.getData("String_Node_Str").size());
  assertEquals(1 + 1 - 1,classificator.getData("String_Node_Str").size());
  assertEquals(2,classificator.getData("String_Node_Str").size());
  assertEquals(3 - 1,classificator.getData("String_Node_Str").size());
  Set<String> classifications=classificator.getClassifications();
  assertEquals(5,classifications.size());
  assertEquals("String_Node_Str",Joiner.on("String_Node_Str").join(classifications));
  EditableEntity vOld=new EditableEntity();
  vOld.put("String_Node_Str",now.minusMonths(9));
  list.add(vOld);
  assertEquals(1,classificator.getData("String_Node_Str").size());
  assertEquals(1,classificator.getData("String_Node_Str").size());
  assertEquals(1 + 1 - 1,classificator.getData("String_Node_Str").size());
  assertEquals(2,classificator.getData("String_Node_Str").size());
  assertEquals(3 - 1,classificator.getData("String_Node_Str").size());
  assertEquals(0,classificator.getData("String_Node_Str").size());
}