Program: 4227
Project: 4227
Buggy source:
public void testContains(){
  IPList list=new IPList();
  list.add("String_Node_Str");
  assertTrue(list.contains(new IP("String_Node_Str")));
  assertFalse(list.contains(new IP("String_Node_Str")));
  list.add("String_Node_Str");
  assertTrue(list.contains(new IP("String_Node_Str")));
  assertTrue(list.contains(new IP("String_Node_Str")));
  assertFalse(list.contains(new IP("String_Node_Str")));
  list.add("String_Node_Str");
  list.add("String_Node_Str");
  list.add("String_Node_Str");
  list.add("String_Node_Str");
  assertTrue(list.contains(new IP("String_Node_Str")));
  assertTrue(list.contains(new IP("String_Node_Str")));
  assertFalse(list.contains(new IP("String_Node_Str")));
  list.add("String_Node_Str");
  list.add("String_Node_Str");
  list.add("String_Node_Str");
  assertTrue(list.contains(new IP("String_Node_Str")));
  assertTrue(list.contains(new IP("String_Node_Str")));
  assertFalse(list.contains(new IP("String_Node_Str")));
  list.add("String_Node_Str");
  list.add("String_Node_Str");
  list.add("String_Node_Str");
  assertTrue(list.contains(new IP("String_Node_Str")));
  assertTrue(list.contains(new IP("String_Node_Str")));
  assertFalse(list.contains(new IP("String_Node_Str")));
}

Fixed version (ground truth):
public void testContains(){
  IPList list=new IPList();
  list.add("String_Node_Str");
  assertTrue(list.contains(new IP("String_Node_Str")));
  assertFalse(list.contains(new IP("String_Node_Str")));
  assertEquals(1,list.size());
  list.add("String_Node_Str");
  assertTrue(list.contains(new IP("String_Node_Str")));
  assertTrue(list.contains(new IP("String_Node_Str")));
  assertFalse(list.contains(new IP("String_Node_Str")));
  assertEquals(2,list.size());
  list.add("String_Node_Str");
  assertEquals(2,list.size());
  list.add("String_Node_Str");
  assertEquals(2,list.size());
  list.add("String_Node_Str");
  assertEquals(3,list.size());
  list.add("String_Node_Str");
  assertEquals(4,list.size());
  assertTrue(list.contains(new IP("String_Node_Str")));
  assertTrue(list.contains(new IP("String_Node_Str")));
  assertFalse(list.contains(new IP("String_Node_Str")));
  list.add("String_Node_Str");
  assertEquals(5,list.size());
  list.add("String_Node_Str");
  assertEquals(5,list.size());
  list.add("String_Node_Str");
  assertEquals(5,list.size());
  assertTrue(list.contains(new IP("String_Node_Str")));
  assertTrue(list.contains(new IP("String_Node_Str")));
  assertFalse(list.contains(new IP("String_Node_Str")));
  list.add("String_Node_Str");
  assertEquals(6,list.size());
  list.add("String_Node_Str");
  assertEquals(7,list.size());
  list.add("String_Node_Str");
  assertEquals(6,list.size());
  assertTrue(list.contains(new IP("String_Node_Str")));
  assertTrue(list.contains(new IP("String_Node_Str")));
  assertFalse(list.contains(new IP("String_Node_Str")));
  list.add("String_Node_Str");
  assertEquals(7,list.size());
  list.add("String_Node_Str");
  assertEquals(7,list.size());
  list.add("String_Node_Str");
  assertEquals(1,list.size());
  assertTrue(list.contains(new IP("String_Node_Str")));
  assertTrue(list.contains(new IP("String_Node_Str")));
  assertTrue(list.contains(new IP("String_Node_Str")));
  assertTrue(list.contains(new IP("String_Node_Str")));
  assertTrue(list.contains(new IP("String_Node_Str")));
  assertTrue(list.contains(new IP("String_Node_Str")));
  assertTrue(list.contains(new IP("String_Node_Str")));
  assertTrue(list.contains(new IP("String_Node_Str")));
  assertTrue(list.contains(new IP("String_Node_Str")));
}