Program: 160224
Project: 160224
Buggy source:
@Test public void testSetGetMinMaxNumbers(){
  Array array=new Array();
  array.add(Integer.MIN_VALUE);
  array.add(Integer.MAX_VALUE);
  array.add(Long.MIN_VALUE);
  array.add(Long.MAX_VALUE);
  array.add(Float.MIN_VALUE);
  array.add(Float.MAX_VALUE);
  array.add(Double.MIN_VALUE);
  array.add(Double.MAX_VALUE);
  Document doc=createDocument("String_Node_Str");
  save(doc,"String_Node_Str",array,new Validator<Array>(){
    @Override public void validate(    Array a){
      assertEquals(Integer.MIN_VALUE,a.getNumber(0));
      assertEquals(Integer.MAX_VALUE,a.getNumber(1));
      assertEquals(Integer.MIN_VALUE,a.getObject(0));
      assertEquals(Integer.MAX_VALUE,a.getObject(1));
      assertEquals(Integer.MIN_VALUE,a.getInt(0));
      assertEquals(Integer.MAX_VALUE,a.getInt(1));
      assertEquals(Float.MIN_VALUE,a.getNumber(4));
      assertEquals(Float.MAX_VALUE,a.getNumber(5));
      assertEquals(Float.MIN_VALUE,a.getObject(4));
      assertEquals(Float.MAX_VALUE,a.getObject(5));
      assertEquals(Float.MIN_VALUE,a.getFloat(4),0.0f);
      assertEquals(Float.MAX_VALUE,a.getFloat(5),0.0f);
      assertEquals(Double.MIN_VALUE,a.getNumber(6));
      assertEquals(Double.MAX_VALUE,a.getNumber(7));
      assertEquals(Double.MIN_VALUE,a.getObject(6));
      assertEquals(Double.MAX_VALUE,a.getObject(7));
      assertEquals(Double.MIN_VALUE,a.getDouble(6),0.0f);
      assertEquals(Double.MAX_VALUE,a.getDouble(7),0.0f);
    }
  }
);
}

Fixed version (ground truth):
@Test public void testSetGetMinMaxNumbers(){
  Array array=new Array();
  array.add(Integer.MIN_VALUE);
  array.add(Integer.MAX_VALUE);
  array.add(Long.MIN_VALUE);
  array.add(Long.MAX_VALUE);
  array.add(Float.MIN_VALUE);
  array.add(Float.MAX_VALUE);
  array.add(Double.MIN_VALUE);
  array.add(Double.MAX_VALUE);
  Document doc=createDocument("String_Node_Str");
  save(doc,"String_Node_Str",array,new Validator<Array>(){
    @Override public void validate(    Array a){
      assertEquals(Integer.MIN_VALUE,a.getNumber(0).intValue());
      assertEquals(Integer.MAX_VALUE,a.getNumber(1).intValue());
      assertEquals(Integer.MIN_VALUE,((Number)a.getObject(0)).intValue());
      assertEquals(Integer.MAX_VALUE,((Number)a.getObject(1)).intValue());
      assertEquals(Integer.MIN_VALUE,a.getInt(0));
      assertEquals(Integer.MAX_VALUE,a.getInt(1));
      assertEquals(Long.MIN_VALUE,a.getNumber(2));
      assertEquals(Long.MAX_VALUE,a.getNumber(3));
      assertEquals(Long.MIN_VALUE,a.getObject(2));
      assertEquals(Long.MAX_VALUE,a.getObject(3));
      assertEquals(Long.MIN_VALUE,a.getLong(2));
      assertEquals(Long.MAX_VALUE,a.getLong(3));
      assertEquals(Float.MIN_VALUE,a.getNumber(4));
      assertEquals(Float.MAX_VALUE,a.getNumber(5));
      assertEquals(Float.MIN_VALUE,a.getObject(4));
      assertEquals(Float.MAX_VALUE,a.getObject(5));
      assertEquals(Float.MIN_VALUE,a.getFloat(4),0.0f);
      assertEquals(Float.MAX_VALUE,a.getFloat(5),0.0f);
      assertEquals(Double.MIN_VALUE,a.getNumber(6));
      assertEquals(Double.MAX_VALUE,a.getNumber(7));
      assertEquals(Double.MIN_VALUE,a.getObject(6));
      assertEquals(Double.MAX_VALUE,a.getObject(7));
      assertEquals(Double.MIN_VALUE,a.getDouble(6),0.0f);
      assertEquals(Double.MAX_VALUE,a.getDouble(7),0.0f);
    }
  }
);
}