Program: 112825
Project: 112825
Buggy source:
@Test public void test2() throws HSInvalidPlayerIndexException {
  Card theCard=board.data_.getCard_hand_p0(0);
  HearthTreeNode<BoardState> ret=theCard.useOn(0,0,3,board,deck);
  assertFalse(ret == null);
  assertEquals(board.data_.getNumCards_hand(),0);
  assertEquals(board.data_.getNumMinions_p0(),3);
  assertEquals(board.data_.getNumMinions_p1(),3);
  assertEquals(board.data_.getMana_p0(),5);
  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_p0(2).getHealth(),1);
  assertEquals(board.data_.getMinion_p1(0).getHealth(),1);
  assertEquals(board.data_.getMinion_p1(1).getHealth(),2);
  assertEquals(board.data_.getMinion_p1(2).getHealth(),7);
  assertEquals(board.data_.getMinion_p0(0).getAttack(),2);
  assertEquals(board.data_.getMinion_p0(1).getAttack(),7);
  assertEquals(board.data_.getMinion_p0(2).getAttack(),4);
  assertEquals(board.data_.getMinion_p1(0).getAttack(),4);
  assertEquals(board.data_.getMinion_p1(1).getAttack(),2);
  assertEquals(board.data_.getMinion_p1(2).getAttack(),7);
  assertTrue(board.data_.getMinion_p1(0).getDivineShield());
  assertTrue(board.data_.getMinion_p0(2).getDivineShield());
  Minion m1=board.data_.getMinion_p0(2);
  m1.hasAttacked(false);
  ret=m1.attack(3,1,3,board,deck);
  assertEquals(board.data_.getNumCards_hand(),0);
  assertEquals(board.data_.getNumMinions_p0(),3);
  assertEquals(board.data_.getNumMinions_p1(),3);
  assertEquals(board.data_.getMana_p0(),5);
  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_p0(2).getHealth(),1);
  assertEquals(board.data_.getMinion_p1(0).getHealth(),1);
  assertEquals(board.data_.getMinion_p1(1).getHealth(),2);
  assertEquals(board.data_.getMinion_p1(2).getHealth(),3);
  assertEquals(board.data_.getMinion_p0(0).getAttack(),2);
  assertEquals(board.data_.getMinion_p0(1).getAttack(),7);
  assertEquals(board.data_.getMinion_p0(2).getAttack(),4);
  assertEquals(board.data_.getMinion_p1(0).getAttack(),4);
  assertEquals(board.data_.getMinion_p1(1).getAttack(),2);
  assertEquals(board.data_.getMinion_p1(2).getAttack(),7);
  assertTrue(board.data_.getMinion_p1(0).getDivineShield());
  assertFalse(board.data_.getMinion_p0(2).getDivineShield());
  Minion m2=board.data_.getMinion_p0(1);
  m2.hasAttacked(false);
  ret=m2.attack(2,1,1,board,deck);
  assertEquals(board.data_.getNumCards_hand(),0);
  assertEquals(board.data_.getNumMinions_p0(),3);
  assertEquals(board.data_.getNumMinions_p1(),3);
  assertEquals(board.data_.getMana_p0(),5);
  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(),3);
  assertEquals(board.data_.getMinion_p0(2).getHealth(),1);
  assertEquals(board.data_.getMinion_p1(0).getHealth(),1);
  assertEquals(board.data_.getMinion_p1(1).getHealth(),2);
  assertEquals(board.data_.getMinion_p1(2).getHealth(),3);
  assertEquals(board.data_.getMinion_p0(0).getAttack(),2);
  assertEquals(board.data_.getMinion_p0(1).getAttack(),7);
  assertEquals(board.data_.getMinion_p0(2).getAttack(),4);
  assertEquals(board.data_.getMinion_p1(0).getAttack(),4);
  assertEquals(board.data_.getMinion_p1(1).getAttack(),2);
  assertEquals(board.data_.getMinion_p1(2).getAttack(),7);
  assertFalse(board.data_.getMinion_p1(0).getDivineShield());
  assertFalse(board.data_.getMinion_p0(2).getDivineShield());
}

Fixed version (ground truth):
@Test public void test2() throws HSInvalidPlayerIndexException {
  Card theCard=board.data_.getCard_hand_p0(0);
  HearthTreeNode<BoardState> ret=theCard.useOn(0,0,3,board,deck);
  assertFalse(ret == null);
  assertEquals(board.data_.getNumCards_hand(),0);
  assertEquals(board.data_.getNumMinions_p0(),3);
  assertEquals(board.data_.getNumMinions_p1(),3);
  assertEquals(board.data_.getMana_p0(),5);
  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_p0(2).getHealth(),1);
  assertEquals(board.data_.getMinion_p1(0).getHealth(),1);
  assertEquals(board.data_.getMinion_p1(1).getHealth(),2);
  assertEquals(board.data_.getMinion_p1(2).getHealth(),7);
  assertEquals(board.data_.getMinion_p0(0).getAttack(),2);
  assertEquals(board.data_.getMinion_p0(1).getAttack(),7);
  assertEquals(board.data_.getMinion_p0(2).getAttack(),4);
  assertEquals(board.data_.getMinion_p1(0).getAttack(),4);
  assertEquals(board.data_.getMinion_p1(1).getAttack(),2);
  assertEquals(board.data_.getMinion_p1(2).getAttack(),7);
  assertTrue(board.data_.getMinion_p1(0).getDivineShield());
  assertTrue(board.data_.getMinion_p0(2).getDivineShield());
  Minion m0=board.data_.getMinion_p0(2);
  m0.hasAttacked(false);
  ret=m0.attack(3,1,0,board,deck);
  assertEquals(board.data_.getNumCards_hand(),0);
  assertEquals(board.data_.getNumMinions_p0(),3);
  assertEquals(board.data_.getNumMinions_p1(),3);
  assertEquals(board.data_.getMana_p0(),5);
  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(),2);
  assertEquals(board.data_.getMinion_p0(1).getHealth(),7);
  assertEquals(board.data_.getMinion_p0(2).getHealth(),1);
  assertEquals(board.data_.getMinion_p1(0).getHealth(),1);
  assertEquals(board.data_.getMinion_p1(1).getHealth(),2);
  assertEquals(board.data_.getMinion_p1(2).getHealth(),7);
  assertEquals(board.data_.getMinion_p0(0).getAttack(),2);
  assertEquals(board.data_.getMinion_p0(1).getAttack(),7);
  assertEquals(board.data_.getMinion_p0(2).getAttack(),4);
  assertEquals(board.data_.getMinion_p1(0).getAttack(),4);
  assertEquals(board.data_.getMinion_p1(1).getAttack(),2);
  assertEquals(board.data_.getMinion_p1(2).getAttack(),7);
  assertTrue(board.data_.getMinion_p1(0).getDivineShield());
  assertTrue(board.data_.getMinion_p0(2).getDivineShield());
  Minion m1=board.data_.getMinion_p0(2);
  m1.hasAttacked(false);
  ret=m1.attack(3,1,3,board,deck);
  assertEquals(board.data_.getNumCards_hand(),0);
  assertEquals(board.data_.getNumMinions_p0(),3);
  assertEquals(board.data_.getNumMinions_p1(),3);
  assertEquals(board.data_.getMana_p0(),5);
  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(),2);
  assertEquals(board.data_.getMinion_p0(1).getHealth(),7);
  assertEquals(board.data_.getMinion_p0(2).getHealth(),1);
  assertEquals(board.data_.getMinion_p1(0).getHealth(),1);
  assertEquals(board.data_.getMinion_p1(1).getHealth(),2);
  assertEquals(board.data_.getMinion_p1(2).getHealth(),3);
  assertEquals(board.data_.getMinion_p0(0).getAttack(),2);
  assertEquals(board.data_.getMinion_p0(1).getAttack(),7);
  assertEquals(board.data_.getMinion_p0(2).getAttack(),4);
  assertEquals(board.data_.getMinion_p1(0).getAttack(),4);
  assertEquals(board.data_.getMinion_p1(1).getAttack(),2);
  assertEquals(board.data_.getMinion_p1(2).getAttack(),7);
  assertTrue(board.data_.getMinion_p1(0).getDivineShield());
  assertFalse(board.data_.getMinion_p0(2).getDivineShield());
  Minion m2=board.data_.getMinion_p0(1);
  m2.hasAttacked(false);
  ret=m2.attack(2,1,1,board,deck);
  assertEquals(board.data_.getNumCards_hand(),0);
  assertEquals(board.data_.getNumMinions_p0(),3);
  assertEquals(board.data_.getNumMinions_p1(),3);
  assertEquals(board.data_.getMana_p0(),5);
  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(),2);
  assertEquals(board.data_.getMinion_p0(1).getHealth(),3);
  assertEquals(board.data_.getMinion_p0(2).getHealth(),1);
  assertEquals(board.data_.getMinion_p1(0).getHealth(),1);
  assertEquals(board.data_.getMinion_p1(1).getHealth(),2);
  assertEquals(board.data_.getMinion_p1(2).getHealth(),3);
  assertEquals(board.data_.getMinion_p0(0).getAttack(),2);
  assertEquals(board.data_.getMinion_p0(1).getAttack(),7);
  assertEquals(board.data_.getMinion_p0(2).getAttack(),4);
  assertEquals(board.data_.getMinion_p1(0).getAttack(),4);
  assertEquals(board.data_.getMinion_p1(1).getAttack(),2);
  assertEquals(board.data_.getMinion_p1(2).getAttack(),7);
  assertFalse(board.data_.getMinion_p1(0).getDivineShield());
  assertFalse(board.data_.getMinion_p0(2).getDivineShield());
  Minion m3=board.data_.getMinion_p0(2);
  m3.hasAttacked(false);
  ret=m3.attack(3,1,3,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(),5);
  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(),2);
  assertEquals(board.data_.getMinion_p0(1).getHealth(),3);
  assertEquals(board.data_.getMinion_p1(0).getHealth(),1);
  assertEquals(board.data_.getMinion_p1(1).getHealth(),2);
  assertEquals(board.data_.getMinion_p0(0).getAttack(),2);
  assertEquals(board.data_.getMinion_p0(1).getAttack(),7);
  assertEquals(board.data_.getMinion_p1(0).getAttack(),4);
  assertEquals(board.data_.getMinion_p1(1).getAttack(),2);
  assertFalse(board.data_.getMinion_p1(0).getDivineShield());
}