def test_export_evokeds_to_mff(tmpdir, fmt, do_history): """Test exporting evoked dataset to MFF.""" evoked = read_evokeds_mff(egi_evoked_fname) export_fname = op.join(str(tmpdir), 'evoked.mff') history = [{ 'name': 'Test Segmentation', 'method': 'Segmentation', 'settings': ['Setting 1', 'Setting 2'], 'results': ['Result 1', 'Result 2'] }, { 'name': 'Test Averaging', 'method': 'Averaging', 'settings': ['Setting 1', 'Setting 2'], 'results': ['Result 1', 'Result 2'] }] if do_history: export_evokeds_mff(export_fname, evoked, history=history) else: export_evokeds(export_fname, evoked) # Drop non-EEG channels evoked = [ave.drop_channels(['ECG', 'EMG']) for ave in evoked] evoked_exported = read_evokeds_mff(export_fname) assert len(evoked) == len(evoked_exported) for ave, ave_exported in zip(evoked, evoked_exported): # Compare infos assert object_diff(ave_exported.info, ave.info) == '' # Compare data assert_allclose(ave_exported.data, ave.data) # Compare properties assert ave_exported.nave == ave.nave assert ave_exported.kind == ave.kind assert ave_exported.comment == ave.comment assert_allclose(ave_exported.times, ave.times)
def test_export_evokeds_to_mff(tmp_path, fmt, do_history): """Test exporting evoked dataset to MFF.""" evoked = read_evokeds_mff(egi_evoked_fname) export_fname = op.join(str(tmp_path), 'evoked.mff') history = [{ 'name': 'Test Segmentation', 'method': 'Segmentation', 'settings': ['Setting 1', 'Setting 2'], 'results': ['Result 1', 'Result 2'] }, { 'name': 'Test Averaging', 'method': 'Averaging', 'settings': ['Setting 1', 'Setting 2'], 'results': ['Result 1', 'Result 2'] }] if do_history: export_evokeds_mff(export_fname, evoked, history=history) else: export_evokeds(export_fname, evoked, fmt=fmt) # Drop non-EEG channels evoked = [ave.drop_channels(['ECG', 'EMG']) for ave in evoked] evoked_exported = read_evokeds_mff(export_fname) assert len(evoked) == len(evoked_exported) for ave, ave_exported in zip(evoked, evoked_exported): # Compare infos assert object_diff(ave_exported.info, ave.info) == '' # Compare data assert_allclose(ave_exported.data, ave.data) # Compare properties assert ave_exported.nave == ave.nave assert ave_exported.kind == ave.kind assert ave_exported.comment == ave.comment assert_allclose(ave_exported.times, ave.times) # test overwrite with pytest.raises(FileExistsError, match='Destination file exists'): if do_history: export_evokeds_mff(export_fname, evoked, history=history, overwrite=False) else: export_evokeds(export_fname, evoked, overwrite=False) if do_history: export_evokeds_mff(export_fname, evoked, history=history, overwrite=True) else: export_evokeds(export_fname, evoked, overwrite=True) # test export from evoked directly evoked[0].export(export_fname, overwrite=True)
def test_export_to_mff_no_device(): """Test no device type throws ValueError.""" evoked = read_evokeds_mff(egi_evoked_fname, condition='Category 1') evoked.info['device_info'] = None with pytest.raises(ValueError, match='No device type.'): export_evokeds('output.mff', evoked)