def score_of_next_rolls_after_a_strike(self, frame):
        get_frame_scores_one_frame_after_current = list(self.bowling_frames[frame + 1])
        get_frame_scores_two_frames_after_current = self.find_two_frames_after_current(frame)
        combined_frame_scores = get_frame_scores_one_frame_after_current + get_frame_scores_two_frames_after_current

        first_score_after_strike = Score_Calculation(combined_frame_scores[0]).calc_score()
        second_score_after_strike = Score_Calculation(combined_frame_scores[1]).calc_score()
        return first_score_after_strike + second_score_after_strike
 def test_CalcScore_GivenASpareResultForAnyFrame_ReturnsCorrectScore(self):
     result = Score_Calculation("/").calc_score()
     assert result == 10
 def test_CalcScoreFinalFrame_GivenAZeroFrameForFinalFrame_ReturnsCorrectScore(
         self):
     result = Score_Calculation(["-", "-"]).calc_score_final_frame()
     assert result == 0
 def test_CalcScoreFinalFrame_GivenASpareAndOpenBonusFrameForFinalFrame_ReturnsCorrectScore(
         self):
     result = Score_Calculation(["7", "/", "5"]).calc_score_final_frame()
     assert result == 15
 def test_CalcScoreFinalFrame_GivenAllStrikesForFinalFrame_ReturnsCorrectScore(
         self):
     result = Score_Calculation(["X", "X", "X"]).calc_score_final_frame()
     assert result == 30
 def score_final_frame(self, frame):
     final_frame_scores = list(self.bowling_frames[frame + 1])
     return Score_Calculation(final_frame_scores).calc_score_final_frame()
 def score_open_frame(self, frame):
     return Score_Calculation(self.bowling_frames[frame][0]).calc_score() + Score_Calculation(self.bowling_frames[frame][1]).calc_score()
 def score_a_spare(self, frame):
     totals = 10
     get_frame_scores_one_frame_after_current = list(self.bowling_frames[frame + 1])
     totals += Score_Calculation(get_frame_scores_one_frame_after_current[0]).calc_score()
     return totals