Skip to content

check_weighter_compute_weights_alignment

yohou.testing.check_weighter_compute_weights_alignment(weighter, key)

Check compute_weights returns one weight per key element.

Parameters

Name Type Description Default
weighter BaseWeighter

Weighter instance.

required
key Series

Key series to weight.

required

Raises

Type Description
AssertionError

If the output is not a pl.Series aligned 1:1 with key.

Source Code

Source code in src/yohou/testing/weighter.py
def check_weighter_compute_weights_alignment(weighter, key: pl.Series) -> None:
    """Check ``compute_weights`` returns one weight per key element.

    Parameters
    ----------
    weighter : BaseWeighter
        Weighter instance.
    key : pl.Series
        Key series to weight.

    Raises
    ------
    AssertionError
        If the output is not a ``pl.Series`` aligned 1:1 with ``key``.

    """
    name = type(weighter).__name__
    weights = weighter.compute_weights(key)
    assert isinstance(weights, pl.Series), f"{name}.compute_weights must return pl.Series, got {type(weights)}"
    assert len(weights) == len(key), (
        f"{name}.compute_weights returned {len(weights)} weights, expected {len(key)} (one per key element)"
    )