Program: 112753
Project: 112753
Buggy source:
@Before public void setup(){
  board=new HearthTreeNode(new BoardModel(new Mage(),new TestHero()));
  Minion minion0_0=new ChillwindYeti();
  Minion minion0_1=new BoulderfistOgre();
  Minion minion1_0=new ChillwindYeti();
  Minion minion1_1=new BoulderfistOgre();
  board.data_.placeCardHandCurrentPlayer(minion0_1);
  board.data_.placeCardHandCurrentPlayer(minion0_0);
  board.data_.placeCardHandWaitingPlayer(minion1_1);
  board.data_.placeCardHandWaitingPlayer(minion1_0);
  Card cards[]=new Card[10];
  for (int index=0; index < 10; ++index) {
    cards[index]=new TheCoin();
  }
  deck=new Deck(cards);
  board.data_.getCurrentPlayer().setMana((byte)9);
  board.data_.getWaitingPlayer().setMana((byte)9);
  board.data_.getCurrentPlayer().setMaxMana((byte)8);
  board.data_.getWaitingPlayer().setMaxMana((byte)8);
  HearthTreeNode tmpBoard=new HearthTreeNode(board.data_.flipPlayers());
  try {
    tmpBoard.data_.getCurrentPlayerCardHand(0).useOn(PlayerSide.CURRENT_PLAYER,tmpBoard.data_.getCurrentPlayerHero(),tmpBoard,deck,null);
    tmpBoard.data_.getCurrentPlayerCardHand(0).useOn(PlayerSide.CURRENT_PLAYER,tmpBoard.data_.getCurrentPlayerHero(),tmpBoard,deck,null);
  }
 catch (  HSException e) {
    e.printStackTrace();
  }
  board=new HearthTreeNode(tmpBoard.data_.flipPlayers());
  try {
    board.data_.getCurrentPlayerCardHand(0).useOn(PlayerSide.CURRENT_PLAYER,board.data_.getCurrentPlayerHero(),board,deck,null);
    board.data_.getCurrentPlayerCardHand(0).useOn(PlayerSide.CURRENT_PLAYER,board.data_.getCurrentPlayerHero(),board,deck,null);
  }
 catch (  HSException e) {
    e.printStackTrace();
  }
  board.data_.resetMana();
  board.data_.resetMinions();
}

Fixed version (ground truth):
@Before public void setup(){
  board=new HearthTreeNode(new BoardModel(new Mage(),new TestHero()));
  Minion minion0_0=new ChillwindYeti();
  Minion minion0_1=new BoulderfistOgre();
  Minion minion1_0=new ChillwindYeti();
  Minion minion1_1=new BoulderfistOgre();
  board.data_.placeCardHandCurrentPlayer(minion0_1);
  board.data_.placeCardHandCurrentPlayer(minion0_0);
  board.data_.placeCardHandWaitingPlayer(minion1_1);
  board.data_.placeCardHandWaitingPlayer(minion1_0);
  Card cards[]=new Card[10];
  for (int index=0; index < 10; ++index) {
    cards[index]=new TheCoin();
  }
  deck=new Deck(cards);
  board.data_.getCurrentPlayer().setMana((byte)11);
  board.data_.getWaitingPlayer().setMana((byte)11);
  board.data_.getCurrentPlayer().setMaxMana((byte)8);
  board.data_.getWaitingPlayer().setMaxMana((byte)8);
  HearthTreeNode tmpBoard=new HearthTreeNode(board.data_.flipPlayers());
  try {
    tmpBoard.data_.getCurrentPlayerCardHand(0).useOn(PlayerSide.CURRENT_PLAYER,tmpBoard.data_.getCurrentPlayerHero(),tmpBoard,deck,null);
    tmpBoard.data_.getCurrentPlayerCardHand(0).useOn(PlayerSide.CURRENT_PLAYER,tmpBoard.data_.getCurrentPlayerHero(),tmpBoard,deck,null);
  }
 catch (  HSException e) {
    e.printStackTrace();
  }
  board=new HearthTreeNode(tmpBoard.data_.flipPlayers());
  try {
    board.data_.getCurrentPlayerCardHand(0).useOn(PlayerSide.CURRENT_PLAYER,board.data_.getCurrentPlayerHero(),board,deck,null);
    board.data_.getCurrentPlayerCardHand(0).useOn(PlayerSide.CURRENT_PLAYER,board.data_.getCurrentPlayerHero(),board,deck,null);
  }
 catch (  HSException e) {
    e.printStackTrace();
  }
  board.data_.resetMana();
  board.data_.resetMinions();
}