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_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_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_two_balls_spare(self): frame = Frame(10) frame.rolls = [1, 9] self.assertEqual(False, 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())