Package org.gnubridge.core.bidding.rules

Source Code of org.gnubridge.core.bidding.rules.RespondOvercallSuitTest

package org.gnubridge.core.bidding.rules;

import static org.gnubridge.core.bidding.Bid.*;
import junit.framework.TestCase;

import org.gnubridge.core.Hand;
import org.gnubridge.core.West;
import org.gnubridge.core.bidding.Auctioneer;

public class RespondOvercallSuitTest extends TestCase {

  /**
   *   Raise partners suit
   */
  public void testBidAt2LevelWith8PointsAnd3Trumps() {
    Auctioneer a = new Auctioneer(West.i());
    a.bid(ONE_CLUBS);
    a.bid(ONE_DIAMONDS);
    a.bid(PASS);
    RespondOvercallSuit rule = new RespondOvercallSuit(a, new Hand("10,9,8,7", "K,3,2", "A,J,9", "9,5,4"));
    assertEquals(TWO_DIAMONDS, rule.getBid());
  }

  public void testRaisePartnerWith8PointsAnd3Trumps() {
    Auctioneer a = new Auctioneer(West.i());
    a.bid(ONE_CLUBS);
    a.bid(TWO_DIAMONDS);
    a.bid(PASS);
    RespondOvercallSuit rule = new RespondOvercallSuit(a, new Hand("10,9,8,7", "K,3,2", "A,J,9", "9,5,4"));
    assertEquals(THREE_DIAMONDS, rule.getBid());
  }

  public void testJumpRaisePartnerWith12To14PointsAnd3Trumps() {
    Auctioneer a = new Auctioneer(West.i());
    a.bid(ONE_CLUBS);
    a.bid(ONE_DIAMONDS);
    a.bid(PASS);
    RespondOvercallSuit rule = new RespondOvercallSuit(a, new Hand("A,9,8,7", "K,3,2", "A,J,9", "9,5,4"));
    assertEquals(THREE_DIAMONDS, rule.getBid());
  }

  public void testRaiseToGameWith15PointsAnd3TrumpsMajorSuit() {
    Auctioneer a = new Auctioneer(West.i());
    a.bid(ONE_CLUBS);
    a.bid(ONE_HEARTS);
    a.bid(PASS);
    RespondOvercallSuit rule = new RespondOvercallSuit(a, new Hand("A,K,8,7", "K,3,2", "A,J,9", "9,5,4"));
    assertEquals(FOUR_HEARTS, rule.getBid());
  }

  public void testRaiseTo4LevelWith15PointsAnd3TrumpsMinorSuit() {
    Auctioneer a = new Auctioneer(West.i());
    a.bid(ONE_CLUBS);
    a.bid(ONE_DIAMONDS);
    a.bid(PASS);
    RespondOvercallSuit rule = new RespondOvercallSuit(a, new Hand("A,K,8,7", "K,3,2", "A,J,9", "9,5,4"));
    assertEquals(FOUR_DIAMONDS, rule.getBid());
  }

  public void testReallyJumpRaisePartnerWith12To14PointsAnd3Trumps() {
    Auctioneer a = new Auctioneer(West.i());
    a.bid(ONE_CLUBS);
    a.bid(TWO_DIAMONDS);
    a.bid(PASS);
    RespondOvercallSuit rule = new RespondOvercallSuit(a, new Hand("A,9,8,7", "K,3,2", "A,J,9", "9,5,4"));
    assertEquals(FOUR_DIAMONDS, rule.getBid());
  }

  /**
   *  bid unbid own suit
   */

  public void testBidUnbidSuitAtTwoLevelWith8PointsAnd5Trumps() {
    Auctioneer a = new Auctioneer(West.i());
    a.bid(ONE_CLUBS);
    a.bid(ONE_DIAMONDS);
    a.bid(TWO_HEARTS);
    RespondOvercallSuit rule = new RespondOvercallSuit(a, new Hand("A,10,9,8,7", "K,3,2", "J,9", "9,5,4"));
    assertEquals(TWO_SPADES, rule.getBid());
  }

  public void testBidUnbidSuitAtCheapestLevelWith8PointsAnd5Trumps() {
    Auctioneer a = new Auctioneer(West.i());
    a.bid(ONE_CLUBS);
    a.bid(ONE_DIAMONDS);
    a.bid(PASS);
    RespondOvercallSuit rule = new RespondOvercallSuit(a, new Hand("A,10,9,8,7", "K,3,2", "J,9", "9,5,4"));
    assertEquals(ONE_SPADES, rule.getBid());
  }

  public void testJumpBidUnbidSuitWith12PointsAnd5Trumps() {
    Auctioneer a = new Auctioneer(West.i());
    a.bid(ONE_CLUBS);
    a.bid(ONE_DIAMONDS);
    a.bid(PASS);
    RespondOvercallSuit rule = new RespondOvercallSuit(a, new Hand("A,10,9,8,7", "K,3,2", "J,9", "A,5,4"));
    assertEquals(TWO_SPADES, rule.getBid());
  }

  public void testJumpHigherBidUnbidSuitWith12PointsAnd5Trumps() {
    Auctioneer a = new Auctioneer(West.i());
    a.bid(ONE_CLUBS);
    a.bid(TWO_DIAMONDS);
    a.bid(PASS);
    RespondOvercallSuit rule = new RespondOvercallSuit(a, new Hand("A,10,9,8,7", "K,3,2", "J,9", "A,5,4"));
    assertEquals(THREE_SPADES, rule.getBid());
  }

  public void testBidGameUnbidSuitWith15PointsAnd5Trumps() {
    Auctioneer a = new Auctioneer(West.i());
    a.bid(ONE_CLUBS);
    a.bid(ONE_DIAMONDS);
    a.bid(PASS);
    RespondOvercallSuit rule = new RespondOvercallSuit(a, new Hand("A,K,9,8,7", "K,3,2", "J,9", "A,5,4"));
    assertEquals(FOUR_SPADES, rule.getBid());
  }

  /**
   *  respond no trump
   */

  public void testBidNoTrumpOneLevelWith8PointsAndStopperInEnemySuit() {
    Auctioneer a = new Auctioneer(West.i());
    a.bid(ONE_CLUBS);
    a.bid(ONE_DIAMONDS);
    a.bid(PASS);
    RespondOvercallSuit rule = new RespondOvercallSuit(a, new Hand("A,10,9,8", "9,4,3,2", "J,9", "K,5,4"));
    assertEquals(ONE_NOTRUMP, rule.getBid());
  }

  public void testDoNotBidWithoutStopperInEnemySuit() {
    Auctioneer a = new Auctioneer(West.i());
    a.bid(ONE_CLUBS);
    a.bid(ONE_DIAMONDS);
    a.bid(PASS);
    RespondOvercallSuit rule = new RespondOvercallSuit(a, new Hand("A,10,9,8", "K,4,3,2", "J,9", "9,5,4"));
    assertEquals(null, rule.getBid());
  }

  public void testDoNotBidWithoutStopperInBothEnemySuits() {
    Auctioneer a = new Auctioneer(West.i());
    a.bid(ONE_CLUBS);
    a.bid(ONE_DIAMONDS);
    a.bid(ONE_HEARTS);
    RespondOvercallSuit rule = new RespondOvercallSuit(a, new Hand("A,K,9,8", "9,4,3,2", "10,9", "J,9,5,4"));
    assertEquals(null, rule.getBid());
  }

  public void testBidWithStoppersInBothEnemySuits() {
    Auctioneer a = new Auctioneer(West.i());
    a.bid(ONE_CLUBS);
    a.bid(ONE_DIAMONDS);
    a.bid(ONE_HEARTS);
    RespondOvercallSuit rule = new RespondOvercallSuit(a, new Hand("A,10,9,8", "K,4,3,2", "10,9", "J,9,5,4"));
    assertEquals(ONE_NOTRUMP, rule.getBid());
  }

  public void testBidNoTrumpCheapestLevelWith8PointsAndStopperInEnemySuit() {
    Auctioneer a = new Auctioneer(West.i());
    a.bid(ONE_CLUBS);
    a.bid(TWO_DIAMONDS);
    a.bid(PASS);
    RespondOvercallSuit rule = new RespondOvercallSuit(a, new Hand("A,10,9,8", "9,4,3,2", "J,9", "K,5,4"));
    assertEquals(TWO_NOTRUMP, rule.getBid());
  }

  public void testJumpBidNoTrumpWith12PointsAndStopperInEnemySuit() {
    Auctioneer a = new Auctioneer(West.i());
    a.bid(ONE_CLUBS);
    a.bid(ONE_DIAMONDS);
    a.bid(PASS);
    RespondOvercallSuit rule = new RespondOvercallSuit(a, new Hand("A,10,9,8", "A,4,3,2", "J,9", "K,5,4"));
    assertEquals(TWO_NOTRUMP, rule.getBid());
  }

  public void testJumpHigherBidNoTrumpWith12PointsAndStopperInEnemySuit() {
    Auctioneer a = new Auctioneer(West.i());
    a.bid(ONE_CLUBS);
    a.bid(TWO_DIAMONDS);
    a.bid(PASS);
    RespondOvercallSuit rule = new RespondOvercallSuit(a, new Hand("A,10,9,8", "A,4,3,2", "J,9", "K,5,4"));
    assertEquals(THREE_NOTRUMP, rule.getBid());
  }

  public void testBidGameNoTrumpWith15PointsAndStopperInEnemySuit() {
    Auctioneer a = new Auctioneer(West.i());
    a.bid(ONE_CLUBS);
    a.bid(ONE_DIAMONDS);
    a.bid(PASS);
    RespondOvercallSuit rule = new RespondOvercallSuit(a, new Hand("A,K,9,8", "A,4,3,2", "J,9", "K,5,4"));
    assertEquals(THREE_NOTRUMP, rule.getBid());
  }

  /**
   *  border cases when rule should not apply
   */

  public void testPassWithLessThan8Points() {
    Auctioneer a = new Auctioneer(West.i());
    a.bid(ONE_CLUBS);
    a.bid(ONE_DIAMONDS);
    a.bid(PASS);
    RespondOvercallSuit rule = new RespondOvercallSuit(a, new Hand("7,8", "K,3,2", "Q,J,9,3,2", "9,5,4"));
    assertEquals(null, rule.getBid());
  }

  public void testDoNotRaiseIfDoNotHave3Trumps() {
    Auctioneer a = new Auctioneer(West.i());
    a.bid(ONE_CLUBS);
    a.bid(ONE_DIAMONDS);
    a.bid(PASS);
    RespondOvercallSuit rule = new RespondOvercallSuit(a, new Hand("10,9,8,7", "K,3,2,4", "A,9", "J,9,5"));
    assertEquals(null, rule.getBid());
  }

  public void testCountPointsAsDummy() {
    Auctioneer a = new Auctioneer(West.i());
    a.bid(ONE_CLUBS);
    a.bid(ONE_DIAMONDS);
    a.bid(PASS);
    RespondOvercallSuit rule = new RespondOvercallSuit(a, new Hand("10,9,8,7,6", "", "K,10,9,2", "10,9,5,4"));
    assertEquals(TWO_DIAMONDS, rule.getBid());
  }

  public void testOnlyApplyToOvercallResponses() {
    Auctioneer a = new Auctioneer(West.i());
    a.bid(ONE_DIAMONDS);
    a.bid(PASS);
    RespondOvercallSuit rule = new RespondOvercallSuit(a, new Hand("10,9,8,7,6", "", "K,10,9,2", "10,9,5,4"));
    assertEquals(null, rule.getBid());
  }

  public void testOnlyApplyToSuitOvercallsNoTrump() {
    Auctioneer a = new Auctioneer(West.i());
    a.bid(ONE_CLUBS);
    a.bid(ONE_NOTRUMP);
    a.bid(PASS);
    RespondOvercallSuit rule = new RespondOvercallSuit(a, new Hand("10,9,8,7", "K,3,2", "A,J,9", "9,5,4"));
    assertEquals(null, rule.getBid());
  }

  public void testOnlyApplyToSuitOvercallsDouble() {
    Auctioneer a = new Auctioneer(West.i());
    a.bid(ONE_CLUBS);
    a.bid(DOUBLE);
    a.bid(PASS);
    RespondOvercallSuit rule = new RespondOvercallSuit(a, new Hand("10,9,8,7", "K,3,2", "A,J,9", "9,5,4"));
    assertEquals(null, rule.getBid());
  }

}
TOP

Related Classes of org.gnubridge.core.bidding.rules.RespondOvercallSuitTest

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.