Passed
Push — master ( 79d509...08948f )
by Fernando
01:20
created

tests.data.test_subjects_dataset   A

Complexity

Total Complexity 21

Size/Duplication

Total Lines 61
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 45
dl 0
loc 61
rs 10
c 0
b 0
f 0
wmc 21

11 Methods

Rating   Name   Duplication   Size   Complexity  
A TestSubjectsDataset.test_wrong_subjects_type() 0 3 2
A TestSubjectsDataset.test_data_loader() 0 8 2
A TestSubjectsDataset.test_wrong_transform_arg() 0 3 2
A TestSubjectsDataset.test_empty_subjects_list() 0 3 2
A TestSubjectsDataset.test_wrong_index() 0 3 2
A TestSubjectsDataset.test_images() 0 2 1
A TestSubjectsDataset.test_wrong_subject_type_int() 0 3 2
A TestSubjectsDataset.test_wrong_transform_init() 0 5 2
A TestSubjectsDataset.test_empty_subjects_tuple() 0 3 2
A TestSubjectsDataset.iterate_dataset() 0 5 2
A TestSubjectsDataset.test_wrong_subject_type_dict() 0 3 2
1
#!/usr/bin/env python
2
3
from torchio import DATA, SubjectsDataset
4
from ..utils import TorchioTestCase
5
6
7
class TestSubjectsDataset(TorchioTestCase):
8
9
    def test_images(self):
10
        self.iterate_dataset(self.subjects_list)
11
12
    def test_empty_subjects_list(self):
13
        with self.assertRaises(ValueError):
14
            self.iterate_dataset([])
15
16
    def test_empty_subjects_tuple(self):
17
        with self.assertRaises(ValueError):
18
            self.iterate_dataset(())
19
20
    def test_wrong_subjects_type(self):
21
        with self.assertRaises(TypeError):
22
            self.iterate_dataset(0)
23
24
    def test_wrong_subject_type_int(self):
25
        with self.assertRaises(TypeError):
26
            self.iterate_dataset([0])
27
28
    def test_wrong_subject_type_dict(self):
29
        with self.assertRaises(TypeError):
30
            self.iterate_dataset([{}])
31
32
    def test_wrong_index(self):
33
        with self.assertRaises(ValueError):
34
            self.dataset[:3]
35
36
    def test_wrong_transform_init(self):
37
        with self.assertRaises(ValueError):
38
            SubjectsDataset(
39
                self.subjects_list,
40
                transform={},
41
            )
42
43
    def test_wrong_transform_arg(self):
44
        with self.assertRaises(ValueError):
45
            self.dataset.set_transform(1)
46
47
    @staticmethod
48
    def iterate_dataset(subjects_list):
49
        dataset = SubjectsDataset(subjects_list)
50
        for _ in dataset:
51
            pass
52
53
    def test_data_loader(self):
54
        from torch.utils.data import DataLoader
55
        subj_list = [self.sample_subject]
56
        dataset = SubjectsDataset(subj_list)
57
        loader = DataLoader(dataset, batch_size=1, shuffle=True)
58
        for batch in loader:
59
            batch['t1'][DATA]
60
            batch['label'][DATA]
61