Java poker implementation
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

StandardHandTest.java 5.0KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163
  1. /*
  2. * StandardHandTest.java
  3. * JUnit 4.x based test
  4. *
  5. * Created on 26 July 2007, 21:14
  6. */
  7. package com.md87.cardgame;
  8. import com.md87.cardgame.hands.StandardHand;
  9. import org.junit.After;
  10. import org.junit.AfterClass;
  11. import org.junit.Before;
  12. import org.junit.BeforeClass;
  13. import org.junit.Test;
  14. import static org.junit.Assert.*;
  15. /**
  16. *
  17. * @author Chris
  18. */
  19. public class StandardHandTest {
  20. public StandardHandTest() {
  21. }
  22. @BeforeClass
  23. public static void setUpClass() throws Exception {
  24. }
  25. @AfterClass
  26. public static void tearDownClass() throws Exception {
  27. }
  28. @Before
  29. public void setUp() throws Exception {
  30. }
  31. @After
  32. public void tearDown() throws Exception {
  33. }
  34. @Test
  35. public void compareToFlushes() {
  36. Deck a = new Deck();
  37. Deck b = new Deck();
  38. Deck c = new Deck();
  39. Deck d = new Deck();
  40. c.add(new Card(Suit.CLUBS, Rank.ACE));
  41. c.add(new Card(Suit.CLUBS, Rank.TEN));
  42. c.add(new Card(Suit.CLUBS, Rank.SEVEN));
  43. c.add(new Card(Suit.CLUBS, Rank.DEUCE));
  44. b.addAll(c);
  45. b.add(new Card(Suit.CLUBS, Rank.THREE));
  46. b.add(new Card(Suit.HEARTS, Rank.ACE));
  47. a.addAll(c);
  48. a.add(new Card(Suit.CLUBS, Rank.KING));
  49. a.add(new Card(Suit.DIAMONDS, Rank.KING));
  50. d.addAll(c);
  51. d.add(new Card(Suit.CLUBS, Rank.THREE));
  52. d.add(new Card(Suit.HEARTS, Rank.THREE));
  53. assertTrue("b < a", new StandardHand(b).compareTo(new StandardHand(a)) < 0);
  54. assertTrue("b = b", new StandardHand(b).compareTo(new StandardHand(b)) == 0);
  55. assertTrue("b = d", new StandardHand(b).compareTo(new StandardHand(d)) == 0);
  56. assertTrue("d < a", new StandardHand(d).compareTo(new StandardHand(a)) < 0);
  57. }
  58. @Test
  59. public void checkKickers() {
  60. Deck a = new Deck();
  61. a.add(new Card(Suit.CLUBS, Rank.KING));
  62. a.add(new Card(Suit.DIAMONDS, Rank.JACK));
  63. a.add(new Card(Suit.CLUBS, Rank.QUEEN));
  64. a.add(new Card(Suit.DIAMONDS, Rank.ACE));
  65. a.add(new Card(Suit.CLUBS, Rank.SEVEN));
  66. a.add(new Card(Suit.DIAMONDS, Rank.SIX));
  67. a.add(new Card(Suit.CLUBS, Rank.FIVE));
  68. StandardHand h = new StandardHand(a);
  69. assertEquals(h.getKickers().size(), 5);
  70. }
  71. @Test
  72. public void checkFlushes() {
  73. Deck a = new Deck();
  74. a.add(new Card(Suit.CLUBS, Rank.ACE));
  75. a.add(new Card(Suit.CLUBS, Rank.KING));
  76. a.add(new Card(Suit.CLUBS, Rank.JACK));
  77. a.add(new Card(Suit.CLUBS, Rank.TEN));
  78. a.add(new Card(Suit.CLUBS, Rank.EIGHT));
  79. a.add(new Card(Suit.CLUBS, Rank.SEVEN));
  80. a.add(new Card(Suit.HEARTS, Rank.ACE));
  81. Deck b = new Deck();
  82. b.addAll(a);
  83. b.remove(6);
  84. b.remove(5);
  85. StandardHand h = new StandardHand(a);
  86. assertEquals("size = 5", h.getDeck().size(), 5);
  87. h.getDeck().removeAll(b);
  88. assertTrue("deck is correct", h.getDeck().isEmpty());
  89. }
  90. @Test
  91. public void checkFlushes2() {
  92. Deck a = new Deck();
  93. a.add(new Card(Suit.SPADES, Rank.SIX));
  94. a.add(new Card(Suit.SPADES, Rank.THREE));
  95. a.add(new Card(Suit.SPADES, Rank.FOUR));
  96. a.add(new Card(Suit.SPADES, Rank.JACK));
  97. a.add(new Card(Suit.HEARTS, Rank.QUEEN));
  98. a.add(new Card(Suit.SPADES, Rank.QUEEN));
  99. a.add(new Card(Suit.CLUBS, Rank.THREE));
  100. Deck b = new Deck();
  101. b.add(new Card(Suit.SPADES, Rank.KING));
  102. b.add(new Card(Suit.SPADES, Rank.DEUCE));
  103. b.add(new Card(Suit.SPADES, Rank.FOUR));
  104. b.add(new Card(Suit.SPADES, Rank.JACK));
  105. b.add(new Card(Suit.HEARTS, Rank.QUEEN));
  106. b.add(new Card(Suit.SPADES, Rank.QUEEN));
  107. b.add(new Card(Suit.CLUBS, Rank.THREE));
  108. StandardHand ha = new StandardHand(a);
  109. StandardHand hb = new StandardHand(b);
  110. assertTrue("ha > hb", ha.compareTo(hb) > 0);
  111. }
  112. @Test
  113. public void checkNoPair() {
  114. Deck a = new Deck();
  115. a.add(new Card(Suit.DIAMONDS, Rank.NINE));
  116. a.add(new Card(Suit.HEARTS, Rank.QUEEN));
  117. a.add(new Card(Suit.SPADES, Rank.TEN));
  118. a.add(new Card(Suit.HEARTS, Rank.FIVE));
  119. a.add(new Card(Suit.SPADES, Rank.THREE));
  120. Deck b = new Deck(a);
  121. a.add(new Card(Suit.DIAMONDS, Rank.DEUCE));
  122. a.add(new Card(Suit.SPADES, Rank.ACE));
  123. b.add(new Card(Suit.CLUBS, Rank.DEUCE));
  124. b.add(new Card(Suit.HEARTS, Rank.EIGHT));
  125. StandardHand ha = new StandardHand(a);
  126. StandardHand hb = new StandardHand(b);
  127. assertEquals("Ranking = no pair", ha.getBestRank(), StandardHand.Ranking.NO_PAIR);
  128. assertEquals("Ranking = no pair", hb.getBestRank(), StandardHand.Ranking.NO_PAIR);
  129. assertEquals("Kickers = 5", ha.getKickers().size(), 5);
  130. assertEquals("Kickers = 5", hb.getKickers().size(), 5);
  131. assertTrue("ha > hb", ha.compareTo(hb) > 0);
  132. }
  133. }