Files
fn_registry/python/functions/datascience/trend_slope_test.py
T
egutierrez 763e06c127 feat(browser): auto-commit con 178 cambios
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-06-20 18:22:23 +02:00

72 lines
2.0 KiB
Python

"""Tests para trend_slope."""
import random
from trend_slope import trend_slope
def test_increasing_series_slope_positive_up_significant():
values = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
result = trend_slope(values)
assert result["slope"] is not None
assert result["slope"] > 0
assert result["direction"] == "up"
assert result["significant"] is True
assert result["n"] == 10
def test_decreasing_series_slope_negative_down_significant():
values = [10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
result = trend_slope(values)
assert result["slope"] < 0
assert result["direction"] == "down"
assert result["significant"] is True
def test_flat_constant_series_not_significant():
values = [5.0] * 12
result = trend_slope(values)
assert result["direction"] == "flat"
assert result["significant"] is False
def test_random_series_flat_not_significant():
rng = random.Random(42)
values = [rng.gauss(0, 1) for _ in range(60)]
result = trend_slope(values)
assert result["direction"] == "flat"
assert result["significant"] is False
def test_custom_x_axis():
x = [0, 10, 20, 30, 40]
values = [1, 3, 5, 7, 9]
result = trend_slope(values, x)
assert result["slope"] > 0
assert result["direction"] == "up"
assert abs(result["r_squared"] - 1.0) < 1e-9
def test_too_few_pairs_returns_none_slope():
result = trend_slope([1, 2])
assert result["slope"] is None
assert result["direction"] == "unknown"
assert result["significant"] is False
assert result["n"] == 2
def test_drops_none_and_nan_pairs():
values = [1, None, 3, float("nan"), 5, 6, 7]
result = trend_slope(values)
assert result["n"] == 5
assert result["slope"] > 0
assert result["direction"] == "up"
def test_too_few_valid_pairs_after_dropping():
values = [1, None, None, float("nan"), 5]
result = trend_slope(values)
assert result["slope"] is None
assert result["direction"] == "unknown"
assert result["n"] == 2