File size: 1,147 Bytes
ccf23d1
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
"""Tests for src.fusion.weights — disease/modality weight registry."""
from __future__ import annotations

import pytest

from src.fusion import weights


class TestWeights:
    def test_available_diseases_includes_known(self) -> None:
        diseases = set(weights.available_diseases())
        assert {"alzheimers", "parkinsons", "other"} <= diseases

    def test_available_clinical_tests_includes_each_named_input(self) -> None:
        tests = set(weights.available_clinical_tests())
        assert {"mmse", "moca", "updrs", "gait", "age"} <= tests

    def test_get_weights_returns_nonempty_mapping(self) -> None:
        ws = weights.get_weights("alzheimers")
        assert ws["mri"] > 0
        assert sum(ws.values()) == pytest.approx(1.0, abs=1e-6)

    def test_get_weights_unknown_disease_raises(self) -> None:
        with pytest.raises(KeyError, match="unknown disease"):
            weights.get_weights("invented_disease")

    def test_each_disease_weight_table_sums_to_one(self) -> None:
        for d in weights.available_diseases():
            assert sum(weights.get_weights(d).values()) == pytest.approx(1.0, abs=1e-6), d