Program: 112822
Project: 112822
Buggy source:
@Test public void test0() throws HSException {
  Minion minion=board.data_.getMinion_p0(0);
  HearthTreeNode ret=minion.attack(0,1,0,board,deck);
  assertFalse(ret == null);
  assertEquals(board.data_.getNumCards_hand(),1);
  assertEquals(board.data_.getNumMinions_p0(),2);
  assertEquals(board.data_.getNumMinions_p1(),2);
  assertEquals(board.data_.getMana_p0(),8);
  assertEquals(board.data_.getMana_p1(),8);
  assertEquals(board.data_.getHero_p0().getHealth(),30);
  assertEquals(board.data_.getHero_p1().getHealth(),28);
  assertEquals(board.data_.getMinion_p0(0).getHealth(),2);
  assertEquals(board.data_.getMinion_p0(1).getHealth(),7);
  assertEquals(board.data_.getMinion_p1(0).getHealth(),2);
  assertEquals(board.data_.getMinion_p1(1).getHealth(),7);
  assertEquals(board.data_.getMinion_p0(0).getAttack(),2);
  assertEquals(board.data_.getMinion_p0(1).getAttack(),7);
  assertEquals(board.data_.getMinion_p1(0).getAttack(),2);
  assertEquals(board.data_.getMinion_p1(1).getAttack(),7);
  Hero hero=board.data_.getHero_p0();
  ret=hero.useHeroAbility(0,1,0,board,deck);
  assertEquals(board.data_.getNumCards_hand(),1);
  assertEquals(board.data_.getNumMinions_p0(),2);
  assertEquals(board.data_.getNumMinions_p1(),2);
  assertEquals(board.data_.getMana_p0(),6);
  assertEquals(board.data_.getMana_p1(),8);
  assertEquals(board.data_.getHero_p0().getHealth(),30);
  assertEquals(board.data_.getHero_p1().getHealth(),30);
  assertEquals(board.data_.getMinion_p0(0).getHealth(),2);
  assertEquals(board.data_.getMinion_p0(1).getHealth(),7);
  assertEquals(board.data_.getMinion_p1(0).getHealth(),2);
  assertEquals(board.data_.getMinion_p1(1).getHealth(),7);
  assertEquals(board.data_.getMinion_p0(0).getAttack(),2);
  assertEquals(board.data_.getMinion_p0(1).getAttack(),7);
  assertEquals(board.data_.getMinion_p1(0).getAttack(),2);
  assertEquals(board.data_.getMinion_p1(1).getAttack(),7);
  minion.hasAttacked(false);
  ret=minion.attack(0,1,2,board,deck);
  assertEquals(board.data_.getNumCards_hand(),1);
  assertEquals(board.data_.getNumMinions_p0(),2);
  assertEquals(board.data_.getNumMinions_p1(),2);
  assertEquals(board.data_.getMana_p0(),6);
  assertEquals(board.data_.getMana_p1(),8);
  assertEquals(board.data_.getHero_p0().getHealth(),30);
  assertEquals(board.data_.getHero_p1().getHealth(),30);
  assertEquals(board.data_.getMinion_p0(0).getHealth(),0);
  assertEquals(board.data_.getMinion_p0(1).getHealth(),7);
  assertEquals(board.data_.getMinion_p1(0).getHealth(),2);
  assertEquals(board.data_.getMinion_p1(1).getHealth(),5);
  assertEquals(board.data_.getMinion_p0(0).getAttack(),2);
  assertEquals(board.data_.getMinion_p0(1).getAttack(),6);
  assertEquals(board.data_.getMinion_p1(0).getAttack(),2);
  assertEquals(board.data_.getMinion_p1(1).getAttack(),7);
  minion.hasAttacked(false);
  ret=hero.useHeroAbility(0,1,2,board,deck);
  assertEquals(board.data_.getNumCards_hand(),1);
  assertEquals(board.data_.getNumMinions_p0(),2);
  assertEquals(board.data_.getNumMinions_p1(),2);
  assertEquals(board.data_.getMana_p0(),4);
  assertEquals(board.data_.getMana_p1(),8);
  assertEquals(board.data_.getHero_p0().getHealth(),30);
  assertEquals(board.data_.getHero_p1().getHealth(),30);
  assertEquals(board.data_.getMinion_p0(0).getHealth(),0);
  assertEquals(board.data_.getMinion_p0(1).getHealth(),7);
  assertEquals(board.data_.getMinion_p1(0).getHealth(),2);
  assertEquals(board.data_.getMinion_p1(1).getHealth(),7);
  assertEquals(board.data_.getMinion_p0(0).getAttack(),2);
  assertEquals(board.data_.getMinion_p0(1).getAttack(),6);
  assertEquals(board.data_.getMinion_p1(0).getAttack(),2);
  assertEquals(board.data_.getMinion_p1(1).getAttack(),7);
}

Fixed version (ground truth):
@Test public void test0() throws HSException {
  Minion minion=board.data_.getMinion_p0(0);
  HearthTreeNode ret=minion.attack(0,1,0,board,deck);
  assertFalse(ret == null);
  assertEquals(board.data_.getNumCards_hand(),0);
  assertEquals(board.data_.getNumMinions_p0(),2);
  assertEquals(board.data_.getNumMinions_p1(),2);
  assertEquals(board.data_.getMana_p0(),8);
  assertEquals(board.data_.getMana_p1(),8);
  assertEquals(board.data_.getHero_p0().getHealth(),30);
  assertEquals(board.data_.getHero_p1().getHealth(),26);
  assertEquals(board.data_.getMinion_p0(0).getHealth(),5);
  assertEquals(board.data_.getMinion_p0(1).getHealth(),5);
  assertEquals(board.data_.getMinion_p1(0).getHealth(),5);
  assertEquals(board.data_.getMinion_p1(1).getHealth(),5);
  assertEquals(board.data_.getMinion_p0(0).getAttack(),4);
  assertEquals(board.data_.getMinion_p0(1).getAttack(),4);
  assertEquals(board.data_.getMinion_p1(0).getAttack(),4);
  assertEquals(board.data_.getMinion_p1(1).getAttack(),4);
  Hero hero=board.data_.getHero_p0();
  ret=hero.useHeroAbility(0,1,0,board,deck);
  assertEquals(board.data_.getNumCards_hand(),0);
  assertEquals(board.data_.getNumMinions_p0(),2);
  assertEquals(board.data_.getNumMinions_p1(),2);
  assertEquals(board.data_.getMana_p0(),6);
  assertEquals(board.data_.getMana_p1(),8);
  assertEquals(board.data_.getHero_p0().getHealth(),30);
  assertEquals(board.data_.getHero_p1().getHealth(),28);
  assertEquals(board.data_.getMinion_p0(0).getHealth(),5);
  assertEquals(board.data_.getMinion_p0(1).getHealth(),5);
  assertEquals(board.data_.getMinion_p1(0).getHealth(),5);
  assertEquals(board.data_.getMinion_p1(1).getHealth(),5);
  assertEquals(board.data_.getMinion_p0(0).getAttack(),4);
  assertEquals(board.data_.getMinion_p0(1).getAttack(),4);
  assertEquals(board.data_.getMinion_p1(0).getAttack(),4);
  assertEquals(board.data_.getMinion_p1(1).getAttack(),4);
  minion.hasAttacked(false);
  ret=minion.attack(0,1,2,board,deck);
  assertEquals(board.data_.getNumCards_hand(),0);
  assertEquals(board.data_.getNumMinions_p0(),2);
  assertEquals(board.data_.getNumMinions_p1(),2);
  assertEquals(board.data_.getMana_p0(),6);
  assertEquals(board.data_.getMana_p1(),8);
  assertEquals(board.data_.getHero_p0().getHealth(),30);
  assertEquals(board.data_.getHero_p1().getHealth(),28);
  assertEquals(board.data_.getMinion_p0(0).getHealth(),1);
  assertEquals(board.data_.getMinion_p0(1).getHealth(),5);
  assertEquals(board.data_.getMinion_p1(0).getHealth(),5);
  assertEquals(board.data_.getMinion_p1(1).getHealth(),1);
  assertEquals(board.data_.getMinion_p0(0).getAttack(),4);
  assertEquals(board.data_.getMinion_p0(1).getAttack(),4);
  assertEquals(board.data_.getMinion_p1(0).getAttack(),4);
  assertEquals(board.data_.getMinion_p1(1).getAttack(),4);
  minion.hasAttacked(false);
  ret=hero.useHeroAbility(0,1,2,board,deck);
  assertEquals(board.data_.getNumCards_hand(),0);
  assertEquals(board.data_.getNumMinions_p0(),2);
  assertEquals(board.data_.getNumMinions_p1(),2);
  assertEquals(board.data_.getMana_p0(),4);
  assertEquals(board.data_.getMana_p1(),8);
  assertEquals(board.data_.getHero_p0().getHealth(),30);
  assertEquals(board.data_.getHero_p1().getHealth(),28);
  assertEquals(board.data_.getMinion_p0(0).getHealth(),1);
  assertEquals(board.data_.getMinion_p0(1).getHealth(),5);
  assertEquals(board.data_.getMinion_p1(0).getHealth(),5);
  assertEquals(board.data_.getMinion_p1(1).getHealth(),3);
  assertEquals(board.data_.getMinion_p0(0).getAttack(),4);
  assertEquals(board.data_.getMinion_p0(1).getAttack(),4);
  assertEquals(board.data_.getMinion_p1(0).getAttack(),4);
  assertEquals(board.data_.getMinion_p1(1).getAttack(),4);
}