Ejemplo n.º 1
0
def test_set_names_and_ranks():
    table = Table()
    table.init_round(0, 0, 0, 0, 0, [])

    values = [
        {
            "name": "NoName",
            "rank": "新人"
        },
        {
            "name": "o2o2",
            "rank": "3級"
        },
        {
            "name": "shimmmmm",
            "rank": "三段"
        },
        {
            "name": "川海老",
            "rank": "9級"
        },
    ]

    table.set_players_names_and_ranks(values)

    assert table.get_player(0).name == "NoName"
    assert table.get_player(0).rank == "新人"
    assert table.get_player(3).name == "川海老"
    assert table.get_player(3).rank == "9級"
Ejemplo n.º 2
0
def test_init_round():
    table = Table()

    round_wind_number = 4
    count_of_honba_sticks = 2
    count_of_riichi_sticks = 3
    dora_indicator = 126
    dealer = 3
    scores = [250, 250, 250, 250]

    table.init_round(round_wind_number, count_of_honba_sticks,
                     count_of_riichi_sticks, dora_indicator, dealer, scores)

    assert table.round_wind_number == round_wind_number
    assert table.count_of_honba_sticks == count_of_honba_sticks
    assert table.count_of_riichi_sticks == count_of_riichi_sticks
    assert table.dora_indicators[0] == dora_indicator
    assert table.get_player(dealer).is_dealer is True
    assert table.get_player(dealer).scores == 25000

    dealer = 2
    table.player.in_tempai = True
    table.player.in_riichi = True
    table.init_round(round_wind_number, count_of_honba_sticks,
                     count_of_riichi_sticks, dora_indicator, dealer, scores)

    # test that we reinit round properly
    assert table.get_player(3).is_dealer is False
    assert table.player.in_tempai is False
    assert table.player.in_riichi is False
    assert table.get_player(dealer).is_dealer is True
Ejemplo n.º 3
0
    def test_init_round(self):
        table = Table()

        round_number = 4
        count_of_honba_sticks = 2
        count_of_riichi_sticks = 3
        dora_indicator = 126
        dealer = 3
        scores = [250, 250, 250, 250]

        table.init_round(round_number, count_of_honba_sticks,
                         count_of_riichi_sticks, dora_indicator, dealer,
                         scores)

        self.assertEqual(table.round_number, round_number)
        self.assertEqual(table.count_of_honba_sticks, count_of_honba_sticks)
        self.assertEqual(table.count_of_riichi_sticks, count_of_riichi_sticks)
        self.assertEqual(table.dora_indicators[0], dora_indicator)
        self.assertEqual(table.get_player(dealer).is_dealer, True)
        self.assertEqual(table.get_player(dealer).scores, 25000)

        dealer = 2
        table.player.in_tempai = True
        table.player.in_riichi = True
        table.init_round(round_number, count_of_honba_sticks,
                         count_of_riichi_sticks, dora_indicator, dealer,
                         scores)

        # test that we reinit round properly
        self.assertEqual(table.get_player(3).is_dealer, False)
        self.assertEqual(table.player.in_tempai, False)
        self.assertEqual(table.player.in_riichi, False)
        self.assertEqual(table.get_player(dealer).is_dealer, True)
    def test_detect_enemy_tempai_and_riichi(self):
        table = Table()

        self.assertEqual(EnemyAnalyzer(table.get_player(1)).in_tempai, False)
        self.assertEqual(EnemyAnalyzer(table.get_player(1)).is_threatening, False)

        table.add_called_riichi(1)

        self.assertEqual(EnemyAnalyzer(table.get_player(1)).in_tempai, True)
        self.assertEqual(EnemyAnalyzer(table.get_player(1)).is_threatening, True)
Ejemplo n.º 5
0
def test_set_scores():
    table = Table()
    table.init_round(0, 0, 0, 0, 0, [])
    scores = [230, 110, 55, 405]

    table.set_players_scores(scores)

    assert table.get_player(0).scores == 23000
    assert table.get_player(1).scores == 11000
    assert table.get_player(2).scores == 5500
    assert table.get_player(3).scores == 40500
    def test_set_scores(self):
        table = Table()
        table.init_round(0, 0, 0, 0, 0, [])
        scores = [230, 110, 55, 405]

        table.set_players_scores(scores)

        self.assertEqual(table.get_player(0).scores, 23000)
        self.assertEqual(table.get_player(1).scores, 11000)
        self.assertEqual(table.get_player(2).scores, 5500)
        self.assertEqual(table.get_player(3).scores, 40500)
Ejemplo n.º 7
0
    def test_set_scores(self):
        table = Table()
        table.init_round(0, 0, 0, 0, 0, [])
        scores = [230, 110, 55, 405]

        table.set_players_scores(scores)

        self.assertEqual(table.get_player(0).scores, 23000)
        self.assertEqual(table.get_player(1).scores, 11000)
        self.assertEqual(table.get_player(2).scores, 5500)
        self.assertEqual(table.get_player(3).scores, 40500)
Ejemplo n.º 8
0
    def test_detect_enemy_tempai_and_riichi(self):
        table = Table()

        self.assertEqual(EnemyAnalyzer(table.get_player(1)).in_tempai, False)
        self.assertEqual(
            EnemyAnalyzer(table.get_player(1)).is_threatening, False)

        table.add_called_riichi(1)

        self.assertEqual(EnemyAnalyzer(table.get_player(1)).in_tempai, True)
        self.assertEqual(
            EnemyAnalyzer(table.get_player(1)).is_threatening, True)
Ejemplo n.º 9
0
    def test_temporary_safe_tiles(self):
        table = Table()

        table.add_discarded_tile(1, self._string_to_136_tile(man='4'), False)

        self.assertEqual(table.get_player(1).temporary_safe_tiles, [])
        self.assertEqual(table.get_player(2).temporary_safe_tiles, [3])
        self.assertEqual(table.get_player(3).temporary_safe_tiles, [3])

        table.add_discarded_tile(2, self._string_to_136_tile(man='5'), False)

        self.assertEqual(table.get_player(1).temporary_safe_tiles, [4])
        self.assertEqual(table.get_player(2).temporary_safe_tiles, [])
        self.assertEqual(table.get_player(3).temporary_safe_tiles, [3, 4])

        table.add_discarded_tile(3, self._string_to_136_tile(man='6'), False)

        self.assertEqual(table.get_player(1).temporary_safe_tiles, [4, 5])
        self.assertEqual(table.get_player(2).temporary_safe_tiles, [5])
        self.assertEqual(table.get_player(3).temporary_safe_tiles, [])

        table.add_discarded_tile(1, self._string_to_136_tile(man='7'), False)

        self.assertEqual(table.get_player(1).temporary_safe_tiles, [])
        self.assertEqual(table.get_player(2).temporary_safe_tiles, [5, 6])
        self.assertEqual(table.get_player(3).temporary_safe_tiles, [6])
Ejemplo n.º 10
0
    def test_find_dealer_tile_to_discard(self):
        dealer = 2
        dora = self._string_to_136_tile(honors='3')
        table = Table()
        table.init_round(0, 0, 0, dora, dealer, [])

        tiles = self._string_to_136_array(sou='2234678', pin='34', man='45789')
        table.player.init_hand(tiles)

        table.add_discarded_tile(1, self._string_to_136_tile(man='4'), False)
        table.add_discarded_tile(1, self._string_to_136_tile(man='5'), False)

        table.add_discarded_tile(2, self._string_to_136_tile(man='8'), False)
        table.add_discarded_tile(2, self._string_to_136_tile(man='9'), False)

        table.add_called_riichi(1)
        table.add_called_riichi(2)

        # for this test we don't need temporary_safe_tiles
        table.get_player(1).temporary_safe_tiles = []
        table.get_player(2).temporary_safe_tiles = []

        result = table.player.discard_tile()
        # second player is a dealer, let's fold against him
        self.assertEqual(self._to_string([result]), '9m')

        tiles = self._string_to_136_array(sou='234567', pin='348', man='234', honors='23')
        table.player.init_hand(tiles)

        result = table.player.discard_tile()
        # there is no safe tiles against dealer, so let's fold against other players
        self.assertEqual(table.player.ai.in_defence, True)
        self.assertEqual(self._to_string([result]), '4m')
Ejemplo n.º 11
0
    def test_set_scores_and_uma(self):
        table = Table()
        table.init_round(0, 0, 0, 0, 0, [])
        scores = [230, 110, 55, 405]
        uma = [-17, 3, 48, -34]

        table.set_players_scores(scores, uma)

        self.assertEqual(table.get_player(0).scores, 23000)
        self.assertEqual(table.get_player(0).uma, -17)
        self.assertEqual(table.get_player(1).scores, 11000)
        self.assertEqual(table.get_player(1).uma, 3)
        self.assertEqual(table.get_player(2).scores, 5500)
        self.assertEqual(table.get_player(2).uma, 48)
        self.assertEqual(table.get_player(3).scores, 40500)
        self.assertEqual(table.get_player(3).uma, -34)
Ejemplo n.º 12
0
def test_set_scores_and_uma():
    table = Table()
    table.init_round(0, 0, 0, 0, 0, [])
    scores = [230, 110, 55, 405]
    uma = [-17, 3, 48, -34]

    table.set_players_scores(scores, uma)

    assert table.get_player(0).scores == 23000
    assert table.get_player(0).uma == (-17)
    assert table.get_player(1).scores == 11000
    assert table.get_player(1).uma == 3
    assert table.get_player(2).scores == 5500
    assert table.get_player(2).uma == 48
    assert table.get_player(3).scores == 40500
    assert table.get_player(3).uma == (-34)
    def test_set_scores_and_uma(self):
        table = Table()
        table.init_round(0, 0, 0, 0, 0, [])
        scores = [230, 110, 55, 405]
        uma = [-17, 3, 48, -34]

        table.set_players_scores(scores, uma)

        self.assertEqual(table.get_player(0).scores, 23000)
        self.assertEqual(table.get_player(0).uma, -17)
        self.assertEqual(table.get_player(1).scores, 11000)
        self.assertEqual(table.get_player(1).uma, 3)
        self.assertEqual(table.get_player(2).scores, 5500)
        self.assertEqual(table.get_player(2).uma, 48)
        self.assertEqual(table.get_player(3).scores, 40500)
        self.assertEqual(table.get_player(3).uma, -34)
    def test_set_names_and_ranks(self):
        table = Table()
        table.init_round(0, 0, 0, 0, 0, [])

        values = [
            {'name': 'NoName', 'rank': u'新人'},
            {'name': 'o2o2', 'rank': u'3級'},
            {'name': 'shimmmmm', 'rank': u'三段'},
            {'name': u'川海老', 'rank': u'9級'}
        ]

        table.set_players_names_and_ranks(values)

        self.assertEqual(table.get_player(0).name, 'NoName')
        self.assertEqual(table.get_player(0).rank, u'新人')
        self.assertEqual(table.get_player(3).name, u'川海老')
        self.assertEqual(table.get_player(3).rank, u'9級')
Ejemplo n.º 15
0
    def test_add_safe_tile_after_discard(self):
        table = Table()
        table.add_called_riichi(3)

        table.add_discarded_tile(1, self._string_to_136_tile(man='3'), False)
        table.add_discarded_tile(0, self._string_to_136_tile(man='4'), False)

        self.assertEqual(len(table.get_player(1).discards), 1)
        self.assertEqual(len(table.get_player(2).discards), 0)
        self.assertEqual(len(table.get_player(3).discards), 0)

        self.assertEqual(len(table.get_player(1).safe_tiles), 1)
        self.assertEqual(len(table.get_player(2).safe_tiles), 0)
        self.assertEqual(len(table.get_player(3).safe_tiles), 2)

        # "2" is 3 man
        self.assertEqual(table.get_player(1).safe_tiles, [2])
        self.assertEqual(table.get_player(3).safe_tiles, [2, 3])
    def test_init_round(self):
        table = Table()

        round_wind_number = 4
        count_of_honba_sticks = 2
        count_of_riichi_sticks = 3
        dora_indicator = 126
        dealer = 3
        scores = [250, 250, 250, 250]

        table.init_round(
            round_wind_number,
            count_of_honba_sticks,
            count_of_riichi_sticks,
            dora_indicator,
            dealer,
            scores
        )

        self.assertEqual(table.round_wind_number, round_wind_number)
        self.assertEqual(table.count_of_honba_sticks, count_of_honba_sticks)
        self.assertEqual(table.count_of_riichi_sticks, count_of_riichi_sticks)
        self.assertEqual(table.dora_indicators[0], dora_indicator)
        self.assertEqual(table.get_player(dealer).is_dealer, True)
        self.assertEqual(table.get_player(dealer).scores, 25000)

        dealer = 2
        table.player.in_tempai = True
        table.player.in_riichi = True
        table.init_round(
            round_wind_number,
            count_of_honba_sticks,
            count_of_riichi_sticks,
            dora_indicator,
            dealer,
            scores
        )

        # test that we reinit round properly
        self.assertEqual(table.get_player(3).is_dealer, False)
        self.assertEqual(table.player.in_tempai, False)
        self.assertEqual(table.player.in_riichi, False)
        self.assertEqual(table.get_player(dealer).is_dealer, True)
    def test_detect_enemy_tempai_and_opened_sets(self):
        table = Table()

        self.assertEqual(EnemyAnalyzer(table.get_player(1)).in_tempai, False)
        self.assertEqual(EnemyAnalyzer(table.get_player(1)).is_threatening, False)

        table.add_called_meld(1, self._make_meld(Meld.CHI, sou='567'))
        table.add_called_meld(1, self._make_meld(Meld.CHI, pin='123'))
        table.add_called_meld(1, self._make_meld(Meld.CHI, man='345'))
        table.add_called_meld(1, self._make_meld(Meld.PON, man='777'))

        self.assertEqual(EnemyAnalyzer(table.get_player(1)).in_tempai, True)
        self.assertEqual(EnemyAnalyzer(table.get_player(1)).is_threatening, False)

        table.dora_indicators = [self._string_to_136_tile(man='6')]

        # enemy opened the pon of dor, so better to fold against him
        self.assertEqual(EnemyAnalyzer(table.get_player(1)).in_tempai, True)
        self.assertEqual(EnemyAnalyzer(table.get_player(1)).is_threatening, True)
Ejemplo n.º 18
0
    def test_try_to_detect_honitsu_hand(self):
        table = Table()

        table.add_called_meld(1, self._make_meld(Meld.CHI, pin='567'))
        table.add_called_meld(1, self._make_meld(Meld.CHI, pin='123'))
        table.add_called_meld(1, self._make_meld(Meld.CHI, pin='345'))

        table.add_discarded_tile(1, self._string_to_136_tile(sou='1'), False)
        table.add_discarded_tile(1, self._string_to_136_tile(sou='5'), False)
        table.add_discarded_tile(1, self._string_to_136_tile(sou='8'), False)
        table.add_discarded_tile(1, self._string_to_136_tile(sou='9'), False)
        table.add_discarded_tile(1, self._string_to_136_tile(man='1'), False)
        table.add_discarded_tile(1, self._string_to_136_tile(man='1'), False)
        table.add_discarded_tile(1, self._string_to_136_tile(pin='1'), False)

        self.assertEqual(
            EnemyAnalyzer(table.get_player(1)).is_threatening, True)
        self.assertEqual(
            EnemyAnalyzer(table.get_player(1)).chosen_suit, is_pin)
Ejemplo n.º 19
0
def test_players_wind():
    table = Table()
    player = table.player

    dealer_seat = 0
    table.init_round(0, 0, 0, 0, dealer_seat, [])
    assert player.player_wind == EAST
    assert table.get_player(1).player_wind == SOUTH

    dealer_seat = 1
    table.init_round(0, 0, 0, 0, dealer_seat, [])
    assert player.player_wind == NORTH
    assert table.get_player(1).player_wind == EAST

    dealer_seat = 2
    table.init_round(0, 0, 0, 0, dealer_seat, [])
    assert player.player_wind == WEST
    assert table.get_player(1).player_wind == NORTH

    dealer_seat = 3
    table.init_round(0, 0, 0, 0, dealer_seat, [])
    assert player.player_wind == SOUTH
    assert table.get_player(1).player_wind == WEST
Ejemplo n.º 20
0
    def test_set_names_and_ranks(self):
        table = Table()
        table.init_round(0, 0, 0, 0, 0, [])

        values = [{
            'name': 'NoName',
            'rank': u'新人'
        }, {
            'name': 'o2o2',
            'rank': u'3級'
        }, {
            'name': 'shimmmmm',
            'rank': u'三段'
        }, {
            'name': u'川海老',
            'rank': u'9級'
        }]

        table.set_players_names_and_ranks(values)

        self.assertEqual(table.get_player(0).name, 'NoName')
        self.assertEqual(table.get_player(0).rank, u'新人')
        self.assertEqual(table.get_player(3).name, u'川海老')
        self.assertEqual(table.get_player(3).rank, u'9級')
Ejemplo n.º 21
0
def test_threatening_riichi_player_and_not_early_hand_bonus():
    table = Table()
    enemy_seat = 2
    discards = string_to_136_array(sou="1111222")
    for discard in discards:
        table.add_discarded_tile(enemy_seat, discard, False)
    table.add_called_riichi_step_one(enemy_seat)
    table.add_called_riichi_step_two(enemy_seat)
    table.get_player(enemy_seat).is_ippatsu = False

    # +1 scale for riichi on 6+ turn
    threatening_player = table.player.ai.defence.get_threatening_players()[0]
    assert threatening_player.enemy.seat == enemy_seat
    assert threatening_player.get_assumed_hand_cost(
        string_to_136_tile(man="2")) == 3900
    def test_try_to_detect_honitsu_hand(self):
        table = Table()

        table.add_called_meld(1, self._make_meld(Meld.CHI, pin='567'))
        table.add_called_meld(1, self._make_meld(Meld.CHI, pin='123'))
        table.add_called_meld(1, self._make_meld(Meld.CHI, pin='345'))

        table.add_discarded_tile(1, self._string_to_136_tile(sou='1'), False)
        table.add_discarded_tile(1, self._string_to_136_tile(sou='5'), False)
        table.add_discarded_tile(1, self._string_to_136_tile(sou='8'), False)
        table.add_discarded_tile(1, self._string_to_136_tile(sou='9'), False)
        table.add_discarded_tile(1, self._string_to_136_tile(man='1'), False)
        table.add_discarded_tile(1, self._string_to_136_tile(man='1'), False)
        table.add_discarded_tile(1, self._string_to_136_tile(pin='1'), False)

        self.assertEqual(EnemyAnalyzer(table.get_player(1)).is_threatening, True)
        self.assertEqual(EnemyAnalyzer(table.get_player(1)).chosen_suit, is_pin)
Ejemplo n.º 23
0
    def test_find_common_safe_tile_to_discard(self):
        table = Table()

        tiles = self._string_to_136_array(sou='2456', pin='234478', man='2336')
        table.player.init_hand(tiles)

        table.add_discarded_tile(1, self._string_to_136_tile(sou='6'), False)
        table.add_discarded_tile(1, self._string_to_136_tile(pin='5'), False)

        table.add_discarded_tile(2, self._string_to_136_tile(pin='5'), False)
        table.add_discarded_tile(2, self._string_to_136_tile(sou='6'), False)

        table.add_called_riichi(1)
        table.add_called_riichi(2)

        # for this test we don't need temporary_safe_tiles
        table.get_player(1).temporary_safe_tiles = []
        table.get_player(2).temporary_safe_tiles = []

        result = table.player.discard_tile()

        self.assertEqual(self._to_string([result]), '6s')
Ejemplo n.º 24
0
    def test_find_tile_to_discard_when_no_safe_tile(self):
        dealer = 2
        dora = self._string_to_136_tile(honors='3')
        table = Table()
        table.init_round(0, 0, 0, dora, dealer, [])

        tiles = self._string_to_136_array(sou='2234555', pin='11', man='11113')
        table.player.init_hand(tiles)

        table.add_discarded_tile(1, self._string_to_136_tile(man='8'), False)
        table.add_discarded_tile(1, self._string_to_136_tile(man='9'), False)

        table.add_discarded_tile(2, self._string_to_136_tile(man='8'), False)
        table.add_discarded_tile(2, self._string_to_136_tile(man='9'), False)

        table.add_called_riichi(1)
        table.add_called_riichi(2)

        # for this test we don't need temporary_safe_tiles
        table.get_player(1).temporary_safe_tiles = []
        table.get_player(2).temporary_safe_tiles = []

        result = table.player.discard_tile()
        # No safe tile to discard. So should discard 5s
        self.assertEqual(self._to_string([result]), '1m')

        tiles = self._string_to_136_array(sou='2234556', pin='11', man='34567')
        table.player.init_hand(tiles)
        result = table.player.discard_tile()
        # No safe tile to discard. So should discard 1p
        self.assertEqual(self._to_string([result]), '1p')

        tiles = self._string_to_136_array(sou='2345678', pin='19', man='34567')
        table.player.init_hand(tiles)
        result = table.player.discard_tile()
        # No safe tile to discard. So should discard 1p
        self.assertEqual(self._to_string([result]), '1p')
Ejemplo n.º 25
0
def test_threatening_riichi_player_middle_tiles_bonus():
    table = Table()
    enemy_seat = 2
    table.add_called_riichi_step_one(enemy_seat)
    table.add_called_riichi_step_two(enemy_seat)
    table.get_player(enemy_seat).is_ippatsu = False

    # +1 scale 456 tiles
    threatening_player = table.player.ai.defence.get_threatening_players()[0]
    assert threatening_player.enemy.seat == enemy_seat

    # +1 scale 456 tiles
    assert threatening_player.get_assumed_hand_cost(
        string_to_136_tile(man="4"), can_be_used_for_ryanmen=True) == 3900
    assert threatening_player.get_assumed_hand_cost(
        string_to_136_tile(man="5"), can_be_used_for_ryanmen=True) == 3900
    assert threatening_player.get_assumed_hand_cost(
        string_to_136_tile(man="6"), can_be_used_for_ryanmen=True) == 3900
    assert threatening_player.get_assumed_hand_cost(
        string_to_136_tile(man="5"), can_be_used_for_ryanmen=False) == 3900

    # +1 scare for 2378 tiles that could be used in ryanmen
    assert threatening_player.get_assumed_hand_cost(
        string_to_136_tile(pin="2"), can_be_used_for_ryanmen=True) == 3900
    assert threatening_player.get_assumed_hand_cost(
        string_to_136_tile(pin="2"), can_be_used_for_ryanmen=False) == 2000
    assert threatening_player.get_assumed_hand_cost(
        string_to_136_tile(sou="7"), can_be_used_for_ryanmen=True) == 3900
    assert threatening_player.get_assumed_hand_cost(
        string_to_136_tile(sou="7"), can_be_used_for_ryanmen=False) == 2000

    # not middle tiles
    assert threatening_player.get_assumed_hand_cost(
        string_to_136_tile(man="1"), can_be_used_for_ryanmen=True) == 2000
    assert threatening_player.get_assumed_hand_cost(
        string_to_136_tile(pin="9"), can_be_used_for_ryanmen=True) == 2000
Ejemplo n.º 26
0
    def test_detect_enemy_tempai_and_opened_sets(self):
        table = Table()

        self.assertEqual(EnemyAnalyzer(table.get_player(1)).in_tempai, False)
        self.assertEqual(
            EnemyAnalyzer(table.get_player(1)).is_threatening, False)

        table.add_called_meld(1, self._make_meld(Meld.CHI, sou='567'))
        table.add_called_meld(1, self._make_meld(Meld.CHI, pin='123'))
        table.add_called_meld(1, self._make_meld(Meld.CHI, man='345'))
        table.add_called_meld(1, self._make_meld(Meld.PON, man='777'))

        self.assertEqual(EnemyAnalyzer(table.get_player(1)).in_tempai, True)
        self.assertEqual(
            EnemyAnalyzer(table.get_player(1)).is_threatening, False)

        table.dora_indicators = [self._string_to_136_tile(man='6')]

        # enemy opened the pon of dor, so better to fold against him
        self.assertEqual(EnemyAnalyzer(table.get_player(1)).in_tempai, True)
        self.assertEqual(
            EnemyAnalyzer(table.get_player(1)).is_threatening, True)
    def test_set_scores_and_recalculate_player_position(self):
        table = Table()
        table.init_round(0, 0, 0, 0, 0, [])

        self.assertEqual(table.get_player(0).first_seat, 0)
        self.assertEqual(table.get_player(1).first_seat, 1)
        self.assertEqual(table.get_player(2).first_seat, 2)
        self.assertEqual(table.get_player(3).first_seat, 3)

        scores = [230, 110, 55, 405]
        table.set_players_scores(scores)

        self.assertEqual(table.get_player(0).position, 2)
        self.assertEqual(table.get_player(1).position, 3)
        self.assertEqual(table.get_player(2).position, 4)
        self.assertEqual(table.get_player(3).position, 1)

        scores = [110, 110, 405, 405]
        table.set_players_scores(scores)

        self.assertEqual(table.get_player(0).position, 3)
        self.assertEqual(table.get_player(1).position, 4)
        self.assertEqual(table.get_player(2).position, 1)
        self.assertEqual(table.get_player(3).position, 2)
Ejemplo n.º 28
0
def test_set_scores_and_recalculate_player_position():
    table = Table()
    table.init_round(0, 0, 0, 0, 0, [])

    assert table.get_player(0).first_seat == 0
    assert table.get_player(1).first_seat == 1
    assert table.get_player(2).first_seat == 2
    assert table.get_player(3).first_seat == 3

    scores = [230, 110, 55, 405]
    table.set_players_scores(scores)

    assert table.get_player(0).position == 2
    assert table.get_player(1).position == 3
    assert table.get_player(2).position == 4
    assert table.get_player(3).position == 1

    scores = [110, 110, 405, 405]
    table.set_players_scores(scores)

    assert table.get_player(0).position == 3
    assert table.get_player(1).position == 4
    assert table.get_player(2).position == 1
    assert table.get_player(3).position == 2
Ejemplo n.º 29
0
    def test_set_scores_and_recalculate_player_position(self):
        table = Table()
        table.init_round(0, 0, 0, 0, 0, [])

        self.assertEqual(table.get_player(0).first_seat, 0)
        self.assertEqual(table.get_player(1).first_seat, 1)
        self.assertEqual(table.get_player(2).first_seat, 2)
        self.assertEqual(table.get_player(3).first_seat, 3)

        scores = [230, 110, 55, 405]
        table.set_players_scores(scores)

        self.assertEqual(table.get_player(0).position, 2)
        self.assertEqual(table.get_player(1).position, 3)
        self.assertEqual(table.get_player(2).position, 4)
        self.assertEqual(table.get_player(3).position, 1)

        scores = [110, 110, 405, 405]
        table.set_players_scores(scores)

        self.assertEqual(table.get_player(0).position, 3)
        self.assertEqual(table.get_player(1).position, 4)
        self.assertEqual(table.get_player(2).position, 1)
        self.assertEqual(table.get_player(3).position, 2)