Program: 64529
Project: 64529
Buggy source:
public void test(){
  if (policyClassToTest == null || !Helper.classIsSubclass(policyClassToTest,CacheInvalidationPolicy.class)) {
    throwError("String_Node_Str");
  }
  if (policyClassToTest.equals(DailyCacheInvalidationPolicy.class)) {
    DailyCacheInvalidationPolicy policy=new DailyCacheInvalidationPolicy();
    DailyCacheInvalidationPolicy policyClone=(DailyCacheInvalidationPolicy)policy.clone();
    assertNotNull("String_Node_Str",policyClone);
    assertEquals("String_Node_Str",policy.getClass(),policyClone.getClass());
    assertEquals("String_Node_Str",policy.getExpiryTime(),policyClone.getExpiryTime());
  }
 else   if (policyClassToTest.equals(NoExpiryCacheInvalidationPolicy.class)) {
    NoExpiryCacheInvalidationPolicy policy=new NoExpiryCacheInvalidationPolicy();
    NoExpiryCacheInvalidationPolicy policyClone=(NoExpiryCacheInvalidationPolicy)policy.clone();
    assertNotNull("String_Node_Str",policyClone);
    assertEquals("String_Node_Str",policy.getClass(),policyClone.getClass());
  }
 else   if (policyClassToTest.equals(TimeToLiveCacheInvalidationPolicy.class)) {
    TimeToLiveCacheInvalidationPolicy policy=new TimeToLiveCacheInvalidationPolicy();
    TimeToLiveCacheInvalidationPolicy policyClone=(TimeToLiveCacheInvalidationPolicy)policy.clone();
    assertNotNull("String_Node_Str",policyClone);
    assertEquals("String_Node_Str",policy.getClass(),policyClone.getClass());
    assertEquals("String_Node_Str",policy.getTimeToLive(),policyClone.getTimeToLive());
  }
 else {
    throwError("String_Node_Str" + this.policyClassToTest);
  }
}

Fixed version (ground truth):
public void test(){
  if (policyClassToTest == null || !Helper.classIsSubclass(policyClassToTest,CacheInvalidationPolicy.class)) {
    throwError("String_Node_Str");
  }
  if (policyClassToTest.equals(DailyCacheInvalidationPolicy.class)) {
    DailyCacheInvalidationPolicy policy=new DailyCacheInvalidationPolicy(1,2,3,4);
    DailyCacheInvalidationPolicy policyClone=(DailyCacheInvalidationPolicy)policy.clone();
    assertNotNull("String_Node_Str",policyClone);
    assertFalse("String_Node_Str",policy == policyClone);
    assertEquals("String_Node_Str",policy.getClass(),policyClone.getClass());
    assertEquals("String_Node_Str",policy.getExpiryTime().getTimeInMillis(),policyClone.getExpiryTime().getTimeInMillis());
    assertEquals("String_Node_Str",1,policyClone.getExpiryTime().get(Calendar.HOUR));
    assertEquals("String_Node_Str",2,policyClone.getExpiryTime().get(Calendar.MINUTE));
    assertEquals("String_Node_Str",3,policyClone.getExpiryTime().get(Calendar.SECOND));
    assertEquals("String_Node_Str",4,policyClone.getExpiryTime().get(Calendar.MILLISECOND));
  }
 else   if (policyClassToTest.equals(NoExpiryCacheInvalidationPolicy.class)) {
    NoExpiryCacheInvalidationPolicy policy=new NoExpiryCacheInvalidationPolicy();
    NoExpiryCacheInvalidationPolicy policyClone=(NoExpiryCacheInvalidationPolicy)policy.clone();
    assertNotNull("String_Node_Str",policyClone);
    assertFalse("String_Node_Str",policy == policyClone);
    assertEquals("String_Node_Str",policy.getClass(),policyClone.getClass());
  }
 else   if (policyClassToTest.equals(TimeToLiveCacheInvalidationPolicy.class)) {
    TimeToLiveCacheInvalidationPolicy policy=new TimeToLiveCacheInvalidationPolicy();
    TimeToLiveCacheInvalidationPolicy policyClone=(TimeToLiveCacheInvalidationPolicy)policy.clone();
    assertNotNull("String_Node_Str",policyClone);
    assertFalse("String_Node_Str",policy == policyClone);
    assertEquals("String_Node_Str",policy.getClass(),policyClone.getClass());
    assertEquals("String_Node_Str",policy.getTimeToLive(),policyClone.getTimeToLive());
  }
 else {
    throwError("String_Node_Str" + this.policyClassToTest);
  }
}