コード例 #1
0
ファイル: tests.py プロジェクト: imtapps/September-Kata
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)