def test_set_range(self): tmp = FizzBuzz() tmp.setrange(14, 43) self.assertEqual(tmp.fizzbuzz[12], '26') tmp = FizzBuzz() tmp.setrange(43, 14) self.assertEqual(tmp.fizzbuzz[14], 'fizzbuzz')
def test_number_between_1_and_100(self): fizzbuzz = FizzBuzz() with self.assertRaises(Exception): fizzbuzz.convert(-1) with self.assertRaises(Exception): fizzbuzz.convert(0) with self.assertRaises(Exception): fizzbuzz.convert(101)
def test_returns_number_for_input_not_divisible_by_3_or_5(self): self.fizzbuzz = FizzBuzz() self.assertEqual('1', self.fizzbuzz.convert(1)) self.assertEqual('2', self.fizzbuzz.convert(2)) self.assertEqual('4', self.fizzbuzz.convert(4)) self.assertEqual('7', self.fizzbuzz.convert(7)) self.assertEqual('11', self.fizzbuzz.convert(11)) self.assertEqual('13', self.fizzbuzz.convert(13)) self.assertEqual('14', self.fizzbuzz.convert(14))
def fizz_buzz_solution(self): fizzbuzz = FizzBuzz() self.assertRaises(TypeError, fizzbuzz.fizzbuzz, None) self.assertRaises(ValueError, fizzbuzz.fizzbuzz, 0) expected = [ '1', '2', 'Fizz', '4', 'Buzz', 'Fizz', '7', '8', 'Fizz', 'Buzz', '11', 'Fizz', '13', '14', 'FizzBuzz' ] self.assertEqual(fizzbuzz.fizzbuzz(15), expected) print("Success: test_fizz_buzz")
def returns_FizzBuzz_if_x_is_multiple_of_15 (): """ Checks to see if a number is a multiple of 15, Returns 'FizzBuzz' if it is. Returns the input if it is not """ assert FizzBuzz(15) == 'FizzBuzz' # multiple of fifteen assert FizzBuzz(2) == 2 # non-multiple of fifteen assert FizzBuzz(0) == 'FizzBuzz' # zero assert FizzBuzz(-15) == 'FizzBuzz' # negative multiple of fifteen assert FizzBuzz(-4) == -4 # negative non-multiple of fifteen assert FizzBuzz('Fizz') == 'Fizz' # non-number input
def test_1を渡したら文字列1を返す(): # テストケースで行うことは下記3項目 # (i). 前準備 # (ii). 実行 # (iii). 検証 # →TDD初心者のうちは3から1の順番に実装していく # 1. # 文字列1が返ってると仮定して、"assert == '1'"と書いたところで手が止まる # 2. # assertの左辺にFizzBuzzクラス(?)の数字を文字列に返すメソッドが # 存在すると仮定してassertを書き進める # assert fizzbuzz.convert(1) == '1'と書いて実行 # fizzbuzzなんてものを定義していないので、エラーが発生する # (NameError: name 'fizzbuzz' is not defined) # fizzbuzz.pyにFizzBuzzクラスと「引数とreturn Noneのみ定義した」convertメソッドを作成して、 # test_fizzbuzz.pyにimportする # # 前準備 # fizzbuzz = FizzBuzz() # # 実行 # # 検証 # assert fizzbuzz.convert(1) == '1' # .convert()に何も処理を書いてないので当然落ちる # (AssertionError: assert None == '1') # このテストを通す最小限の実装をする # .convert()の戻り値にreturn str(1)を書く # 前準備 fizzbuzz = FizzBuzz() # 実行 # 検証 assert fizzbuzz.convert(1) == '1'
def setUp(self): self.app = FizzBuzz()
def setUp(self): """Setup the test environment""" self.fb = FizzBuzz()
def test_fizz_when_num_is_3(): instance = FizzBuzz() assert instance.fizzbuzz(3) == "Fizz"
def test_simple_should_return_the_number(self): self.assertEqual(FizzBuzz(1), 1) self.assertEqual(FizzBuzz(2), 2) self.assertEqual(FizzBuzz(4), 4)
def test_multiple_5_should_return_buzz(self): self.assertEqual(FizzBuzz(5), "buzz") self.assertEqual(FizzBuzz(10), "buzz")
def test_new_rules(self): new_rules = {7: 'Bazz'} self.assertEqual(FizzBuzz(new_rules).value_for(7), 'Bazz')
def test_non_matching(self): self.assertEqual(FizzBuzz().value_for(7), '7')
def test_rule_combination(self): self.assertEqual(FizzBuzz().value_for(15), 'FizzBuzz')
def init(): fizzbuzz = FizzBuzz() numero = int(input('Insira um numero: ')) print(fizzbuzz.converter(numero))
def test_default_fizz_rule(self): self.assertEqual(FizzBuzz().value_for(3), 'Fizz')
def test_multiple_3_should_return_fizz(self): self.assertEqual(FizzBuzz(3), "fizz") self.assertEqual(FizzBuzz(9), "fizz")
def test_overwrite_default_rules(self): new_rules = {5: 'Bozz'} self.assertEqual(FizzBuzz(new_rules).value_for(3), '3') self.assertEqual(FizzBuzz(new_rules).value_for(5), 'Bozz')
def test_multiple_3_and_5_should_return_fizzbuzz(self): self.assertEqual(FizzBuzz(15), "fizzbuzz") self.assertEqual(FizzBuzz(30), "fizzbuzz")
def test_iterator_starts_from_default_1(self): iterator = FizzBuzz().iterator() self.assertEqual(next(iterator), '1')
def test_print_fizzbuzz_given_range(): instance = FizzBuzz() assert instance.print_fizzbuzz(4, 7) == "4, Buzz, Fizz, 7"
def test_iterator_starts_from_custom_start(self): iterator = FizzBuzz().iterator(start=7) self.assertEqual(next(iterator), '7')
def test_buzz_when_num_is_5(): instance = FizzBuzz() assert instance.fizzbuzz(5) == "Buzz"
def test_iterator_stops_at_default_100(self): iterator = FizzBuzz().iterator() for last in iterator: pass self.assertEqual(last, 'Buzz')
def throws_an_error_if_no_input (): with raises(TypeError) as exception_info: FizzBuzz() # pylint: disable=no-value-for-parameter assert exception_info.type == TypeError assert "missing 1 required positional argument" in str(exception_info.value)
def test_iterator_stops_at_custom_stop(self): iterator = FizzBuzz().iterator(stop=98) for last in iterator: pass self.assertEqual(last, '98')
# test_fizzbuzz.py # import the code to be tested from fizzbuzz import FizzBuzz fb = FizzBuzz() # a smoke test def test_smoke(): assert True == True def test_fizz(): assert fb.fizz(3) == "Fizz" assert fb.fizz(33) == "Fizz" assert fb.fizz(30303033) == "Fizz" assert fb.fizz(1) == 1 assert fb.fizz(5) == 5 assert fb.fizz(37) == 37 def test_buzz(): assert fb.buzz(5) == "Buzz" assert fb.buzz(55) == "Buzz" assert fb.buzz(55055095) == "Buzz" assert fb.buzz(1) == 1 assert fb.buzz(3) == 3 assert fb.buzz(37) == 37
def test_iterator_applies_fizz_buzz_rules(self): iterator = FizzBuzz().iterator(start=1, stop=10) first10 = list(iterator) self.assertEqual( first10, ['1', '2', 'Fizz', '4', 'Buzz', 'Fizz', '7', '8', 'Fizz', 'Buzz'])
def setUp(self): self.fizzbuzz = FizzBuzz()
def test_infinite_iterator_is_loooong(self): iterator = FizzBuzz().iterator(stop=-1) loong = next(islice(iterator, 96831, None)) self.assertEqual(loong, '96832')