Exemplo n.º 1
0
 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
Exemplo n.º 2
0
 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
Exemplo n.º 3
0
    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")
Exemplo n.º 4
0
    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)
Exemplo n.º 5
0
 def test_is_valid(self):
     constraints = HandConstraints()
     self.assertEqual(constraints.is_valid(), True)
Exemplo n.º 6
0
 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)")