From cddde3aa5285fb32b4b8c08c6f82f8863e8cb2af Mon Sep 17 00:00:00 2001 From: Ava Gaiety Wroten Date: Tue, 15 Sep 2020 22:01:07 -0500 Subject: [PATCH] By eight --- main.py | 16 ++++++++++++---- tests/eight_test.py | 22 ++++++++++++++++++++++ tests/four_test.py | 2 +- 3 files changed, 35 insertions(+), 5 deletions(-) create mode 100644 tests/eight_test.py diff --git a/main.py b/main.py index ae9ad75..9abb35f 100644 --- a/main.py +++ b/main.py @@ -7,11 +7,11 @@ def divide_by_two(num): # Take last digit, divide by two only on that def divide_by_three(num): # Sum each digit in number, then checking that sum is divisible by three return _sum_digits(num) % 3 == 0 -def divide_by_four(num): # If last two digits are divisible by four - if (num < 10): return num % 4 == 0 - tens_place = _get_last_digit(num, 2) +def divide_by_four(num): # If last two digits are divisible by four, plus a simplifier of multiplying the tens place by two + if (num <= 10): return num % 4 == 0 + tens_place = _get_last_digit(num, 2) * 10 ones_place = _get_last_digit(num) - num_to_check = (tens_place * 10) + ones_place + num_to_check = (tens_place * 2) + ones_place return num_to_check % 4 == 0 def divide_by_five(num): # If last digit is a zero or a five return true @@ -22,6 +22,14 @@ def divide_by_six(num): # Same rules as dividing by three, and ensure original n num_sum = _sum_digits(num) return num_sum % 3 == 0 and divide_by_two(num) +def divide_by_eight(num): # Same rules as dividing by four, but for last three digits + if (num <= 100): return num % 8 == 0 + hundreds_place = _get_last_digit(num, 3) * 100 + tens_place = _get_last_digit(num, 2) * 10 + ones_place = _get_last_digit(num) + num_to_check = (hundreds_place * 4) + (tens_place * 2) + ones_place + return num_to_check % 8 == 0 + def divide_by_nine(num): # Same rules as dividing by three, but checking that sum is divisible by nine return _sum_digits(num) % 9 == 0 diff --git a/tests/eight_test.py b/tests/eight_test.py new file mode 100644 index 0000000..0bee8bb --- /dev/null +++ b/tests/eight_test.py @@ -0,0 +1,22 @@ +from main import divide_by_eight +import unittest + +class TestDivideByEight(unittest.TestCase): + def test_by_1(self): + self.assertFalse(divide_by_eight(1)) + def test_by_2(self): + self.assertFalse(divide_by_eight(2)) + def test_by_4(self): + self.assertFalse(divide_by_eight(4)) + def test_by_8(self): + self.assertTrue(divide_by_eight(8)) + def test_by_10(self): + self.assertFalse(divide_by_eight(10)) + def test_by_16(self): + self.assertTrue(divide_by_eight(16)) + def test_by_100(self): + self.assertFalse(divide_by_eight(100)) + def test_by_800(self): + self.assertTrue(divide_by_eight(800)) + def test_by_362880(self): + self.assertTrue(divide_by_eight(362880)) diff --git a/tests/four_test.py b/tests/four_test.py index 9451a27..cde4cbb 100644 --- a/tests/four_test.py +++ b/tests/four_test.py @@ -1,7 +1,7 @@ from main import divide_by_four import unittest -class TestDivideByTwo(unittest.TestCase): +class TestDivideByFour(unittest.TestCase): def test_by_1(self): self.assertFalse(divide_by_four(1)) def test_by_2(self):