def test_adds_new_frame_on_throw_when_active_frame_is_complete(self): active_frame = Frame(1) active_frame.rolls = [1,2] self.game.frames = [active_frame] self.game.active_frame = active_frame self.game.throw(5) new_frame = self.game.frames[-1] self.assertEqual(2, len(self.game.frames)) self.assertEqual([5], new_frame.rolls) self.assertEqual(new_frame, self.game.active_frame)
def setUp(self): self.frame = Frame(1)
class FrameTests(TestCase): def setUp(self): self.frame = Frame(1) def test_starts_with_roll_count_of_zero(self): self.assertEqual(0, self.frame.roll_count) def test_starts_rolls_as_empty_list(self): self.assertEqual([], self.frame.rolls) def test_defaults_is_tenth_to_false(self): self.assertEqual(False, self.frame.is_tenth) def test_sets_is_tenth_to_value_passed_in(self): frame = Frame(10) self.assertEqual(True, frame.is_tenth) def test_roll_count_is_number_of_rolls(self): self.frame.rolls = [1, 2] self.assertEqual(2, self.frame.roll_count) def test_add_roll_adds_pins_to_frame_rolls(self): self.frame.rolls = [9] self.frame.add_roll(1) self.assertEqual([9, 1], self.frame.rolls) def test_is_strike_returns_true_when_first_ball_equals_ten(self): self.frame.add_roll(10) self.assertEqual(True, self.frame.is_strike) def test_is_strike_returns_false_when_first_ball_not_ten(self): self.frame.add_roll(1) self.assertEqual(False, self.frame.is_strike) def test_is_strike_returns_false_when_no_rolls(self): self.assertEqual(False, self.frame.is_strike) def test_is_spare_returns_false_when_no_rolls(self): self.assertEqual(False, self.frame.is_spare) def test_is_spare_returns_false_when_only_one_roll(self): self.frame.add_roll(1) self.assertEqual(False, self.frame.is_spare) def test_is_spare_returns_false_when_two_rolls_less_than_ten(self): self.frame.add_roll(1) self.frame.add_roll(8) self.assertEqual(False, self.frame.is_spare) def test_is_spare_returns_true_when_two_rolls_equal_ten(self): self.frame.add_roll(2) self.frame.add_roll(8) self.assertEqual(True, self.frame.is_spare) def test_is_not_complete_when_only_has_one_ball(self): self.frame.rolls =[1] self.assertEqual(False, self.frame.is_complete()) def test_is_complete_when_is_strike(self): self.frame.add_roll(10) self.assertEqual(True, self.frame.is_complete()) def test_is_complete_when_has_two_balls(self): self.frame.rolls =[1, 2] self.assertEqual(True, self.frame.is_complete()) def test_is_complete_when_is_tenth_frame_and_has_three_balls(self): frame = Frame(10) frame.rolls = [1, 9, 10] self.assertEqual(True, frame.is_complete()) def test_is_complete_when_is_tenth_and_has_two_balls_without_strike_or_spare(self): frame = Frame(10) frame.rolls = [1, 2] self.assertEqual(True, frame.is_complete()) def test_is_not_complete_when_tenth_frame_and_one_ball_strike(self): frame = Frame(10) frame.rolls = [10] self.assertEqual(False, frame.is_complete()) def test_is_not_complete_when_tenth_frame_and_two_ball_strike(self): frame = Frame(10) frame.rolls = [10, 2] self.assertEqual(False, frame.is_complete()) def test_is_not_complete_when_tenth_frame_and_two_balls_spare(self): frame = Frame(10) frame.rolls = [1, 9] self.assertEqual(False, frame.is_complete()) def test_is_not_complete_when_tenth_frame_and_only_one_ball(self): frame = Frame(10) frame.rolls = [1] self.assertEqual(False, frame.is_complete()) def test_total_pins_return_sum_of_rolls(self): self.frame.rolls =[1, 2] self.assertEqual(3, self.frame.total_pins)
def test_current_frame_returns_active_frame_plus_one_when_already_complete(self): active_frame = Frame(1) active_frame.rolls = [10] self.game.active_frame = active_frame self.assertEqual(2, self.game.current_frame)
def test_current_frame_returns_active_frame_number_when_not_complete(self): active_frame = Frame(1) active_frame.rolls = [5] self.game.active_frame = active_frame self.assertEqual(1, self.game.current_frame)
def test_game_does_not_have_more_throws_when_active_frame_is_tenth_and_is_complete(self): active_frame = Frame(10) active_frame.rolls = [10, 10, 10] self.game.active_frame = active_frame self.assertEqual(False, self.game.more_throws)
def test_is_not_complete_when_tenth_frame_and_only_one_ball(self): frame = Frame(10) frame.rolls = [1] self.assertEqual(False, frame.is_complete())
def test_is_not_complete_when_tenth_frame_and_two_balls_spare(self): frame = Frame(10) frame.rolls = [1, 9] self.assertEqual(False, frame.is_complete())
def test_is_complete_when_is_tenth_and_has_two_balls_without_strike_or_spare(self): frame = Frame(10) frame.rolls = [1, 2] self.assertEqual(True, frame.is_complete())
def test_is_complete_when_is_tenth_frame_and_has_three_balls(self): frame = Frame(10) frame.rolls = [1, 9, 10] self.assertEqual(True, frame.is_complete())