22
22
#
23
23
"""Unit tests exercising models."""
24
24
25
+ import contextlib
26
+
25
27
import numpy as np
26
28
import pytest
27
29
from dipy .sims .voxel import single_tensor
31
33
from nifreeze .data .splitting import lovo_split
32
34
from nifreeze .exceptions import ModelNotFittedError
33
35
from nifreeze .model ._dipy import GaussianProcessModel
36
+ from nifreeze .model .base import mask_absence_warn_msg
34
37
from nifreeze .model .dmri import DEFAULT_MAX_S0 , DEFAULT_MIN_S0
35
38
from nifreeze .testing import simulations as _sim
36
39
37
40
38
- def test_trivial_model ():
41
+ @pytest .mark .parametrize ("use_mask" , (False , True ))
42
+ def test_trivial_model (use_mask ):
39
43
"""Check the implementation of the trivial B0 model."""
40
44
41
45
rng = np .random .default_rng (1234 )
@@ -45,7 +49,12 @@ def test_trivial_model():
45
49
model .TrivialModel ()
46
50
47
51
size = (2 , 2 , 2 )
48
- mask = np .ones (size , dtype = bool )
52
+ mask = None
53
+ if use_mask :
54
+ mask = np .ones (size , dtype = bool )
55
+ context = contextlib .nullcontext ()
56
+ else :
57
+ context = pytest .warns (UserWarning , match = mask_absence_warn_msg )
49
58
50
59
_S0 = rng .normal (size = size )
51
60
@@ -55,7 +64,8 @@ def test_trivial_model():
55
64
a_max = DEFAULT_MAX_S0 ,
56
65
)
57
66
58
- tmodel = model .TrivialModel (mask = mask , predicted = _clipped_S0 )
67
+ with context :
68
+ tmodel = model .TrivialModel (mask = mask , predicted = _clipped_S0 )
59
69
60
70
data = None
61
71
assert tmodel .fit (data ) is None
0 commit comments