Program: 159888
Project: 159888
Buggy source:
/** 
 * Tests that copy won't have level up counters and will have zero level.
 */
@Test public void testCopyCreatureWithLevelUpAbility(){
  addCard(Constants.Zone.BATTLEFIELD,playerA,"String_Node_Str");
  addCard(Constants.Zone.BATTLEFIELD,playerA,"String_Node_Str",12);
  addCard(Constants.Zone.BATTLEFIELD,playerB,"String_Node_Str",2);
  addCard(Constants.Zone.HAND,playerB,"String_Node_Str");
  for (int i=0; i < 12; i++) {
    activateAbility(1,Constants.PhaseStep.PRECOMBAT_MAIN,playerA,"String_Node_Str");
  }
  castSpell(2,Constants.PhaseStep.PRECOMBAT_MAIN,playerB,"String_Node_Str");
  setStopAt(2,Constants.PhaseStep.END_TURN);
  execute();
  assertPermanentCount(playerA,"String_Node_Str",1);
  assertPermanentCount(playerB,"String_Node_Str",1);
  Permanent master=getPermanent("String_Node_Str",playerA.getId());
  Permanent masterCopied=getPermanent("String_Node_Str",playerB.getId());
  Assert.assertEquals("String_Node_Str",9,master.getPower().getValue());
  Assert.assertEquals("String_Node_Str",9,master.getToughness().getValue());
  Assert.assertTrue(master.getAbilities().contains(LifelinkAbility.getInstance()));
  Assert.assertTrue(master.getAbilities().contains(new IndestructibleAbility()));
  Assert.assertEquals("String_Node_Str",3,masterCopied.getPower().getValue());
  Assert.assertEquals("String_Node_Str",3,masterCopied.getToughness().getValue());
  Assert.assertFalse(masterCopied.getAbilities().contains(LifelinkAbility.getInstance()));
  Assert.assertFalse(masterCopied.getAbilities().contains(new IndestructibleAbility()));
}

Fixed version (ground truth):
/** 
 * Tests that copy won't have level up counters and will have zero level.
 */
@Test public void testCopyCreatureWithLevelUpAbility(){
  addCard(Constants.Zone.BATTLEFIELD,playerA,"String_Node_Str");
  addCard(Constants.Zone.BATTLEFIELD,playerA,"String_Node_Str",12);
  addCard(Constants.Zone.BATTLEFIELD,playerB,"String_Node_Str",2);
  addCard(Constants.Zone.HAND,playerB,"String_Node_Str");
  for (int i=0; i < 12; i++) {
    activateAbility(1,Constants.PhaseStep.PRECOMBAT_MAIN,playerA,"String_Node_Str");
  }
  castSpell(2,Constants.PhaseStep.PRECOMBAT_MAIN,playerB,"String_Node_Str");
  setStopAt(2,Constants.PhaseStep.END_TURN);
  execute();
  assertPermanentCount(playerA,"String_Node_Str",1);
  assertPermanentCount(playerB,"String_Node_Str",1);
  Permanent master=getPermanent("String_Node_Str",playerA.getId());
  Permanent masterCopied=getPermanent("String_Node_Str",playerB.getId());
  Assert.assertEquals("String_Node_Str",9,master.getPower().getValue());
  Assert.assertEquals("String_Node_Str",9,master.getToughness().getValue());
  Assert.assertTrue(master.getAbilities().contains(LifelinkAbility.getInstance()));
  Assert.assertTrue(master.getAbilities().containsRule(new IndestructibleAbility()));
  Assert.assertEquals("String_Node_Str",3,masterCopied.getPower().getValue());
  Assert.assertEquals("String_Node_Str",3,masterCopied.getToughness().getValue());
  Assert.assertFalse(masterCopied.getAbilities().contains(LifelinkAbility.getInstance()));
  Assert.assertFalse(masterCopied.getAbilities().containsRule(new IndestructibleAbility()));
}