assertTrue(root.children.get(0).isAlphaPruned());
assertTrue(root.children.get(1).isAlphaPruned());
}
public void testBestMoveWhenRootDoesNotStartTrick() {
Deal game = new Deal(NoTrump.i());
game.getPlayer(Direction.WEST_DEPRECATED).init(new Card[] { Nine.of(Clubs.i()), Four.of(Spades.i()) });
game.getPlayer(Direction.NORTH_DEPRECATED).init(new Card[] { Seven.of(Spades.i()), Queen.of(Hearts.i()) });
game.getPlayer(Direction.EAST_DEPRECATED).init(new Card[] { Three.of(Clubs.i()), Three.of(Hearts.i()) });
game.getPlayer(Direction.SOUTH_DEPRECATED).init(new Card[] { Four.of(Clubs.i()), Two.of(Spades.i()) });
game.doNextCard(0);
DoubleDummySolver s = new DoubleDummySolver(game);
s.search();
assertEquals(1, s.getBestMoves().size());
assertEquals(Queen.of(Hearts.i()), s.getBestMoves().get(0));
// triangulate
Deal game2 = new Deal(NoTrump.i());
game2.getPlayer(Direction.WEST_DEPRECATED).init(new Card[] { Nine.of(Clubs.i()), Four.of(Spades.i()) });
game2.getPlayer(Direction.NORTH_DEPRECATED).init(new Card[] { Queen.of(Hearts.i()), Seven.of(Spades.i()) }); // invert
// order
game2.getPlayer(Direction.EAST_DEPRECATED).init(new Card[] { Three.of(Clubs.i()), Three.of(Hearts.i()) });
game2.getPlayer(Direction.SOUTH_DEPRECATED).init(new Card[] { Four.of(Clubs.i()), Two.of(Spades.i()) });
game2.doNextCard(0);
DoubleDummySolver s2 = new DoubleDummySolver(game2);
s2.search();
assertEquals(1, s2.getBestMoves().size());
assertEquals(Queen.of(Hearts.i()), s2.getBestMoves().get(0));
}