Test to show that projector code completes on CTF data.
()
| 217 | @pytest.mark.slowtest # can be slow on OSX |
| 218 | @testing.requires_testing_data |
| 219 | def test_compute_proj_ctf(): |
| 220 | """Test to show that projector code completes on CTF data.""" |
| 221 | raw = read_raw_ctf(ctf_fname, preload=True) |
| 222 | |
| 223 | # expected channels per projector type |
| 224 | mag_picks = pick_types(raw.info, meg="mag", ref_meg=False, exclude="bads")[::10] |
| 225 | n_mags = len(mag_picks) |
| 226 | grad_picks = pick_types(raw.info, meg="grad", ref_meg=False, exclude="bads")[::10] |
| 227 | n_grads = len(grad_picks) |
| 228 | eeg_picks = pick_types( |
| 229 | raw.info, meg=False, eeg=True, ref_meg=False, exclude="bads" |
| 230 | )[2::3] |
| 231 | n_eegs = len(eeg_picks) |
| 232 | ref_picks = pick_types(raw.info, meg=False, ref_meg=True) |
| 233 | raw.pick(np.sort(np.concatenate([mag_picks, grad_picks, eeg_picks, ref_picks]))) |
| 234 | del mag_picks, grad_picks, eeg_picks, ref_picks |
| 235 | |
| 236 | # Test with and without gradient compensation |
| 237 | raw.apply_gradient_compensation(0) |
| 238 | n_projs_init = len(raw.info["projs"]) |
| 239 | with pytest.warns(RuntimeWarning, match="Attenuation"): |
| 240 | projs, _ = compute_proj_eog( |
| 241 | raw, |
| 242 | n_mag=2, |
| 243 | n_grad=2, |
| 244 | n_eeg=2, |
| 245 | average=True, |
| 246 | ch_name="EEG059", |
| 247 | avg_ref=True, |
| 248 | no_proj=False, |
| 249 | l_freq=None, |
| 250 | h_freq=None, |
| 251 | reject=None, |
| 252 | tmax=dur_use, |
| 253 | filter_length=1000, |
| 254 | ) |
| 255 | _check_projs_for_expected_channels(projs, n_mags, n_grads, n_eegs) |
| 256 | assert len(projs) == (5 + n_projs_init) |
| 257 | |
| 258 | raw.apply_gradient_compensation(1) |
| 259 | with pytest.warns(RuntimeWarning, match="Attenuation"): |
| 260 | projs, _ = compute_proj_ecg( |
| 261 | raw, |
| 262 | n_mag=1, |
| 263 | n_grad=1, |
| 264 | n_eeg=2, |
| 265 | average=True, |
| 266 | ch_name="EEG059", |
| 267 | avg_ref=True, |
| 268 | no_proj=False, |
| 269 | l_freq=None, |
| 270 | h_freq=None, |
| 271 | reject=None, |
| 272 | tmax=dur_use, |
| 273 | filter_length=1000, |
| 274 | ) |
| 275 | _check_projs_for_expected_channels(projs, n_mags, n_grads, n_eegs) |
| 276 | assert len(projs) == (4 + n_projs_init) |
nothing calls this directly
no test coverage detected