diff --git a/app/split_integer.py b/app/split_integer.py index 28c99c9b0..603fe0a55 100644 --- a/app/split_integer.py +++ b/app/split_integer.py @@ -2,6 +2,6 @@ def split_integer(value: int, number_of_parts: int) -> list: parts = [] for parts_left in range(number_of_parts, 0, -1): next_number = value // parts_left - parts.append(value // parts_left) + parts.append(next_number) value -= next_number return parts diff --git a/app/test_split_integer.py b/app/test_split_integer.py index ef3aa668a..63060cbd7 100644 --- a/app/test_split_integer.py +++ b/app/test_split_integer.py @@ -2,20 +2,35 @@ def test_sum_of_the_parts_should_be_equal_to_value() -> None: - pass + assert sum(split_integer(17, 4)) == 17 + assert sum(split_integer(32, 6)) == 32 + assert sum(split_integer(11, 4)) == 11 + assert sum(split_integer(3, 5)) == 3 def test_should_split_into_equal_parts_when_value_divisible_by_parts() -> None: - pass + assert split_integer(6, 2) == [3, 3] + assert split_integer(9, 3) == [3, 3, 3] + assert split_integer(12, 4) == [3, 3, 3, 3] def test_should_return_part_equals_to_value_when_split_into_one_part() -> None: - pass + assert split_integer(8, 1) == [8] -def test_parts_should_be_sorted_when_they_are_not_equal() -> None: - pass +def test_parts_should_be_sorted_asc() -> None: + assert split_integer(17, 4) == [4, 4, 4, 5] + assert split_integer(32, 6) == [5, 5, 5, 5, 6, 6] def test_should_add_zeros_when_value_is_less_than_number_of_parts() -> None: - pass + assert split_integer(3, 5) == [0, 0, 1, 1, 1] + + +def test_difference_between_max_and_min_should_be_less_than_or_equal_to_one()\ + -> None: + res1 = split_integer(17, 4) + assert max(res1) - min(res1) <= 1 + + res2 = split_integer(32, 6) + assert max(res2) - min(res2) <= 1