From bdeb310d1a8f44d32a82a76f335a4ce987ccea2f Mon Sep 17 00:00:00 2001 From: Aleksandr Babenko Date: Mon, 1 Jun 2026 13:15:17 +0300 Subject: [PATCH 1/5] Solution --- app/test_split_integer.py | 51 ++++++++++++++++++++++++++++++++++----- 1 file changed, 45 insertions(+), 6 deletions(-) diff --git a/app/test_split_integer.py b/app/test_split_integer.py index ef3aa668a..747affb0b 100644 --- a/app/test_split_integer.py +++ b/app/test_split_integer.py @@ -1,21 +1,60 @@ -from app.split_integer import split_integer +import app.split_integer def test_sum_of_the_parts_should_be_equal_to_value() -> None: - pass + assert sum(app.split_integer.split_integer(17, 4)) == 17 + assert sum(app.split_integer.split_integer(32, 6)) == 32 + assert sum(app.split_integer.split_integer(11, 4)) == 11 + assert sum(app.split_integer.split_integer(3, 5)) == 3 def test_should_split_into_equal_parts_when_value_divisible_by_parts() -> None: - pass + result = app.split_integer.split_integer(6, 2) + assert result == [3, 3] + assert max(result) - min(result) <= 1 + + result = app.split_integer.split_integer(9, 3) + assert result == [3, 3, 3] + assert max(result) - min(result) <= 1 + + result = app.split_integer.split_integer(12, 4) + assert result == [3, 3, 3, 3] + assert max(result) - min(result) <= 1 def test_should_return_part_equals_to_value_when_split_into_one_part() -> None: - pass + result = app.split_integer.split_integer(8, 1) + assert result == [8] + assert len(result) == 1 + assert sum(result) == 8 def test_parts_should_be_sorted_when_they_are_not_equal() -> None: - pass + result = app.split_integer.split_integer(17, 4) + assert result == [4, 4, 4, 5] + assert result == sorted(result) + assert max(result) - min(result) <= 1 + + result = app.split_integer.split_integer(32, 6) + assert result == [5, 5, 5, 5, 6, 6] + assert result == sorted(result) + assert max(result) - min(result) <= 1 + + result = app.split_integer.split_integer(11, 4) + assert result == [2, 3, 3, 3] + assert result == sorted(result) + assert max(result) - min(result) <= 1 def test_should_add_zeros_when_value_is_less_than_number_of_parts() -> None: - pass + result = app.split_integer.split_integer(3, 5) + assert result == [0, 0, 1, 1, 1] + assert len(result) == 5 + assert sum(result) == 3 + assert max(result) - min(result) <= 1 + + result = app.split_integer.split_integer(1, 4) + assert result == [0, 0, 0, 1] + assert len(result) == 4 + assert sum(result) == 1 + assert max(result) - min(result) <= 1 From 7a69db174bc5119d74b536b4a097968989773792 Mon Sep 17 00:00:00 2001 From: Aleksandr Babenko Date: Mon, 1 Jun 2026 13:43:03 +0300 Subject: [PATCH 2/5] Solution --- app/test_split_integer.py | 49 +++++++-------------------------------- 1 file changed, 9 insertions(+), 40 deletions(-) diff --git a/app/test_split_integer.py b/app/test_split_integer.py index 747affb0b..4c2378390 100644 --- a/app/test_split_integer.py +++ b/app/test_split_integer.py @@ -9,52 +9,21 @@ def test_sum_of_the_parts_should_be_equal_to_value() -> None: def test_should_split_into_equal_parts_when_value_divisible_by_parts() -> None: - result = app.split_integer.split_integer(6, 2) - assert result == [3, 3] - assert max(result) - min(result) <= 1 - - result = app.split_integer.split_integer(9, 3) - assert result == [3, 3, 3] - assert max(result) - min(result) <= 1 - - result = app.split_integer.split_integer(12, 4) - assert result == [3, 3, 3, 3] - assert max(result) - min(result) <= 1 + assert app.split_integer.split_integer(6, 2) == [3, 3] + assert app.split_integer.split_integer(9, 3) == [3, 3, 3] + assert app.split_integer.split_integer(12, 4) == [3, 3, 3, 3] def test_should_return_part_equals_to_value_when_split_into_one_part() -> None: - result = app.split_integer.split_integer(8, 1) - assert result == [8] - assert len(result) == 1 - assert sum(result) == 8 + assert app.split_integer.split_integer(8, 1) == [8] def test_parts_should_be_sorted_when_they_are_not_equal() -> None: - result = app.split_integer.split_integer(17, 4) - assert result == [4, 4, 4, 5] - assert result == sorted(result) - assert max(result) - min(result) <= 1 - - result = app.split_integer.split_integer(32, 6) - assert result == [5, 5, 5, 5, 6, 6] - assert result == sorted(result) - assert max(result) - min(result) <= 1 - - result = app.split_integer.split_integer(11, 4) - assert result == [2, 3, 3, 3] - assert result == sorted(result) - assert max(result) - min(result) <= 1 + assert app.split_integer.split_integer(17, 4) == [4, 4, 4, 5] + assert app.split_integer.split_integer(32, 6) == [5, 5, 5, 5, 6, 6] + assert app.split_integer.split_integer(11, 4) == [2, 3, 3, 3] def test_should_add_zeros_when_value_is_less_than_number_of_parts() -> None: - result = app.split_integer.split_integer(3, 5) - assert result == [0, 0, 1, 1, 1] - assert len(result) == 5 - assert sum(result) == 3 - assert max(result) - min(result) <= 1 - - result = app.split_integer.split_integer(1, 4) - assert result == [0, 0, 0, 1] - assert len(result) == 4 - assert sum(result) == 1 - assert max(result) - min(result) <= 1 + assert app.split_integer.split_integer(3, 5) == [0, 0, 1, 1, 1] + assert app.split_integer.split_integer(1, 4) == [0, 0, 0, 1] \ No newline at end of file From c93de60512c7df04c5c7112d6686d7ed1d152ed0 Mon Sep 17 00:00:00 2001 From: Aleksandr Babenko Date: Mon, 1 Jun 2026 19:14:56 +0300 Subject: [PATCH 3/5] Solution --- app/test_split_integer.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/test_split_integer.py b/app/test_split_integer.py index 4c2378390..06e52cbf3 100644 --- a/app/test_split_integer.py +++ b/app/test_split_integer.py @@ -26,4 +26,4 @@ def test_parts_should_be_sorted_when_they_are_not_equal() -> None: def test_should_add_zeros_when_value_is_less_than_number_of_parts() -> None: assert app.split_integer.split_integer(3, 5) == [0, 0, 1, 1, 1] - assert app.split_integer.split_integer(1, 4) == [0, 0, 0, 1] \ No newline at end of file + assert app.split_integer.split_integer(1, 4) == [0, 0, 0, 1] From a38573ec05a833bd38c455b9774c92935370973b Mon Sep 17 00:00:00 2001 From: Aleksandr Babenko Date: Tue, 21 Jul 2026 07:58:36 +0300 Subject: [PATCH 4/5] Fix mentor issues --- app/split_integer.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 From af0a91f7af0e9703dc2c373982b03be5771e1d6e Mon Sep 17 00:00:00 2001 From: Aleksandr Babenko Date: Tue, 21 Jul 2026 19:02:37 +0300 Subject: [PATCH 5/5] Clean up imports to use direct import of split_integer --- app/test_split_integer.py | 37 ++++++++++++++++++++++--------------- 1 file changed, 22 insertions(+), 15 deletions(-) diff --git a/app/test_split_integer.py b/app/test_split_integer.py index 06e52cbf3..63060cbd7 100644 --- a/app/test_split_integer.py +++ b/app/test_split_integer.py @@ -1,29 +1,36 @@ -import app.split_integer +from app.split_integer import split_integer def test_sum_of_the_parts_should_be_equal_to_value() -> None: - assert sum(app.split_integer.split_integer(17, 4)) == 17 - assert sum(app.split_integer.split_integer(32, 6)) == 32 - assert sum(app.split_integer.split_integer(11, 4)) == 11 - assert sum(app.split_integer.split_integer(3, 5)) == 3 + 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: - assert app.split_integer.split_integer(6, 2) == [3, 3] - assert app.split_integer.split_integer(9, 3) == [3, 3, 3] - assert app.split_integer.split_integer(12, 4) == [3, 3, 3, 3] + 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: - assert app.split_integer.split_integer(8, 1) == [8] + assert split_integer(8, 1) == [8] -def test_parts_should_be_sorted_when_they_are_not_equal() -> None: - assert app.split_integer.split_integer(17, 4) == [4, 4, 4, 5] - assert app.split_integer.split_integer(32, 6) == [5, 5, 5, 5, 6, 6] - assert app.split_integer.split_integer(11, 4) == [2, 3, 3, 3] +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: - assert app.split_integer.split_integer(3, 5) == [0, 0, 1, 1, 1] - assert app.split_integer.split_integer(1, 4) == [0, 0, 0, 1] + 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