Files
Time-Series-Analysis/venv/lib/python3.11/site-packages/prophet/tests/conftest.py
2025-08-01 04:33:03 -04:00

58 lines
1.8 KiB
Python

from pathlib import Path
import pandas as pd
import pytest
@pytest.fixture(scope="package")
def daily_univariate_ts() -> pd.DataFrame:
"""Daily univariate time series with 2 years of data"""
return pd.read_csv(Path(__file__).parent / "data.csv", parse_dates=["ds"])
@pytest.fixture(scope="package")
def subdaily_univariate_ts() -> pd.DataFrame:
"""Sub-daily univariate time series"""
return pd.read_csv(Path(__file__).parent / "data2.csv", parse_dates=["ds"])
@pytest.fixture(scope="package")
def large_numbers_ts() -> pd.DataFrame:
"""Univariate time series with large values to test scaling"""
return pd.read_csv(Path(__file__).parent / "data3.csv", parse_dates=["ds"])
def pytest_configure(config):
config.addinivalue_line("markers", "slow: mark tests as slow (include in run with --test-slow)")
def pytest_addoption(parser):
parser.addoption("--test-slow", action="store_true", default=False, help="Run slow tests")
parser.addoption(
"--backend",
nargs="+",
default=["CMDSTANPY"],
help="Probabilistic Programming Language backend to perform tests with.",
)
def pytest_collection_modifyitems(config, items):
if config.getoption("--test-slow"):
return
skip_slow = pytest.mark.skip(reason="Skipped due to the lack of '--test-slow' argument")
for item in items:
if "slow" in item.keywords:
item.add_marker(skip_slow)
def pytest_generate_tests(metafunc):
"""
For each test, if `backend` is used as a fixture, add a parametrization equal to the value of the
--backend option.
This is used to re-run the test suite for different probabilistic programming language backends
(e.g. cmdstanpy, numpyro).
"""
if "backend" in metafunc.fixturenames:
metafunc.parametrize("backend", metafunc.config.getoption("backend"))