Skip to content

Add unit tests for scoring.score() dispatch + fix _wis bug#52

Merged
jc-macdonald merged 2 commits intomainfrom
test/issue-5-score-dispatch
Apr 9, 2026
Merged

Add unit tests for scoring.score() dispatch + fix _wis bug#52
jc-macdonald merged 2 commits intomainfrom
test/issue-5-score-dispatch

Conversation

@jc-macdonald
Copy link
Copy Markdown
Contributor

Summary

Unit tests for score() dispatch — exercises all 8 supported metrics and the unknown-metric error path. Also fixes a bug in _wis.

Closes #5

Changes

Commit 1: dispatch tests

  • rmse: known-answer test (RMSE = 2.0)
  • mae: known-answer test (MAE = 2.0)
  • coverage: known-answer test (uniform ensemble → 100%)
  • crps: smoke test — returns finite float
  • energy: smoke test — returns finite float
  • brier: smoke test — returns finite float
  • wis: smoke test — returns finite float
  • interval: smoke test — returns finite float
  • unknown metric: ValueError with "Unknown metric" message

Commit 2: fix _wis bug

_wis passed 4 positional args to sr.weighted_interval_score which expects 5: (obs, median, lower, upper, alpha). predictions now expected to have shape (..., 3) with columns [median, lower, upper].

Stats

  • 9 new tests in tests/test_scoring.py (59 total)
  • scoring.py coverage: 44% → 98%
  • Total coverage: 68.34% → 75.96%
  • just ci passes (format, lint, mypy strict, coverage)

Test all 8 supported metrics: crps, wis, interval, energy, rmse, mae,
coverage, brier.  Known-answer tests for rmse, mae, and coverage;
smoke tests (finite float) for scoringrules-backed metrics.  Test
ValueError on unknown metric.

WIS test is xfail(strict=True) — _wis passes 4 positional args to
sr.weighted_interval_score which expects 5 (missing median).

Closes #5
_wis was passing only 4 positional args (truth, predictions[..., 0],
predictions[..., 1], alpha) but sr.weighted_interval_score expects 5:
(obs, median, lower, upper, alpha).  predictions now expected to have
shape (..., 3) with columns [median, lower, upper].

Remove xfail marker from WIS test.
@jc-macdonald jc-macdonald self-assigned this Apr 9, 2026
@jc-macdonald jc-macdonald merged commit 3c09b82 into main Apr 9, 2026
3 checks passed
@jc-macdonald jc-macdonald deleted the test/issue-5-score-dispatch branch April 9, 2026 20:01
@jc-macdonald jc-macdonald added the test Test coverage improvement label Apr 9, 2026
@jc-macdonald jc-macdonald added scoring scoring.py module bug Something isn't working labels Apr 9, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working scoring scoring.py module test Test coverage improvement

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Unit tests for scoring.score() dispatch

1 participant