Skip to content

check_similarity_metric_params_verbatim

yohou.testing.check_similarity_metric_params_verbatim(similarity)

Check metric_params=None is stored verbatim (no init-mutation).

Skipped for similarities without a metric_params parameter.

Parameters

Name Type Description Default
similarity BaseSimilarity

Similarity instance (used for its type).

required

Raises

Type Description
AssertionError

If a default-constructed instance mutates metric_params away from None.

Source Code

Source code in src/yohou/testing/similarity.py
def check_similarity_metric_params_verbatim(similarity) -> None:
    """Check ``metric_params=None`` is stored verbatim (no init-mutation).

    Skipped for similarities without a ``metric_params`` parameter.

    Parameters
    ----------
    similarity : BaseSimilarity
        Similarity instance (used for its type).

    Raises
    ------
    AssertionError
        If a default-constructed instance mutates ``metric_params`` away from None.

    """
    cls = type(similarity)
    fresh = cls()
    if "metric_params" not in fresh.get_params(deep=False):
        return
    assert fresh.metric_params is None, (
        f"{cls.__name__}: default metric_params mutated from None to {fresh.metric_params!r}"
    )
    assert fresh.get_params(deep=False)["metric_params"] is None, (
        f"{cls.__name__}: get_params reports metric_params as {fresh.get_params(deep=False)['metric_params']!r}, not None"
    )