예제 #1
0
    def test_compute_incomplete_score_on_frames(self):
        """
        Tests if the score is computed correctly on an incomplete game
        """
        frames = []

        frame = BowlingFrame("test")
        frame.registerThrowing(2)
        frame.registerThrowing(3)
        frames.append(frame)
        frame = BowlingFrame("test")
        frame.registerThrowing(6)
        frame.registerThrowing(4)
        frames.append(frame)  # Spare
        frame = BowlingFrame("test")
        frame.registerThrowing(8)
        frame.registerThrowing(1)
        frames.append(frame)
        frame = BowlingFrame("test")
        frame.registerThrowing(10)
        frames.append(frame)  # Strike
        frame = BowlingFrame("test")
        frame.registerThrowing(3)
        frame.registerThrowing(0)
        frames.append(frame)
        self.assertEqual(BowlingGame.computeScoreOnFrames(frames), 48)
예제 #2
0
 def test_play(self):
     """
     Tests if the play build up correctly
     """
     game = BowlingGame(['test'])
     game.play([2, 3, 6, 4, 8, 1, 10, 3, 0, 10, 10, 10, 10, 1, 9, 5],
               verbose=False)
     self.assertEqual(len(game.frames['test']), 10)
     self.assertEqual(BowlingGame.computeScoreOnFrames(game.frames['test']),
                      164)
예제 #3
0
 def test_compute_max_score_on_frames(self):
     """
     Tests if the maximum score is computed correctly
     """
     frames = []
     for _ in range(9):
         frame = BowlingFrame("test")
         frame.registerThrowing(10)
         frames.append(frame)
     frame = BowlingFrame("test", ending=True)
     # Three strikes are allowed in the ending frame
     frame.registerThrowing(10)
     frame.registerThrowing(10)
     frame.registerThrowing(10)
     frames.append(frame)
     self.assertEqual(BowlingGame.computeScoreOnFrames(frames), 300)
예제 #4
0
    def test_compute_undefined_score_on_frames(self):
        """
        Tests if the score is undefined on an incomplete game ending on a strike
        """
        frames = []

        frame = BowlingFrame("test")
        frame.registerThrowing(2)
        frame.registerThrowing(3)
        frames.append(frame)
        frame = BowlingFrame("test")
        frame.registerThrowing(6)
        frame.registerThrowing(4)
        frames.append(frame)  # Spare
        frame = BowlingFrame("test")
        frame.registerThrowing(8)
        frame.registerThrowing(1)
        frames.append(frame)
        frame = BowlingFrame("test")
        frame.registerThrowing(10)
        frames.append(frame)  # Strike
        self.assertEqual(BowlingGame.computeScoreOnFrames(frames), None)
예제 #5
0
 def test_score_empty_game(self):
     """
     Tests if the score of an empty game is 0
     """
     self.assertEqual(BowlingGame.computeScoreOnFrames([]), 0)
     self.assertEqual(BowlingGame.computeScore([]), 0)