41 lines
1.3 KiB
Python
41 lines
1.3 KiB
Python
"""Tests for the utils module."""
|
|
|
|
import pytest
|
|
from test_package.utils import format_number, is_even, factorial
|
|
|
|
|
|
class TestUtils:
|
|
"""Test cases for utility functions."""
|
|
|
|
def test_format_number_integer(self):
|
|
"""Test formatting integers."""
|
|
assert format_number(42) == "42"
|
|
assert format_number(-5) == "-5"
|
|
|
|
def test_format_number_float(self):
|
|
"""Test formatting floats."""
|
|
assert format_number(3.14159) == "3.14"
|
|
assert format_number(3.14159, 3) == "3.142"
|
|
assert format_number(2.0) == "2.00"
|
|
|
|
def test_is_even(self):
|
|
"""Test even number detection."""
|
|
assert is_even(2) is True
|
|
assert is_even(4) is True
|
|
assert is_even(1) is False
|
|
assert is_even(3) is False
|
|
assert is_even(0) is True
|
|
assert is_even(-2) is True
|
|
assert is_even(-1) is False
|
|
|
|
def test_factorial_positive(self):
|
|
"""Test factorial of positive numbers."""
|
|
assert factorial(0) == 1
|
|
assert factorial(1) == 1
|
|
assert factorial(5) == 120
|
|
assert factorial(3) == 6
|
|
|
|
def test_factorial_negative(self):
|
|
"""Test factorial of negative numbers raises error."""
|
|
with pytest.raises(ValueError, match="Factorial is not defined for negative numbers"):
|
|
factorial(-1) |