Completed
Push — master ( 6d6a7d...e4617d )
by Jasper
8s
created

CNTTests.test_Determines_modality()   A

Complexity

Conditions 1

Size

Total Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
dl 0
loc 3
rs 10
c 0
b 0
f 0
1
import unittest
2
from mock import Mock
3
from datetime import datetime, timedelta
4
from tests.test_basefile import BaseFileTests
5
6
7
class CNTTests(BaseFileTests):
8
9
    def setUp(self):
10
        super(CNTTests, self).setUp()
11
        self.filesys.open.return_value = MockFile()
12
        from niprov.cnt import NeuroscanFile
13
        self.constructor = NeuroscanFile
14
        self.file = NeuroscanFile(self.path, dependencies=self.dependencies)
15
16
    def test_Inspect_parses_experimental_basics(self):
17
        out = self.file.inspect()
18
        self.assertEqual(out['subject'], 'Jane Doe')
19
        self.assertEqual(out['dimensions'], [32, 2080])
20
        self.assertEqual(out['acquired'], datetime(2015,3,9,13,7,3))
21
        self.assertEqual(out['sampling-frequency'], 1000)
22
        self.assertEqual(out['duration'], timedelta(seconds=2080/1000.))
23
24
    def test_Determines_modality(self):
25
        out = self.file.inspect()
26
        self.assertEqual(out['modality'], 'EEG')
27
28
    def test_Preserves_modality_if_inherited(self):
29
        pass # Doesn't have to preserve
30
31
32
class MockFile(object):
33
34
    def __init__(self):
35
        self.cursor = -1
36
37
    def __enter__(self):
38
        return self
39
40
    def __exit__(self, *args, **kwargs):
41
        pass
42
43
    def read(self, nbytes):
44
        self.cursor = self.cursor + 1
45
        return _data[self.cursor]
46
47
48
_data = [
49
None,   #h.rev               = self._fread(fid,12,'char')
50
None,   #h.nextfile          = self._fread(fid,1,'long')
51
None,   #h.prevfile          = self._fread(fid,1,'ulong')
52
None,   #h.type              = self._fread(fid,1,'char')
53
None,   #h.id                = self._fread(fid,20,'char')
54
None,   #h.oper              = self._fread(fid,20,'char')
55
None,   #h.doctor            = self._fread(fid,20,'char')
56
None,   #h.referral          = self._fread(fid,20,'char')
57
None,   #h.hospital          = self._fread(fid,20,'char')
58
#h.patient = self._fread(fid,20,'char')
59
b'Jane Doe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00',
60
None,   #h.age               = self._fread(fid,1,'short')
61
None,   #h.sex               = self._fread(fid,1,'char')
62
None,   #h.hand              = self._fread(fid,1,'char')
63
None,   #h.med               = self._fread(fid,20, 'char')
64
None,   #h.category          = self._fread(fid,20, 'char')
65
None,   #h.state             = self._fread(fid,20, 'char')
66
None,   #h.label             = self._fread(fid,20, 'char')
67
b'09/03/15' ,   #h.date              = self._fread(fid,10, 'char')
68
b'13:07:03',   #h.time              = self._fread(fid,12, 'char')
69
None,   #h.mean_age          = self._fread(fid,1,'float')
70
None,   #h.stdev             = self._fread(fid,1,'float')
71
None,   #h.n                 = self._fread(fid,1,'short')
72
None,   #h.compfile          = self._fread(fid,38,'char')
73
None,   #h.spectwincomp      = self._fread(fid,1,'float')
74
None,   #h.meanaccuracy      = self._fread(fid,1,'float')
75
None,   #h.meanlatency       = self._fread(fid,1,'float')
76
None,   #h.sortfile          = self._fread(fid,46,'char')
77
None,   #h.numevents         = self._fread(fid,1,'int')
78
None,   #h.compoper          = self._fread(fid,1,'char')
79
None,   #h.avgmode           = self._fread(fid,1,'char')
80
None,   #h.review            = self._fread(fid,1,'char')
81
None,   #h.nsweeps           = self._fread(fid,1,'ushort')
82
None,   #h.compsweeps        = self._fread(fid,1,'ushort')
83
None,   #h.acceptcnt         = self._fread(fid,1,'ushort')
84
None,   #h.rejectcnt         = self._fread(fid,1,'ushort')
85
None,   #h.pnts              = self._fread(fid,1,'ushort')
86
b' \x00',   #h.nchannels         = self._fread(fid,1,'ushort')
87
None,   #h.avgupdate         = self._fread(fid,1,'ushort')
88
None,   #h.domain            = self._fread(fid,1,'char')
89
None,   #h.variance          = self._fread(fid,1,'char')
90
b'\xe8\x03',   #h.rate              = self._fread(fid,1,'ushort')
91
None,   #h.scale             = self._fread(fid,1,'double')
92
None,   #h.veogcorrect       = self._fread(fid,1,'char')
93
None,   #h.heogcorrect       = self._fread(fid,1,'char')
94
None,   #h.aux1correct       = self._fread(fid,1,'char')
95
None,   #h.aux2correct       = self._fread(fid,1,'char')
96
None,   #h.veogtrig          = self._fread(fid,1,'float')
97
None,   #h.heogtrig          = self._fread(fid,1,'float')
98
None,   #h.aux1trig          = self._fread(fid,1,'float')
99
None,   #h.aux2trig          = self._fread(fid,1,'float')
100
None,   #h.heogchnl          = self._fread(fid,1,'short')
101
None,   #h.veogchnl          = self._fread(fid,1,'short')
102
None,   #h.aux1chnl          = self._fread(fid,1,'short')
103
None,   #h.aux2chnl          = self._fread(fid,1,'short')
104
None,   #h.veogdir           = self._fread(fid,1,'char')
105
None,   #h.heogdir           = self._fread(fid,1,'char')
106
None,   #h.aux1dir           = self._fread(fid,1,'char')
107
None,   #h.aux2dir           = self._fread(fid,1,'char')
108
None,   #h.veog_n            = self._fread(fid,1,'short')
109
None,   #h.heog_n            = self._fread(fid,1,'short')
110
None,   #h.aux1_n            = self._fread(fid,1,'short')
111
None,   #h.aux2_n            = self._fread(fid,1,'short')
112
None,   #h.veogmaxcnt        = self._fread(fid,1,'short')
113
None,   #h.heogmaxcnt        = self._fread(fid,1,'short')
114
None,   #h.aux1maxcnt        = self._fread(fid,1,'short')
115
None,   #h.aux2maxcnt        = self._fread(fid,1,'short')
116
None,   #h.veogmethod        = self._fread(fid,1,'char')
117
None,   #h.heogmethod        = self._fread(fid,1,'char')
118
None,   #h.aux1method        = self._fread(fid,1,'char')
119
None,   #h.aux2method        = self._fread(fid,1,'char')
120
None,   #h.ampsensitivity    = self._fread(fid,1,'float')
121
None,   #h.lowpass           = self._fread(fid,1,'char')
122
None,   #h.highpass          = self._fread(fid,1,'char')
123
None,   #h.notch             = self._fread(fid,1,'char')
124
None,   #h.autoclipadd       = self._fread(fid,1,'char')
125
None,   #h.baseline          = self._fread(fid,1,'char')
126
None,   #h.offstart          = self._fread(fid,1,'float')
127
None,   #h.offstop           = self._fread(fid,1,'float')
128
None,   #h.reject            = self._fread(fid,1,'char')
129
None,   #h.rejstart          = self._fread(fid,1,'float')
130
None,   #h.rejstop           = self._fread(fid,1,'float')
131
None,   #h.rejmin            = self._fread(fid,1,'float')
132
None,   #h.rejmax            = self._fread(fid,1,'float')
133
None,   #h.trigtype          = self._fread(fid,1,'char')
134
None,   #h.trigval           = self._fread(fid,1,'float')
135
None,   #h.trigchnl          = self._fread(fid,1,'char')
136
None,   #h.trigmask          = self._fread(fid,1,'short')
137
None,   #h.trigisi           = self._fread(fid,1,'float')
138
None,   #h.trigmin           = self._fread(fid,1,'float')
139
None,   #h.trigmax           = self._fread(fid,1,'float')
140
None,   #h.trigdir           = self._fread(fid,1,'char')
141
None,   #h.autoscale         = self._fread(fid,1,'char')
142
None,   #h.n2                = self._fread(fid,1,'short')
143
None,   #h.dir               = self._fread(fid,1,'char')
144
None,   #h.dispmin           = self._fread(fid,1,'float')
145
None,   #h.dispmax           = self._fread(fid,1,'float')
146
None,   #h.xmin              = self._fread(fid,1,'float')
147
None,   #h.xmax              = self._fread(fid,1,'float')
148
None,   #h.automin           = self._fread(fid,1,'float')
149
None,   #h.automax           = self._fread(fid,1,'float')
150
None,   #h.zmin              = self._fread(fid,1,'float')
151
None,   #h.zmax              = self._fread(fid,1,'float')
152
None,   #h.lowcut            = self._fread(fid,1,'float')
153
None,   #h.highcut           = self._fread(fid,1,'float')
154
None,   #h.common            = self._fread(fid,1,'char')
155
None,   #h.savemode          = self._fread(fid,1,'char')
156
None,   #h.manmode           = self._fread(fid,1,'char')
157
None,   #h.ref               = self._fread(fid,10,'char')
158
None,   #h.rectify           = self._fread(fid,1,'char')
159
None,   #h.displayxmin       = self._fread(fid,1,'float')
160
None,   #h.displayxmax       = self._fread(fid,1,'float')
161
None,   #h.phase             = self._fread(fid,1,'char')
162
None,   #h.screen            = self._fread(fid,16,'char')
163
None,   #h.calmode           = self._fread(fid,1,'short')
164
None,   #h.calmethod         = self._fread(fid,1,'short')
165
None,   #h.calupdate         = self._fread(fid,1,'short')
166
None,   #h.calbaseline       = self._fread(fid,1,'short')
167
None,   #h.calsweeps         = self._fread(fid,1,'short')
168
None,   #h.calattenuator     = self._fread(fid,1,'float')
169
None,   #h.calpulsevolt      = self._fread(fid,1,'float')
170
None,   #h.calpulsestart     = self._fread(fid,1,'float')
171
None,   #h.calpulsestop      = self._fread(fid,1,'float')
172
None,   #h.calfreq           = self._fread(fid,1,'float')
173
None,   #h.taskfile          = self._fread(fid,34,'char')
174
None,   #h.seqfile           = self._fread(fid,34,'char')
175
None,   #h.spectmethod       = self._fread(fid,1,'char')
176
None,   #h.spectscaling      = self._fread(fid,1,'char')
177
None,   #h.spectwindow       = self._fread(fid,1,'char')
178
None,   #h.spectwinlength    = self._fread(fid,1,'float')
179
None,   #h.spectorder        = self._fread(fid,1,'char')
180
None,   #h.notchfilter       = self._fread(fid,1,'char')
181
None,   #h.headgain          = self._fread(fid,1,'short')
182
None,   #h.additionalfiles   = self._fread(fid,1,'int')
183
None,   #h.unused            = self._fread(fid,5,'char')
184
None,   #h.fspstopmethod     = self._fread(fid,1,'short')
185
None,   #h.fspstopmode       = self._fread(fid,1,'short')
186
None,   #h.fspfvalue         = self._fread(fid,1,'float')
187
None,   #h.fsppoint          = self._fread(fid,1,'short')
188
None,   #h.fspblocksize      = self._fread(fid,1,'short')
189
None,   #h.fspp1             = self._fread(fid,1,'ushort')
190
None,   #h.fspp2             = self._fread(fid,1,'ushort')
191
None,   #h.fspalpha          = self._fread(fid,1,'float')
192
None,   #h.fspnoise          = self._fread(fid,1,'float')
193
None,   #h.fspv1             = self._fread(fid,1,'short')
194
None,   #h.montage           = self._fread(fid,40,'char')
195
None,   #h.eventfile         = self._fread(fid,40,'char')
196
None,   #h.fratio            = self._fread(fid,1,'float')
197
None,   #h.minor_rev         = self._fread(fid,1,'char')
198
None,   #h.eegupdate         = self._fread(fid,1,'short')
199
None,   #h.compressed        = self._fread(fid,1,'char')
200
None,   #h.xscale            = self._fread(fid,1,'float')
201
None,   #h.yscale            = self._fread(fid,1,'float')
202
None,   #h.xsize             = self._fread(fid,1,'float')
203
None,   #h.ysize             = self._fread(fid,1,'float')
204
None,   #h.acmode            = self._fread(fid,1,'char')
205
None,   #h.commonchnl        = self._fread(fid,1,'uchar')
206
None,   #h.xtics             = self._fread(fid,1,'char')
207
None,   #h.xrange            = self._fread(fid,1,'char')
208
None,   #h.ytics             = self._fread(fid,1,'char')
209
None,   #h.yrange            = self._fread(fid,1,'char')
210
None,   #h.xscalevalue       = self._fread(fid,1,'float')
211
None,   #h.xscaleinterval    = self._fread(fid,1,'float')
212
None,   #h.yscalevalue       = self._fread(fid,1,'float')
213
None,   #h.yscaleinterval    = self._fread(fid,1,'float')
214
None,   #h.scaletoolx1       = self._fread(fid,1,'float')
215
None,   #h.scaletooly1       = self._fread(fid,1,'float')
216
None,   #h.scaletoolx2       = self._fread(fid,1,'float')
217
None,   #h.scaletooly2       = self._fread(fid,1,'float')
218
None,   #h.port              = self._fread(fid,1,'short')
219
b' \x08\x00\x00',   #h.numsamples        = self._fread(fid,1,'ulong')
220
None,   #h.filterflag        = self._fread(fid,1,'char')
221
None,   #h.lowcutoff         = self._fread(fid,1,'float')
222
None,   #h.lowpoles          = self._fread(fid,1,'short')
223
None,   #h.highcutoff        = self._fread(fid,1,'float')
224
None,   #h.highpoles         = self._fread(fid,1,'short')
225
None,   #h.filtertype        = self._fread(fid,1,'char')
226
None,   #h.filterdomain      = self._fread(fid,1,'char')
227
None,   #h.snrflag           = self._fread(fid,1,'char')
228
None,   #h.coherenceflag     = self._fread(fid,1,'char')
229
None,   #h.continuoustype    = self._fread(fid,1,'char')
230
None,   #h.eventtablepos     = self._fread(fid,1,'ulong')
231
None,   #h.continuousseconds = self._fread(fid,1,'float')
232
None,   #h.channeloffset     = self._fread(fid,1,'long')
233
None,   #h.autocorrectflag   = self._fread(fid,1,'char')
234
None,   #h.dcthreshold       = self._fread(fid,1,'uchar')
235
]
236