Skip to content

Commit

Permalink
tests: add tests for penalised score
Browse files Browse the repository at this point in the history
  • Loading branch information
Tveten committed Jan 3, 2025
1 parent c0a2f06 commit 7ae511f
Show file tree
Hide file tree
Showing 2 changed files with 51 additions and 0 deletions.
1 change: 1 addition & 0 deletions skchange/compose/tests/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
"""Tests for compositions."""
50 changes: 50 additions & 0 deletions skchange/compose/tests/test_penalised_score.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
"""Tests for penalised scores."""

import numpy as np
import pandas as pd
import pytest

from skchange.change_scores import CUSUM, MultivariateGaussianScore
from skchange.compose import PenalisedScore
from skchange.penalties.constant_penalties import BICPenalty
from skchange.penalties.linear_penalties import LinearChiSquarePenalty


def test_penalised_score_init():
scorer = CUSUM()
penalty = BICPenalty()
penalised_score = PenalisedScore(scorer, penalty)
assert penalised_score.expected_cut_entries == scorer.expected_cut_entries

scorer = MultivariateGaussianScore()
penalty = LinearChiSquarePenalty()

with pytest.raises(ValueError):
PenalisedScore(scorer, penalty)


def test_penalised_score_fit():
scorer = CUSUM()
penalty = BICPenalty()

df2 = pd.DataFrame(np.random.randn(100, 2))
df3 = pd.DataFrame(np.random.randn(100, 3))

penalty.fit(df3, scorer)
penalised_score = PenalisedScore(scorer, penalty)
penalised_score.fit(df3, scorer)
assert penalised_score.is_fitted

penalty.fit(df2, scorer)
penalised_score = PenalisedScore(scorer, penalty)

with pytest.raises(ValueError):
penalised_score.fit(df3, scorer)


def test_penalised_score_get_param_size():
scorer = CUSUM()
penalty = BICPenalty()
penalised_score = PenalisedScore(scorer, penalty)
assert penalised_score.get_param_size(1) == scorer.get_param_size(1)
assert penalised_score.get_param_size(5) == scorer.get_param_size(5)

0 comments on commit 7ae511f

Please sign in to comment.