@@ -99,32 +99,30 @@ def test_simulate_raw_sphere():
99
99
#
100
100
raw_sim = simulate_raw (raw , stc , trans , src , sphere , read_cov (cov_fname ),
101
101
head_pos = head_pos_sim ,
102
- blink = True , ecg = True , random_state = seed ,
103
- use_cps = True )
102
+ blink = True , ecg = True , random_state = seed )
104
103
raw_sim_2 = simulate_raw (raw , stc , trans_fname , src_fname , sphere ,
105
104
cov_fname , head_pos = head_pos_sim ,
106
- blink = True , ecg = True , random_state = seed ,
107
- use_cps = True )
105
+ blink = True , ecg = True , random_state = seed )
108
106
assert_array_equal (raw_sim_2 [:][0 ], raw_sim [:][0 ])
109
107
std = dict (grad = 2e-13 , mag = 10e-15 , eeg = 0.1e-6 )
110
108
raw_sim = simulate_raw (raw , stc , trans , src , sphere ,
111
109
make_ad_hoc_cov (raw .info , std = std ),
112
110
head_pos = head_pos_sim , blink = True , ecg = True ,
113
- random_state = seed , use_cps = True )
111
+ random_state = seed )
114
112
raw_sim_2 = simulate_raw (raw , stc , trans_fname , src_fname , sphere ,
115
113
cov = std , head_pos = head_pos_sim , blink = True ,
116
- ecg = True , random_state = seed , use_cps = True )
114
+ ecg = True , random_state = seed )
117
115
assert_array_equal (raw_sim_2 [:][0 ], raw_sim [:][0 ])
118
116
sphere_norad = make_sphere_model ('auto' , None , raw .info )
119
117
raw_meg = raw .copy ().pick_types ()
120
118
raw_sim = simulate_raw (raw_meg , stc , trans , src , sphere_norad ,
121
119
make_ad_hoc_cov (raw .info , std = None ),
122
120
head_pos = head_pos_sim , blink = True , ecg = True ,
123
- random_state = seed , use_cps = True )
121
+ random_state = seed )
124
122
raw_sim_2 = simulate_raw (raw_meg , stc , trans_fname , src_fname ,
125
123
sphere_norad ,
126
124
cov = 'simple' , head_pos = head_pos_sim , blink = True ,
127
- ecg = True , random_state = seed , use_cps = True )
125
+ ecg = True , random_state = seed )
128
126
assert_array_equal (raw_sim_2 [:][0 ], raw_sim [:][0 ])
129
127
# Test IO on processed data
130
128
tempdir = _TempDir ()
@@ -139,12 +137,10 @@ def test_simulate_raw_sphere():
139
137
for ecg , eog in ((True , False ), (False , True ), (True , True )):
140
138
raw_sim_3 = simulate_raw (raw , stc , trans , src , sphere ,
141
139
cov = None , head_pos = head_pos_sim ,
142
- blink = eog , ecg = ecg , random_state = seed ,
143
- use_cps = True )
140
+ blink = eog , ecg = ecg , random_state = seed )
144
141
raw_sim_4 = simulate_raw (raw , stc , trans , src , sphere ,
145
142
cov = None , head_pos = head_pos_sim ,
146
- blink = False , ecg = False , random_state = seed ,
147
- use_cps = True )
143
+ blink = False , ecg = False , random_state = seed )
148
144
picks = np .arange (len (raw .ch_names ))
149
145
diff_picks = pick_types (raw .info , meg = False , ecg = ecg , eog = eog )
150
146
these_picks = np .setdiff1d (picks , diff_picks )
@@ -159,68 +155,74 @@ def test_simulate_raw_sphere():
159
155
# make sure it works with EEG-only and MEG-only
160
156
raw_sim_meg = simulate_raw (raw .copy ().pick_types (meg = True , eeg = False ),
161
157
stc , trans , src , sphere , cov = None ,
162
- ecg = True , blink = True , random_state = seed ,
163
- use_cps = True )
158
+ ecg = True , blink = True , random_state = seed )
164
159
raw_sim_eeg = simulate_raw (raw .copy ().pick_types (meg = False , eeg = True ),
165
160
stc , trans , src , sphere , cov = None ,
166
- ecg = True , blink = True , random_state = seed ,
167
- use_cps = True )
161
+ ecg = True , blink = True , random_state = seed )
168
162
raw_sim_meeg = simulate_raw (raw .copy ().pick_types (meg = True , eeg = True ),
169
163
stc , trans , src , sphere , cov = None ,
170
- ecg = True , blink = True , random_state = seed ,
171
- use_cps = True )
164
+ ecg = True , blink = True , random_state = seed )
172
165
assert_allclose (np .concatenate ((raw_sim_meg [:][0 ], raw_sim_eeg [:][0 ])),
173
166
raw_sim_meeg [:][0 ], rtol = 1e-7 , atol = 1e-20 )
174
167
del raw_sim_meg , raw_sim_eeg , raw_sim_meeg
175
168
169
+ # check that raw-as-info is supported
170
+ raw_sim = simulate_raw (raw , stc , trans , src , sphere , cov = None )
171
+ n_samp = int (round (raw .info ['sfreq' ]))
172
+ for use_raw in (raw , raw .info ):
173
+ raw_sim_2 = simulate_raw (use_raw , stc , trans , src , sphere , cov = None ,
174
+ duration = 1. )
175
+ assert len (raw_sim_2 .times ) == n_samp
176
+ assert_allclose (raw_sim [:, :n_samp ][0 ],
177
+ raw_sim_2 [:, :n_samp ][0 ], rtol = 1e-5 , atol = 1e-30 )
178
+ del raw_sim , raw_sim_2
179
+
176
180
# check that different interpolations are similar given small movements
177
181
raw_sim = simulate_raw (raw , stc , trans , src , sphere , cov = None ,
178
- head_pos = head_pos_sim , interp = 'linear' ,
179
- use_cps = True )
182
+ head_pos = head_pos_sim , interp = 'linear' )
180
183
raw_sim_hann = simulate_raw (raw , stc , trans , src , sphere , cov = None ,
181
- head_pos = head_pos_sim , interp = 'hann' ,
182
- use_cps = True )
184
+ head_pos = head_pos_sim , interp = 'hann' )
183
185
assert_allclose (raw_sim [:][0 ], raw_sim_hann [:][0 ], rtol = 1e-1 , atol = 1e-14 )
184
186
del raw_sim , raw_sim_hann
185
187
186
188
# Make impossible transform (translate up into helmet) and ensure failure
187
189
head_pos_sim_err = deepcopy (head_pos_sim )
188
190
head_pos_sim_err [1. ][2 , 3 ] -= 0.1 # z trans upward 10cm
189
191
pytest .raises (RuntimeError , simulate_raw , raw , stc , trans , src , sphere ,
190
- ecg = False , blink = False , head_pos = head_pos_sim_err ,
191
- use_cps = True )
192
+ ecg = False , blink = False , head_pos = head_pos_sim_err )
192
193
pytest .raises (RuntimeError , simulate_raw , raw , stc , trans , src ,
193
194
bem_fname , ecg = False , blink = False ,
194
- head_pos = head_pos_sim_err , use_cps = True )
195
+ head_pos = head_pos_sim_err )
195
196
# other degenerate conditions
196
- pytest .raises (TypeError , simulate_raw , 'foo' , stc , trans , src , sphere ,
197
- use_cps = True )
198
- pytest .raises (TypeError , simulate_raw , raw , 'foo' , trans , src , sphere ,
199
- use_cps = True )
197
+ pytest .raises (TypeError , simulate_raw , 'foo' , stc , trans , src , sphere )
198
+ pytest .raises (TypeError , simulate_raw , raw , 'foo' , trans , src , sphere )
200
199
pytest .raises (ValueError , simulate_raw , raw , stc .copy ().crop (0 , 0 ),
201
- trans , src , sphere , use_cps = True )
200
+ trans , src , sphere )
201
+ with pytest .raises (ValueError , match = 'duration cannot be None' ):
202
+ simulate_raw (raw .info , stc , trans , src , sphere )
203
+ with pytest .raises (TypeError , match = 'must be an instance of Raw or Info' ):
204
+ simulate_raw (0 , stc , trans , src , sphere )
202
205
stc_bad = stc .copy ()
203
206
stc_bad .tstep += 0.1
204
- pytest .raises (ValueError , simulate_raw , raw , stc_bad , trans , src , sphere ,
205
- use_cps = True )
207
+ pytest .raises (ValueError , simulate_raw , raw , stc_bad , trans , src , sphere )
206
208
pytest .raises (TypeError , simulate_raw , raw , stc , trans , src , sphere ,
207
- cov = 0 , use_cps = True ) # wrong covariance type
209
+ cov = 0 ) # wrong covariance type
208
210
pytest .raises (RuntimeError , simulate_raw , raw , stc , trans , src , sphere ,
209
- chpi = True , use_cps = True ) # no cHPI info
211
+ chpi = True ) # no cHPI info
210
212
pytest .raises (ValueError , simulate_raw , raw , stc , trans , src , sphere ,
211
- interp = 'foo' , use_cps = True )
213
+ interp = 'foo' )
212
214
pytest .raises (TypeError , simulate_raw , raw , stc , trans , src , sphere ,
213
- head_pos = 1. , use_cps = True )
215
+ head_pos = 1. )
214
216
pytest .raises (RuntimeError , simulate_raw , raw , stc , trans , src , sphere ,
215
- head_pos = pos_fname , use_cps = True ) # ends up with t>t_end
217
+ head_pos = pos_fname ) # ends up with t>t_end
216
218
head_pos_sim_err = deepcopy (head_pos_sim )
217
219
head_pos_sim_err [- 1. ] = head_pos_sim_err [1. ] # negative time
218
220
pytest .raises (RuntimeError , simulate_raw , raw , stc , trans , src , sphere ,
219
- head_pos = head_pos_sim_err , use_cps = True )
221
+ head_pos = head_pos_sim_err )
220
222
raw_bad = raw .copy ()
221
223
raw_bad .info ['dig' ] = None
222
224
pytest .raises (RuntimeError , simulate_raw , raw_bad , stc , trans , src , sphere ,
223
- blink = True , use_cps = True )
225
+ blink = True )
224
226
225
227
226
228
@pytest .mark .slowtest
@@ -238,10 +240,9 @@ def test_simulate_raw_bem():
238
240
vertices = [s ['vertno' ] for s in src ]
239
241
stc = SourceEstimate (np .eye (sum (len (v ) for v in vertices )), vertices ,
240
242
0 , 1. / raw .info ['sfreq' ])
241
- raw_sim_sph = simulate_raw (raw , stc , trans , src , sphere , cov = None ,
242
- use_cps = True )
243
+ raw_sim_sph = simulate_raw (raw , stc , trans , src , sphere , cov = None )
243
244
raw_sim_bem = simulate_raw (raw , stc , trans , src , bem_fname , cov = None ,
244
- n_jobs = 2 , use_cps = True )
245
+ n_jobs = 2 )
245
246
# some components (especially radial) might not match that well,
246
247
# so just make sure that most components have high correlation
247
248
assert_array_equal (raw_sim_sph .ch_names , raw_sim_bem .ch_names )
@@ -335,11 +336,10 @@ def test_simulate_raw_chpi():
335
336
stc = _make_stc (raw , src )
336
337
# simulate data with cHPI on
337
338
raw_sim = simulate_raw (raw , stc , None , src , sphere , cov = None , chpi = False ,
338
- interp = 'zero' , use_cps = True )
339
+ interp = 'zero' )
339
340
# need to trim extra samples off this one
340
341
raw_chpi = simulate_raw (raw , stc , None , src , sphere , cov = None , chpi = True ,
341
- head_pos = pos_fname , interp = 'zero' ,
342
- use_cps = True )
342
+ head_pos = pos_fname , interp = 'zero' )
343
343
# test cHPI indication
344
344
hpi_freqs , hpi_pick , hpi_ons = _get_hpi_info (raw .info )
345
345
assert_allclose (raw_sim [hpi_pick ][0 ], 0. )
0 commit comments