additional tests for Round class

This commit is contained in:
Jakub Senderák
2020-03-27 22:28:04 +01:00
parent 404002c50e
commit 93e51762f5
+60 -5
View File
@@ -122,6 +122,24 @@ class StashCase(unittest.TestCase):
class RoundCase(unittest.TestCase):
def test_round_constructor(self):
self.assertRaises(BridzikException, Round, round_number=8, first_player=0)
self.assertRaises(BridzikException, Round, round_number=0, first_player=4)
for first_player in range(4):
for round_n in range(8):
r = Round(round_n, first_player)
self.assertEqual(r.round_number, round_n)
self.assertEqual(r.first_player, first_player)
self.assertEqual(r.guesses, {})
self.assertEqual(r.stashes, [])
self.assertEqual(len(r.round_cards), 4*(8-round_n))
for player_n in range(4):
self.assertEqual(
r.round_cards[player_n * (8-round_n) : (player_n+1) * (8-round_n)],
r.player_cards[player_n]
)
def test_add_player_guess(self):
r = Round(0, 1)
@@ -172,7 +190,8 @@ class RoundCase(unittest.TestCase):
r.add_player_guess(0, 4)
self.assertEqual(r.get_active_player(), 0)
# TODO dokoncit pre prebiehajuce kolo
r.play_card(0, r.player_cards[0][0])
self.assertEqual(r.get_active_player(), 1)
def test_play_card(self):
shuffler = lambda list: None
@@ -208,17 +227,53 @@ class RoundCase(unittest.TestCase):
self.assertRaises(BridzikException, r.play_card, player=3, card=c3[0]) # ina farba
r.play_card(3, c3[1])
# print(c2)
# print(r.player_cards[2])
r.play_card(2, c2[1])
r.play_card(3, c3[0])
self.assertRaises(BridzikException, r.play_card, player=0, card=c0[0]) # uz zahrana karta
r.play_card(0, c0[1])
r.play_card(1, c1[1])
self.assertEqual(len(r.stashes), 2)
self.assertTrue(len(r.stashes), 2)
def test_is_completed(self):
r = Round(7, 1)
self.assertFalse(r.is_completed())
r.add_player_guess(1, 0)
r.add_player_guess(2, 0)
r.add_player_guess(3, 1)
r.add_player_guess(0, 1)
r.play_card(3, r.player_cards[3][0])
r.play_card(0, r.player_cards[0][0])
r.play_card(1, r.player_cards[1][0])
self.assertFalse(r.is_completed())
r.play_card(2, r.player_cards[2][0])
self.assertTrue(r.is_completed())
def test_is_guessing_completed(self):
r = Round(6, 1)
self.assertFalse(r.is_guessing_completed())
r.add_player_guess(1, 1)
r.add_player_guess(2, 0)
r.add_player_guess(3, 2)
r.add_player_guess(0, 4)
self.assertTrue(r.is_guessing_completed())
def test_get_last_stash(self):
r = Round(7, 0)
self.assertIsNone(r.get_last_stash())
r.add_player_guess(0, 1)
r.add_player_guess(1, 1)
r.add_player_guess(2, 0)
r.add_player_guess(3, 0)
self.assertEqual(r.get_last_stash(), r.stashes[0])
r.play_card(0, r.player_cards[0][0])
r.play_card(1, r.player_cards[1][0])
r.play_card(2, r.player_cards[2][0])
r.play_card(3, r.player_cards[3][0])
self.assertEqual(r.get_last_stash(), r.stashes[0])
r.stashes.append(Stash(2))
self.assertEqual(r.get_last_stash(), r.stashes[1])
if __name__ == '__main__':