Passed
Pull Request — master (#527)
by Fernando
01:27
created

tests.transforms.preprocessing.test_mask   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 46
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
wmc 4
eloc 33
dl 0
loc 46
rs 10
c 0
b 0
f 0

4 Methods

Rating   Name   Duplication   Size   Complexity  
A TestMask.test_single_mask() 0 6 1
A TestMask.test_mask_example() 0 9 1
A TestMask.test_mask_specified_label() 0 9 1
A TestMask.test_single_mask_nonzero_background() 0 11 1
1
import torchio as tio
2
from ...utils import TorchioTestCase
3
4
5
class TestMask(TorchioTestCase):
6
    """Tests for :class:`tio.Mask` class."""
7
8
    def test_single_mask(self):
9
        negated_mask = self.sample_subject.label.data.logical_not()
10
        masked_voxel_indices = negated_mask.nonzero(as_tuple=True)
11
        transform = tio.Mask(masking_method='label')
12
        transformed = transform(self.sample_subject)
13
        assert (transformed.t1.data[masked_voxel_indices] == 0).all()
14
15
    def test_single_mask_nonzero_background(self):
16
        background_value = 314159
17
        negated_mask = self.sample_subject.label.data.logical_not()
18
        masked_voxel_indices = negated_mask.nonzero(as_tuple=True)
19
20
        transform = tio.Mask(masking_method='label',
21
                             outside_value=background_value)
22
        transformed = transform(self.sample_subject)
23
24
        assert (transformed.t1.data[masked_voxel_indices]
25
                == background_value).all()
26
27
    def test_mask_specified_label(self):
28
        mask_label = [1]
29
        negated_mask = self.sample_subject.label.data.logical_not()
30
        masked_voxel_indices = negated_mask.nonzero(as_tuple=True)
31
32
        transform = tio.Mask(masking_method='label', labels=mask_label)
33
        transformed = transform(self.sample_subject)
34
35
        assert (transformed.t1.data[masked_voxel_indices] == 0).all()
36
37
    def test_mask_example(self):
38
        subject = tio.datasets.Colin27()
39
        negated_mask = subject.brain.data.logical_not()
40
        masked_voxel_indices = negated_mask.nonzero(as_tuple=True)
41
42
        transform = tio.Mask(masking_method='brain')
43
        transformed = transform(subject)
44
45
        assert (transformed.t1.data[masked_voxel_indices] == 0).all()
46