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