Пример #1
0
    def test_init_dunder_with_bad_type(self):
        e1 = None
        e2 = None
        e3 = None

        type1 = tuple()
        type2 = dict()
        type3 = int()

        try:
            g = Belote(type1)
        except TypeError as exc:
            e1 = exc
        try:
            g = Belote(type2)
        except TypeError as exc:
            e2 = exc
        try:
            g = Belote(type3)
        except TypeError as exc:
            e3 = exc

        self.assertIsNotNone(e1)
        self.assertIsNotNone(e2)
        self.assertIsNotNone(e3)
        self.assertEqual(str(e1), "Bad type.")
        self.assertEqual(str(e2), "Bad type.")
        self.assertEqual(str(e3), "Bad type.")
Пример #2
0
    def test_init_dunder_with_bloated_teams(self):
        e1 = None
        e2 = None
        e3 = None
        player1 = Player("Boyan", "Team1")
        player2 = Player("Silvia", "Team1")
        player3 = Player("Freeman", "Team1")
        player4 = Player("Marto", "Team2")
        player5 = Player("Gosho", "Team2")
        player6 = Player("Breen", "Team2")
        player7 = Player("ALyx", "Team3")
        player8 = Player("Mossman", "Team3")

        players1 = [[player1, player2], [player4, player5, player6]]
        players2 = [[player1, player2, player3], [player4, player5]]

        try:
            g = Belote(players1)
        except ValueError as exc:
            e1 = exc
        try:
            g = Belote(players1)
        except ValueError as exc:
            e2 = exc

        self.assertIsNotNone(e1)
        self.assertIsNotNone(e2)
        self.assertEqual(str(e1), "Too many members in a team.")
        self.assertEqual(str(e2), "Too many members in a team.")
Пример #3
0
    def test_teams_announcements(self):
        player1 = Player("Boyan", "Team1")
        player2 = Player("Silvia", "Team1")
        player3 = Player("Freeman", "Team2")
        player4 = Player("Marto", "Team2")

        players = [[player1, player2], [player3, player4]]
        belote = Belote(players)

        annoucement = {
            player1: [('carre', 15)],
            player2: [('carre', 16)],
            player3: [('tierce', 10)],
            player4: []
        }
        expected_result = [[{
            0: [('carre', 15)],
            3: [('tierce', 10)]
        }, {
            0: [('carre', 16)]
        }],
                           [{
                               0: [('carre', 15)]
                           }, {
                               0: [('carre', 16)]
                           }, {
                               3: [('tierce', 10)]
                           }, {}]]
        result = belote.get_teams_announcements(annoucement)
        self.assertEqual(result, expected_result)
Пример #4
0
def main():
    player1 = Player("Boyan", "Team1")
    player2 = Player("Silvia", "Team1")
    player3 = Player("Freeman", "Team2")
    player4 = Player("Marto", "Team2")

    players = [[player1, player2], [player3, player4]]
    belote = Belote(players)

    belote.play()
Пример #5
0
    def test_validate_no_announcements(self):
        player1 = Player("Boyan", "Team1")
        player2 = Player("Silvia", "Team1")
        player3 = Player("Freeman", "Team2")
        player4 = Player("Marto", "Team2")

        players = [[player1, player2], [player3, player4]]
        belote = Belote(players)

        annoucement = {player1: [], player2: [], player3: [], player4: []}
        expected_result = {player1: [], player2: [], player3: [], player4: []}
        result = belote.validate_announcements(annoucement)
Пример #6
0
    def test_init(self):
        e = None
        player1 = Player("Boyan", "Team1")
        player2 = Player("Silvia", "Team1")
        player3 = Player("Marto", "Team2")
        player4 = Player("Gosho", "Team2")
        players = [[player1, player2], [player3, player4]]

        try:
            belote = Belote(players)
        except Exception as exc:
            e = exc

        self.assertIsNone(e)
        self.assertEqual(belote.__dict__["players"][0], player1)
        self.assertEqual(belote.__dict__["players"][1], player3)
        self.assertEqual(belote.__dict__["players"][2], player2)
        self.assertEqual(belote.__dict__["players"][3], player4)
        self.assertEqual(belote.__dict__["score"]["Team1"], 0)
        self.assertEqual(belote.__dict__["score"]["Team2"], 0)
        self.assertEqual(belote.__dict__["order"], [0, 1, 2, 3])

        self.assertEqual(belote.__dict__["game"], "")
        self.assertEqual(belote.__dict__["rounds"], [])
        self.assertEqual(belote.__dict__["contracts"], [])
        self.assertEqual(belote.__dict__["cards"], [])
        self.assertEqual(belote.__dict__["announcements"], [])
        self.assertEqual(belote.__dict__["points"], [])
Пример #7
0
    def test_pick_first_with_nonexistent_team(self):
        e = None
        player1 = Player("Boyan", "Team1")
        player2 = Player("Silvia", "Team1")
        player3 = Player("Marto", "Team2")
        player4 = Player("Gosho", "Team2")
        players = [[player1, player2], [player3, player4]]

        try:
            g = Belote(players)
            g.pick_first_from("Team3")
        except ValueError as exc:
            e = exc

        self.assertIsNotNone(e)
        self.assertEqual(str(e), "Team not found.")
Пример #8
0
    def test_shift_player_order_once(self):
        e = None
        player1 = Player("Boyan", "Team1")
        player2 = Player("Silvia", "Team1")
        player3 = Player("Marto", "Team2")
        player4 = Player("Gosho", "Team2")
        players = [[player1, player2], [player3, player4]]

        try:
            g = Belote(players)
            g.shift_player_order()
        except Exception as exc:
            e = exc

        self.assertIsNone(e)
        self.assertEqual(g.__dict__["order"], [1, 2, 3, 0])
Пример #9
0
    def test_init_dunder_with_empty_list(self):
        e = None

        try:
            g = Belote([])
        except Exception as exc:
            e = exc

        self.assertIsNotNone(e)
        self.assertEqual(str(e), "Cannot create a game without players!")
Пример #10
0
    def test_pick_first(self):
        e = None
        player1 = Player("Boyan", "Team1")
        player2 = Player("Silvia", "Team1")
        player3 = Player("Marto", "Team2")
        player4 = Player("Gosho", "Team2")
        players = [[player1, player2], [player3, player4]]

        try:
            g = Belote(players)
            g.pick_first_from("Team2")
            first = g.__dict__["order"][0]
            first = g.__dict__["players"][first]
            third = g.__dict__["order"][2]
            third = g.__dict__["players"][third]
        except Exception as exc:
            e = exc

        self.assertIsNone(e)
        self.assertEqual(first.team, "Team2")
        self.assertEqual(third.team, "Team2")
Пример #11
0
    def test_final_announcement(self):
        player1 = Player("Boyan", "Team1")
        player2 = Player("Silvia", "Team1")
        player3 = Player("Freeman", "Team2")
        player4 = Player("Marto", "Team2")

        players = [[player1, player2], [player3, player4]]
        belote = Belote(players)

        teams = [{0: [('carre', 10), ('carre', 12)]}, {3: [('tierce', 14)]}]
        hist = [{
            0: [('carre', 10)]
        }, {}, {
            0: [('carre', 12), ('tierce', 9)]
        }, {
            3: [('tierce', 14)]
        }]
        expected_result = [[('carre', 10)], [], [('carre', 12)],
                           [('tierce', 14)]]

        result = belote.final_announcements(teams, hist)
        self.assertEqual(result, expected_result)
Пример #12
0
    def test_init_dunder_with_fractured_list(self):
        e = None
        player1 = Player("Boyan", "Team1")
        player2 = Player("Silvia", "Team1")

        players = [[player1, player2]]

        try:
            g = Belote(players)
        except ValueError as exc:
            e = exc

        self.assertIsNotNone(e)
        self.assertEqual(str(e), "Only one team.")
Пример #13
0
    def test_init_dunder_with_fractured_teams(self):
        e1 = None
        e2 = None
        player1 = Player("Boyan", "Team1")
        player2 = Player("Silvia", "Team1")
        player3 = Player("Marto", "Team2")
        player4 = Player("Gosho", "Team2")
        players1 = [[player1, player2], [player3]]
        players2 = [player1], [player3, player4]

        try:
            g = Belote(players1)
        except ValueError as exc:
            e1 = exc
        try:
            g = Belote(players1)
        except ValueError as exc:
            e2 = exc

        self.assertIsNotNone(e1)
        self.assertIsNotNone(e2)
        self.assertEqual(str(e1), "Too few members in a team.")
        self.assertEqual(str(e2), "Too few members in a team.")
Пример #14
0
    def test_init_dunder_with_duplicating_player(self):
        e = None
        player1 = Player("Boyan", "Team1")
        player2 = Player("Silvia", "Team1")
        player3 = Player("Marto", "Team2")
        player4 = Player("Marto", "Team2")
        players = [[player1, player2], [player3, player4]]

        try:
            g = Belote(players)
        except ValueError as exc:
            e = exc

        self.assertIsNotNone(e)
        self.assertEqual(str(e), "Duplicating players!")
Пример #15
0
    def test_init_dunder_with_a_player_belonging_to_a_third_team(self):
        e = None
        player1 = Player("Boyan", "Team1")
        player2 = Player("Silvia", "Team1")
        player3 = Player("Marto", "Team2")
        player4 = Player("Gosho", "Team3")
        players = [[player1, player2], [player3, player4]]

        try:
            g = Belote(players)
        except ValueError as exc:
            e = exc

        self.assertIsNotNone(e)
        self.assertEqual(str(e), "Members of different teams put in one team!")
Пример #16
0
    def test__validate(self):
        player1 = Player("Boyan", "Team1")
        player2 = Player("Silvia", "Team1")
        player3 = Player("Freeman", "Team2")
        player4 = Player("Marto", "Team2")

        players = [[player1, player2], [player3, player4]]
        belote = Belote(players)

        annoucement = {
            player1: [('carre', 12), ('carre', 15)],
            player2: [('carre', 16)],
            player3: [('tierce', 10)],
            player4: [('tierce', 11), ('belote', 2)]
        }
        expected_result = {
            player1: [],
            player2: [('carre', 16)],
            player3: [],
            player4: [('tierce', 11), ('belote', 2)]
        }
        belote.get_teams_announcements(annoucement)
        result = belote.validate_announcements(annoucement)
        self.assertEqual(result, expected_result)
Пример #17
0
    def test_assign_hands(self):
        e = None
        player1 = Player("Boyan", "Team1")
        player2 = Player("Silvia", "Team1")
        player3 = Player("Marto", "Team2")
        player4 = Player("Gosho", "Team2")
        players = [[player1, player2], [player3, player4]]

        try:
            g = Belote(players)
            g.assign_hands()
        except Exception as exc:
            e = exc

        self.assertIsNone(e)
        self.assertTrue(player1.__dict__["hand"] != [])
        self.assertTrue(player2.__dict__["hand"] != [])
        self.assertTrue(player3.__dict__["hand"] != [])
        self.assertTrue(player4.__dict__["hand"] != [])
        self.assertFalse(any(card in player1.hand for card in player2.hand))
        self.assertFalse(any(card in player1.hand for card in player3.hand))
        self.assertFalse(any(card in player1.hand for card in player4.hand))
        self.assertFalse(any(card in player2.hand for card in player3.hand))
        self.assertFalse(any(card in player3.hand for card in player4.hand))
Пример #18
0
    def test_init_dunder_with_same_team_in_both_team_lists(self):
        e = None
        player1 = Player("Boyan", "Team1")
        player2 = Player("Silvia", "Team1")
        player3 = Player("Marto", "Team1")
        player4 = Player("Gosho", "Team1")
        players = [[player1, player2], [player3, player4]]

        try:
            g = Belote(players)
        except ValueError as exc:
            e = exc

        self.assertIsNotNone(e)
        self.assertEqual(str(e),
                         "Member of one team is already part of the other!")
Пример #19
0
    def test_init_dunder_with_bloated_list(self):
        e = None
        player1 = Player("Boyan", "Team1")
        player2 = Player("Silvia", "Team1")
        player3 = Player("Freeman", "Team2")
        player4 = Player("Marto", "Team2")
        player5 = Player("Gosho", "Team3")
        player6 = Player("Breen", "Team3")

        players = [[player1, player2], [player3, player4], [player5, player6]]

        try:
            g = Belote(players)
        except ValueError as exc:
            e = exc

        self.assertIsNotNone(e)
        self.assertEqual(str(e), "Too many teams to unpack!")