コード例 #1
0
 def test_large(self):
     for (n, last_digit) in [
         (100, 5),
         (139, 1),
             # (91239, 6),
             # (613455, 0),
             # (999999, 6)
     ]:
         self.assertEqual(last_digit_of_fibonacci_number(n), last_digit)
 def test_small(self):
     for n in range(20):
         self.assertEqual(last_digit_of_fibonacci_number_naive(n),
                          last_digit_of_fibonacci_number(n))
コード例 #3
0
 def test_large(self):
     for (n, last_digit) in [(100, 5), (139, 1), (91239, 6), (35, 5),
                             (36, 2)]:
         self.assertEqual(last_digit_of_fibonacci_number(n), last_digit)
 def test_large(self):
     # for (n, last_digit) in [(100, 5), (139, 1), (91239, 6), type here]:
     for (n, last_digit) in [(100, 5), (139, 1), (91239, 6), (170, 5)]:
         self.assertEqual(last_digit_of_fibonacci_number(n), last_digit)
コード例 #5
0
from test_helper import run_common_tests, failed, passed, check_tests_pass
from last_digit_of_fibonacci_number import last_digit_of_fibonacci_number


def fibonacci_number_last_digit_reference(n):
    assert 0 <= n <= 10**6
    if n <= 1:
        return n

    previous, current = 0, 1
    for _ in range(n - 1):
        previous, current = current, (previous + current) % 10

    return current


if __name__ == '__main__':
    run_common_tests()
    check_tests_pass("last_digit_of_fibonacci_number_unit_tests.py")

    all_tests_passed = True
    for m in [2, 3, 239, 240, 1000, 9999, 10**6]:
        if last_digit_of_fibonacci_number(
                m) != fibonacci_number_last_digit_reference(m):
            all_tests_passed = False
            failed("Wrong answer for n={}".format(m))
            break

    if all_tests_passed:
        passed()