def __init__(self): HandConstraints.__init__(self) self.last_call = None self.opened = False self.notrump_protocol = False self.rule_of_twenty = None self.rule_of_fifteen = None
def pretty_one_line(self, include_last_call_name=True): pretty_line = HandConstraints.pretty_one_line(self) if self.last_call or self.opened: info_strings = [] if include_last_call_name: info_strings.append("last: %s" % self.last_call) else: last_call_string = self.last_call.pretty_one_line(include_bid_name=False) if last_call_string: info_strings.append(last_call_string) if self.opened: info_strings.append("opened") if self.notrump_protocol: info_strings.append("nt") if self.ace_constraint() is not None: ace_constraint = self.ace_constraint() ace_count = "0 or 4" if ace_constraint == HandConstraints.ZERO_OR_FOUR else str(ace_constraint) info_strings.append("aces(%s)" % ace_count) if self.king_constraint() is not None: king_constraint = self.king_constraint() king_count = "0 or 4" if king_constraint == HandConstraints.ZERO_OR_FOUR else str(king_constraint) info_strings.append("kings(%s)" % king_count) if info_strings: pretty_line +=" (%s)" % ", ".join(info_strings) return pretty_line
def test_pretty_one_line(self): constraints = HandConstraints() self.assertEqual(constraints.pretty_one_line(), "?") constraints.set_min_hcp(3) constraints.set_min_length(CLUBS, 3) self.assertEqual(constraints.pretty_one_line(), "3+ hcp, 3+C") constraints = HandConstraints() constraints.set_min_hcp(3) constraints.set_min_length(CLUBS, 3) constraints.set_min_length(DIAMONDS, 3) self.assertEqual(constraints.pretty_one_line(), "3+ hcp, 3+C 3+D")
def test_compute_implied_suit_length_ranges(self): constraints = HandConstraints() constraints.set_min_length(CLUBS, 3) constraints.set_min_length(DIAMONDS, 3) constraints.set_min_length(HEARTS, 3) self.assertEqual(constraints.max_length(SPADES), 4) constraints = HandConstraints() constraints.set_max_length(CLUBS, 5) constraints.set_longest_suit(CLUBS) self.assertEqual(constraints.pretty_one_line(), "? hcp, 4-5C 0-5D 0-5H 0-5S") constraints = HandConstraints() constraints.set_max_length(CLUBS, 5) constraints.set_longest_suit(CLUBS, except_suits=[HEARTS]) self.assertEqual(constraints.pretty_one_line(), "? hcp, 4-5C 0-5D 0-5S") constraints = HandConstraints() constraints.set_min_length(DIAMONDS, 3) constraints.set_longer_minor(DIAMONDS) self.assertEqual(constraints.min_length(DIAMONDS), 3) constraints.set_min_length(CLUBS, 4) self.assertEqual(constraints.min_length(DIAMONDS), 4) constraints = HandConstraints() constraints.set_min_length(HEARTS, 3) constraints.set_longer_major(HEARTS) self.assertEqual(constraints.min_length(HEARTS), 3) constraints.set_min_length(SPADES, 4) self.assertEqual(constraints.min_length(HEARTS), 4)
def test_is_valid(self): constraints = HandConstraints() self.assertEqual(constraints.is_valid(), True)
def test_honors_string(self): constraints = HandConstraints() constraints.set_min_honors(HEARTS, HonorConstraint.FOURTH_ROUND_STOPPER) self.assertEqual(constraints.pretty_one_line(), "? hcp, ?H(4rS)")