Skip to content

check_splitter_n_splits_consistency

yohou.testing.splitter.check_splitter_n_splits_consistency(splitter, y, X_actual=None)

Check get_n_splits() matches actual split count.

Parameters

Name Type Description Default
splitter BaseSplitter

Splitter instance

required
y DataFrame

Target time series with "time" column

required
X_actual DataFrame None

Raises

Type Description
AssertionError

If reported n_splits doesn't match actual count

Source Code

Show/Hide source
def check_splitter_n_splits_consistency(splitter, y: pl.DataFrame, X_actual: pl.DataFrame | None = None) -> None:
    """Check get_n_splits() matches actual split count.

    Parameters
    ----------
    splitter : BaseSplitter
        Splitter instance
    y : pl.DataFrame
        Target time series with "time" column
    X_actual : pl.DataFrame, optional
        Exogenous features

    Raises
    ------
    AssertionError
        If reported n_splits doesn't match actual count

    """
    reported_n_splits = splitter.get_n_splits(y, X_actual)
    actual_splits = list(splitter.split(y, X_actual))
    actual_n_splits = len(actual_splits)

    assert reported_n_splits == actual_n_splits, (
        f"get_n_splits() returned {reported_n_splits} but split() yielded {actual_n_splits} splits"
    )