Package org.gnubridge.core.bidding

Source Code of org.gnubridge.core.bidding.PointCalculatorTest

package org.gnubridge.core.bidding;

import junit.framework.TestCase;

import org.gnubridge.core.Hand;
import org.gnubridge.core.deck.Ace;
import org.gnubridge.core.deck.Clubs;
import org.gnubridge.core.deck.Diamonds;
import org.gnubridge.core.deck.Hearts;
import org.gnubridge.core.deck.Jack;
import org.gnubridge.core.deck.King;
import org.gnubridge.core.deck.Queen;
import org.gnubridge.core.deck.Spades;
import org.gnubridge.core.deck.Three;
import org.gnubridge.core.deck.Two;

public class PointCalculatorTest extends TestCase {
  public void testHighCardPoints() {
    PointCalculator dh = new PointCalculator(new Hand(Ace.of(Diamonds.i()), Two.of(Spades.i()),
        King.of(Hearts.i()), Queen.of(Hearts.i()), Jack.of(Clubs.i())));
    assertEquals(10, dh.getHighCardPoints());
  }

  public void testGetDistributionalPoints() {
    PointCalculator dh = new PointCalculator(new Hand(Ace.of(Diamonds.i()), Two.of(Spades.i()),
        King.of(Hearts.i()), Three.of(Spades.i()), Queen.of(Hearts.i()), Jack.of(Hearts.i())));
    assertEquals(6, dh.getDistributionalPoints());
  }

  public void testGetCombinedPointsFlawedColors() {
    PointCalculator dh = new PointCalculator(new Hand(Ace.of(Diamonds.i()), King.of(Clubs.i()),
        Jack.of(Spades.i()), Queen.of(Hearts.i()), Three.of(Spades.i()), Jack.of(Hearts.i())));
    assertEquals((4 + 2) + 3 + 1 + 3, dh.getCombinedPoints());
  }

  //A balanced hand contains no singleton or void and at most one doubleton

  public void testBalancedHand() {
    Hand h = new Hand("A,K,4,3", "K,J,9,2", "6,2", "Q,9,7");
    PointCalculator pc = new PointCalculator(h);
    assertTrue(pc.isBalanced());
  }

  public void testImbalancedHandTwoDoubletons() {
    Hand h = new Hand("A,K,4,3", "K,J,9,7,2", "6,2", "Q,9");
    PointCalculator pc = new PointCalculator(h);
    assertFalse(pc.isBalanced());
  }

  public void testImbalancedHandSingleton() {
    Hand h = new Hand("A,K,4,3", "K,J,9,2", "6", "Q,9,7,3");
    PointCalculator pc = new PointCalculator(h);
    assertFalse(pc.isBalanced());
  }

  public void testImbalancedHandVoid() {
    Hand h = new Hand("A,K,Q,9,7,4,3", "K,J,9,2", "6,2");
    PointCalculator pc = new PointCalculator(h);
    assertFalse(pc.isBalanced());
  }

  //almost balanced hand patterns such as 4-4-4-1, 5-4-2-2, 5-4-3-1, 6-3-2-2 and 6-3-3-1 shape
  public void testTameHand_4_4_4_1() {
    Hand h = new Hand("A,K,4,3", "K,J,9,2", "2", "Q,9,7,6");
    PointCalculator pc = new PointCalculator(h);
    assertTrue(pc.isTame());
  }

  public void testTameHand_4_4_4_1_ignoreOrder() {
    Hand h = new Hand("2", "A,K,4,3", "K,J,9,2", "Q,9,7,6");
    PointCalculator pc = new PointCalculator(h);
    assertTrue(pc.isTame());
  }

  public void testTameHand_5_4_2_2() {
    Hand h = new Hand("A,K,4,3,2", "K,J,9,2", "3,2", "Q,9");
    PointCalculator pc = new PointCalculator(h);
    assertTrue(pc.isTame());
  }

  public void testTameHand_5_4_3_1() {
    Hand h = new Hand("A,3,2", "A,K,4,3,2", "K,J,9,2", "Q");
    PointCalculator pc = new PointCalculator(h);
    assertTrue(pc.isTame());
  }

  public void testTameHand_6_3_2_2() {
    Hand h = new Hand("A,K,10,7,3,2", "A,K,4", "K,2", "Q,J");
    PointCalculator pc = new PointCalculator(h);
    assertTrue(pc.isTame());
  }

  public void testTameHand_6_3_3_1() {
    Hand h = new Hand("A,K,10,7,3,2", "A,K,4", "K,J,2", "J");
    PointCalculator pc = new PointCalculator(h);
    assertTrue(pc.isTame());
  }

  public void testRP1() {
    Hand h = RPQuizzes.Basics.Lesson2.hand1();
    PointCalculator pc = new PointCalculator(h);
    assertEquals(16, pc.getCombinedPoints());
  }

  public void testRP2() {
    Hand h = RPQuizzes.Basics.Lesson2.hand2();
    PointCalculator pc = new PointCalculator(h);
    assertEquals(12, pc.getCombinedPoints());
  }

  public void testRP3() {
    Hand h = RPQuizzes.Basics.Lesson2.hand3();
    PointCalculator pc = new PointCalculator(h);
    assertEquals(14, pc.getCombinedPoints());
  }

  public void testRP4() {
    Hand h = RPQuizzes.Basics.Lesson2.hand4();
    PointCalculator pc = new PointCalculator(h);
    assertEquals(15, pc.getCombinedPoints());
  }

  public void testRP5() {
    Hand h = RPQuizzes.Basics.Lesson2.hand5();
    PointCalculator pc = new PointCalculator(h);
    assertEquals(18, pc.getCombinedPoints());
    assertEquals(17, pc.getHighCardPoints());
  }

  public void testRP6() {
    Hand h = RPQuizzes.Basics.Lesson2.hand6();
    PointCalculator pc = new PointCalculator(h);
    assertEquals(18, pc.getCombinedPoints());
  }

  public void testRP7() {
    Hand h = RPQuizzes.Basics.Lesson2.hand7();
    PointCalculator pc = new PointCalculator(h);
    assertEquals(20, pc.getCombinedPoints());
  }

  public void testRP8() {
    Hand h = RPQuizzes.Basics.Lesson2.hand8();
    PointCalculator pc = new PointCalculator(h);
    assertEquals(16, pc.getCombinedPoints());
  }

  public void testRP9() {
    Hand h = RPQuizzes.Basics.Lesson2.hand9();
    PointCalculator pc = new PointCalculator(h);
    assertEquals(19, pc.getCombinedPoints());
  }

  public void testRP10() {
    Hand h = RPQuizzes.Basics.Lesson2.hand10();
    PointCalculator pc = new PointCalculator(h);
    assertEquals(13, pc.getCombinedPoints());
  }

  public void testRP11() {
    Hand h = RPQuizzes.Basics.Lesson2.hand11();
    PointCalculator pc = new PointCalculator(h);
    assertEquals(17, pc.getHighCardPoints());
    assertEquals(18, pc.getCombinedPoints());
  }

  public void testRP12() {
    Hand h = RPQuizzes.Basics.Lesson2.hand12();
    PointCalculator pc = new PointCalculator(h);
    assertEquals(14, pc.getCombinedPoints());
  }
}
TOP

Related Classes of org.gnubridge.core.bidding.PointCalculatorTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.