Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
64 changes: 53 additions & 11 deletions app/test_split_integer.py
Original file line number Diff line number Diff line change
@@ -1,21 +1,63 @@
from app.split_integer import split_integer
import pytest
from app import split_integer


def test_sum_of_the_parts_should_be_equal_to_value() -> None:
pass
def test_basic_case() -> None:
assert split_integer.split_integer(8, 1) == [8]


def test_should_split_into_equal_parts_when_value_divisible_by_parts() -> None:
pass
def test_split_integer_6_2() -> None:
assert split_integer.split_integer(6, 2) == [3, 3]


def test_should_return_part_equals_to_value_when_split_into_one_part() -> None:
pass
def test_split_on_equal_part() -> None:
assert split_integer.split_integer(17, 4) == [4, 4, 4, 5]


def test_parts_should_be_sorted_when_they_are_not_equal() -> None:
pass
def test_split_and_increment_the_last_number() -> None:
assert split_integer.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
def test_split_on_incorrect_parts() -> None:
assert split_integer.split_integer(8, 2) == [4, 4]
assert split_integer.split_integer(10, 3) == [3, 3, 4]


def test_split_on_different_parts() -> None:
assert split_integer.split_integer(2, 5) == [0, 0, 0, 1, 1]
assert split_integer.split_integer(100, 10) == [10] * 10


@pytest.mark.parametrize(
"value, number_of_parts, expected",
[
(10, 1, [10]),
(8, 2, [4, 4]),
(17, 4, [4, 4, 4, 5]),
(32, 6, [5, 5, 5, 5, 6, 6]),
(2, 5, [0, 0, 0, 1, 1]),
(10, 3, [3, 3, 4]),
(100, 10, [10] * 10),
]
)
def test_split_integer_exact(
value: int,
number_of_parts: int,
expected: list
) -> None:
assert split_integer.split_integer(value, number_of_parts) == expected


def test_sorted_ascending() -> None:
assert (
sorted(split_integer.split_integer(17, 4))
== split_integer.split_integer(17, 4)
)


def test_max_min_difference() -> None:
assert (
max(split_integer.split_integer(32, 6))
- min(split_integer.split_integer(32, 6))
<= 1
)
Loading