Skip to content

check_scorer_component_subselection

yohou.testing.scorer.check_scorer_component_subselection(scorer, y_truth, y_pred, components)

Check components filtering works correctly.

Parameters

Name Type Description Default
scorer BaseScorer

Scorer instance

required
y_truth DataFrame

Ground truth

required
y_pred DataFrame

Predictions

required
components list of str

Component names to filter

required

Raises

Type Description
AssertionError

If component subselection fails

Source Code

Show/Hide source
def check_scorer_component_subselection(
    scorer,
    y_truth: pl.DataFrame,
    y_pred: pl.DataFrame,
    components: list[str],
) -> None:
    """Check components filtering works correctly.

    Parameters
    ----------
    scorer : BaseScorer
        Scorer instance
    y_truth : pl.DataFrame
        Ground truth
    y_pred : pl.DataFrame
        Predictions
    components : list of str
        Component names to filter

    Raises
    ------
    AssertionError
        If component subselection fails

    """
    scorer_filtered = clone(scorer)
    scorer_filtered.set_params(components=components)

    try:
        score = scorer_filtered.score(y_truth, y_pred)
        assert isinstance(score, int | float | np.number), "Component-filtered score should be numeric"
    except Exception as e:
        raise AssertionError(f"components={components} filtering failed: {e}") from e