Skip to content

check_panel_invalid_group_raises

yohou.testing.panel.check_panel_invalid_group_raises(forecaster, y_panel, X_panel=None)

Check that invalid panel_group raises ValueError.

Validates error handling when panel_group specifies a panel group that doesn't exist in the training data.

Parameters

Name Type Description Default
forecaster BaseForecaster

Fitted forecaster with panel data

required
y_panel DataFrame

Panel data with panel columns for testing

required
X_panel DataFrame

Panel features

None

Raises

Type Description
AssertionError

If ValueError is not raised for invalid group

Source Code

Show/Hide source
def check_panel_invalid_group_raises(forecaster, y_panel: pl.DataFrame, X_panel: pl.DataFrame | None = None) -> None:
    """Check that invalid panel_group raises ValueError.

    Validates error handling when panel_group specifies a panel group
    that doesn't exist in the training data.

    Parameters
    ----------
    forecaster : BaseForecaster
        Fitted forecaster with panel data
    y_panel : pl.DataFrame
        Panel data with panel columns for testing
    X_panel : pl.DataFrame, optional
        Panel features

    Raises
    ------
    AssertionError
        If ValueError is not raised for invalid group

    """
    _, y_panel_groups = inspect_panel(y_panel)

    if len(y_panel_groups) > 0:
        # Try to predict with invalid group name
        try:
            _call_predict(forecaster, forecasting_horizon=3, groups=["invalid_group"])
            raise AssertionError("predict() should raise ValueError for invalid panel_group, but didn't")
        except ValueError as e:
            # Expected - check error message mentions the invalid group
            assert "invalid_group" in str(e) or "not found" in str(e).lower(), (
                f"ValueError message should mention invalid group, got: {e}"
            )