Spaces:
Runtime error
Runtime error
| """Tests for mathematical utility functions.""" | |
| import pytest | |
| from src.utils.math import calculate_mean, calculate_median | |
| def test_calculate_mean(): | |
| """Test the calculate_mean function with various inputs.""" | |
| # Test with integers | |
| assert calculate_mean([1, 2, 3, 4, 5]) == 3.0 | |
| # Test with floats | |
| assert calculate_mean([1.5, 2.5, 3.5]) == 2.5 | |
| # Test with mixed numbers | |
| assert calculate_mean([1, 2.5, 3]) == 2.1666666666666665 | |
| def test_calculate_mean_errors(): | |
| """Test error handling in calculate_mean function.""" | |
| # Test empty list | |
| with pytest.raises(ValueError) as exc: | |
| calculate_mean([]) | |
| assert str(exc.value) == "Cannot calculate mean of empty list" | |
| # Test invalid input types | |
| with pytest.raises(TypeError) as exc: | |
| calculate_mean([1, "2", 3]) | |
| assert str(exc.value) == "All elements must be numbers" | |
| def test_calculate_median(): | |
| """Test the calculate_median function with various inputs.""" | |
| # Test odd number of integers | |
| assert calculate_median([1, 2, 3, 4, 5]) == 3.0 | |
| # Test even number of integers | |
| assert calculate_median([1, 2, 3, 4]) == 2.5 | |
| # Test unsorted list | |
| assert calculate_median([5, 2, 1, 4, 3]) == 3.0 | |
| # Test with floats | |
| assert calculate_median([1.5, 2.5, 3.5]) == 2.5 | |
| # Test with mixed numbers | |
| assert calculate_median([1, 2.5, 3]) == 2.5 | |
| def test_calculate_median_errors(): | |
| """Test error handling in calculate_median function.""" | |
| # Test empty list | |
| with pytest.raises(ValueError) as exc: | |
| calculate_median([]) | |
| assert str(exc.value) == "Cannot calculate median of empty list" | |
| # Test invalid input types | |
| with pytest.raises(TypeError) as exc: | |
| calculate_median([1, "2", 3]) | |
| assert str(exc.value) == "All elements must be numbers" |