}
public void testIfAllMovesLoseSameChooseLowestValueCard() {
Deal game = new Deal(NoTrump.i());
game.getPlayer(Direction.WEST_DEPRECATED).init(new Card[] { Ace.of(Spades.i()), King.of(Spades.i()) });
game.getPlayer(Direction.NORTH_DEPRECATED).init(new Card[] { Six.of(Diamonds.i()), Four.of(Hearts.i()) });
game.getPlayer(Direction.EAST_DEPRECATED).init(new Card[] { Ten.of(Hearts.i()), Three.of(Hearts.i()) });
game.getPlayer(Direction.SOUTH_DEPRECATED).init(new Card[] { Six.of(Hearts.i()), Two.of(Hearts.i()) });
game.setNextToPlay(Direction.WEST_DEPRECATED);
game.play(Ace.of(Spades.i()));
DoubleDummySolver pruned = new DoubleDummySolver(game.duplicate());
pruned.search();
assertEquals(Four.of(Hearts.i()), pruned.getRoot().getBestMove().getCardPlayed());
Deal gameWithCardsFlipped = new Deal(NoTrump.i());
gameWithCardsFlipped.getPlayer(Direction.WEST_DEPRECATED).init(
new Card[] { Ace.of(Spades.i()), King.of(Spades.i()) });
gameWithCardsFlipped.getPlayer(Direction.NORTH_DEPRECATED).init(
new Card[] { Four.of(Hearts.i()), Six.of(Diamonds.i()) });
gameWithCardsFlipped.getPlayer(Direction.EAST_DEPRECATED).init(
new Card[] { Ten.of(Hearts.i()), Three.of(Hearts.i()) });
gameWithCardsFlipped.getPlayer(Direction.SOUTH_DEPRECATED).init(
new Card[] { Six.of(Hearts.i()), Two.of(Hearts.i()) });
gameWithCardsFlipped.setNextToPlay(Direction.WEST_DEPRECATED);
gameWithCardsFlipped.play(Ace.of(Spades.i()));
DoubleDummySolver triangulate = new DoubleDummySolver(gameWithCardsFlipped.duplicate());
//triangulate.pruneAlphaBeta = false;
triangulate.search();
assertEquals(Four.of(Hearts.i()), triangulate.getRoot().getBestMove().getCardPlayed());
}