def test_string_to_action_to_string_roundtrip(self):
   for level, trump in itertools.product(
       range(1, 8), bluechip_bridge_uncontested_bidding._TRUMP_SUIT):
     bid = str(level) + trump
     action = bluechip_bridge_uncontested_bidding._string_to_action(bid)
     self.assertEqual(
         bid, bluechip_bridge_uncontested_bidding._action_to_string(action))
 def test_action_to_string_to_action_roundtrip(self):
   for action in range(1, 36):
     bid = bluechip_bridge_uncontested_bidding._action_to_string(action)
     self.assertEqual(
         action, bluechip_bridge_uncontested_bidding._string_to_action(bid))
# See the License for the specific language governing permissions and
# limitations under the License.

"""Tests for third_party.open_spiel.python.bots.bluechip_bridge_uncontested_bidding."""

from __future__ import absolute_import
from __future__ import division
from __future__ import print_function

import itertools

from absl.testing import absltest
from open_spiel.python.bots import bluechip_bridge_uncontested_bidding
import pyspiel

_BID_1D = bluechip_bridge_uncontested_bidding._string_to_action("1D")
_BID_1H = bluechip_bridge_uncontested_bidding._string_to_action("1H")
_BID_2H = bluechip_bridge_uncontested_bidding._string_to_action("2H")


class BluechipBridgeWrapperTest(absltest.TestCase):

  def test_complete_session_east(self):
    game = pyspiel.load_game("bridge_uncontested_bidding")
    mock_client = absltest.mock.Mock(
        **{
            "read_line.side_effect": [
                'Connecting "WBridge5" as ANYPL using protocol version 18',
                "EAST ready for teams",
                "EAST ready to start",
                "EAST ready for deal",