def test_merge_info(): """Test merging of multiple Info objects.""" info_a = create_info(ch_names=['a', 'b', 'c'], sfreq=1000., ch_types=None) info_b = create_info(ch_names=['d', 'e', 'f'], sfreq=1000., ch_types=None) info_merged = _merge_info([info_a, info_b]) assert_equal(info_merged['nchan'], 6) assert_equal(info_merged['ch_names'], ['a', 'b', 'c', 'd', 'e', 'f']) assert_raises(ValueError, _merge_info, [info_a, info_a]) # Testing for force updates before merging info_c = create_info(ch_names=['g', 'h', 'i'], sfreq=500., ch_types=None) # This will break because sfreq is not equal assert_raises(RuntimeError, _merge_info, [info_a, info_c]) _force_update_info(info_a, info_c) assert_true(info_c['sfreq'] == info_a['sfreq']) assert_true(info_c['ch_names'][0] != info_a['ch_names'][0]) # Make sure it works now _merge_info([info_a, info_c]) # Check that you must supply Info assert_raises(ValueError, _force_update_info, info_a, dict([('sfreq', 1000.)])) # KIT System-ID info_a['kit_system_id'] = 50 assert_equal(_merge_info((info_a, info_b))['kit_system_id'], 50) info_b['kit_system_id'] = 50 assert_equal(_merge_info((info_a, info_b))['kit_system_id'], 50) info_b['kit_system_id'] = 60 assert_raises(ValueError, _merge_info, (info_a, info_b))
def test_merge_info(): """Test merging of multiple Info objects.""" info_a = create_info(ch_names=['a', 'b', 'c'], sfreq=1000., ch_types=None) info_b = create_info(ch_names=['d', 'e', 'f'], sfreq=1000., ch_types=None) info_merged = _merge_info([info_a, info_b]) assert info_merged['nchan'], 6 assert info_merged['ch_names'], ['a', 'b', 'c', 'd', 'e', 'f'] pytest.raises(ValueError, _merge_info, [info_a, info_a]) # Testing for force updates before merging info_c = create_info(ch_names=['g', 'h', 'i'], sfreq=500., ch_types=None) # This will break because sfreq is not equal pytest.raises(RuntimeError, _merge_info, [info_a, info_c]) _force_update_info(info_a, info_c) assert (info_c['sfreq'] == info_a['sfreq']) assert (info_c['ch_names'][0] != info_a['ch_names'][0]) # Make sure it works now _merge_info([info_a, info_c]) # Check that you must supply Info pytest.raises(ValueError, _force_update_info, info_a, dict([('sfreq', 1000.)])) # KIT System-ID info_a['kit_system_id'] = 50 assert _merge_info((info_a, info_b))['kit_system_id'] == 50 info_b['kit_system_id'] = 50 assert _merge_info((info_a, info_b))['kit_system_id'] == 50 info_b['kit_system_id'] = 60 pytest.raises(ValueError, _merge_info, (info_a, info_b))
def test_merge_info(): """Test merging of multiple Info objects.""" info_a = create_info(ch_names=["a", "b", "c"], sfreq=1000.0, ch_types=None) info_b = create_info(ch_names=["d", "e", "f"], sfreq=1000.0, ch_types=None) info_merged = _merge_info([info_a, info_b]) assert_equal(info_merged["nchan"], 6) assert_equal(info_merged["ch_names"], ["a", "b", "c", "d", "e", "f"]) assert_raises(ValueError, _merge_info, [info_a, info_a]) # Testing for force updates before merging info_c = create_info(ch_names=["g", "h", "i"], sfreq=500.0, ch_types=None) # This will break because sfreq is not equal assert_raises(RuntimeError, _merge_info, [info_a, info_c]) _force_update_info(info_a, info_c) assert_true(info_c["sfreq"] == info_a["sfreq"]) assert_true(info_c["ch_names"][0] != info_a["ch_names"][0]) # Make sure it works now _merge_info([info_a, info_c]) # Check that you must supply Info assert_raises(ValueError, _force_update_info, info_a, dict([("sfreq", 1000.0)])) # KIT System-ID info_a["kit_system_id"] = 50 assert_equal(_merge_info((info_a, info_b))["kit_system_id"], 50) info_b["kit_system_id"] = 50 assert_equal(_merge_info((info_a, info_b))["kit_system_id"], 50) info_b["kit_system_id"] = 60 assert_raises(ValueError, _merge_info, (info_a, info_b))
def test_merge_info(): """Test merging of multiple Info objects.""" info_a = create_info(ch_names=['a', 'b', 'c'], sfreq=1000.) info_b = create_info(ch_names=['d', 'e', 'f'], sfreq=1000.) info_merged = _merge_info([info_a, info_b]) assert info_merged['nchan'], 6 assert info_merged['ch_names'], ['a', 'b', 'c', 'd', 'e', 'f'] pytest.raises(ValueError, _merge_info, [info_a, info_a]) # Testing for force updates before merging info_c = create_info(ch_names=['g', 'h', 'i'], sfreq=500.) # This will break because sfreq is not equal pytest.raises(RuntimeError, _merge_info, [info_a, info_c]) _force_update_info(info_a, info_c) assert (info_c['sfreq'] == info_a['sfreq']) assert (info_c['ch_names'][0] != info_a['ch_names'][0]) # Make sure it works now _merge_info([info_a, info_c]) # Check that you must supply Info pytest.raises(ValueError, _force_update_info, info_a, dict([('sfreq', 1000.)])) # KIT System-ID info_a._unlocked = info_b._unlocked = True info_a['kit_system_id'] = 50 assert _merge_info((info_a, info_b))['kit_system_id'] == 50 info_b['kit_system_id'] = 50 assert _merge_info((info_a, info_b))['kit_system_id'] == 50 info_b['kit_system_id'] = 60 pytest.raises(ValueError, _merge_info, (info_a, info_b)) # hpi infos info_d = create_info(ch_names=['d', 'e', 'f'], sfreq=1000.) info_merged = _merge_info([info_a, info_d]) assert not info_merged['hpi_meas'] assert not info_merged['hpi_results'] info_a['hpi_meas'] = [{'f1': 3, 'f2': 4}] assert _merge_info([info_a, info_d])['hpi_meas'] == info_a['hpi_meas'] info_d._unlocked = True info_d['hpi_meas'] = [{'f1': 3, 'f2': 4}] assert _merge_info([info_a, info_d])['hpi_meas'] == info_d['hpi_meas'] # This will break because of inconsistency info_d['hpi_meas'] = [{'f1': 3, 'f2': 5}] pytest.raises(ValueError, _merge_info, [info_a, info_d]) info_0 = read_info(raw_fname) info_0['bads'] = ['MEG 2443', 'EEG 053'] assert len(info_0['chs']) == 376 assert len(info_0['dig']) == 146 info_1 = create_info(["STI YYY"], info_0['sfreq'], ['stim']) assert info_1['bads'] == [] info_out = _merge_info([info_0, info_1], force_update_to_first=True) assert len(info_out['chs']) == 377 assert len(info_out['bads']) == 2 assert len(info_out['dig']) == 146 assert len(info_0['chs']) == 376 assert len(info_0['bads']) == 2 assert len(info_0['dig']) == 146
def test_merge_info(): """Test merging of multiple Info objects.""" info_a = create_info(ch_names=['a', 'b', 'c'], sfreq=1000., ch_types=None) info_b = create_info(ch_names=['d', 'e', 'f'], sfreq=1000., ch_types=None) info_merged = _merge_info([info_a, info_b]) assert info_merged['nchan'], 6 assert info_merged['ch_names'], ['a', 'b', 'c', 'd', 'e', 'f'] pytest.raises(ValueError, _merge_info, [info_a, info_a]) # Testing for force updates before merging info_c = create_info(ch_names=['g', 'h', 'i'], sfreq=500., ch_types=None) # This will break because sfreq is not equal pytest.raises(RuntimeError, _merge_info, [info_a, info_c]) _force_update_info(info_a, info_c) assert (info_c['sfreq'] == info_a['sfreq']) assert (info_c['ch_names'][0] != info_a['ch_names'][0]) # Make sure it works now _merge_info([info_a, info_c]) # Check that you must supply Info pytest.raises(ValueError, _force_update_info, info_a, dict([('sfreq', 1000.)])) # KIT System-ID info_a['kit_system_id'] = 50 assert _merge_info((info_a, info_b))['kit_system_id'] == 50 info_b['kit_system_id'] = 50 assert _merge_info((info_a, info_b))['kit_system_id'] == 50 info_b['kit_system_id'] = 60 pytest.raises(ValueError, _merge_info, (info_a, info_b)) # hpi infos info_d = create_info(ch_names=['d', 'e', 'f'], sfreq=1000., ch_types=None) info_merged = _merge_info([info_a, info_d]) assert not info_merged['hpi_meas'] assert not info_merged['hpi_results'] info_a['hpi_meas'] = [{'f1': 3, 'f2': 4}] assert _merge_info([info_a, info_d])['hpi_meas'] == info_a['hpi_meas'] info_d['hpi_meas'] = [{'f1': 3, 'f2': 4}] assert _merge_info([info_a, info_d])['hpi_meas'] == info_d['hpi_meas'] # This will break because of inconsistency info_d['hpi_meas'] = [{'f1': 3, 'f2': 5}] pytest.raises(ValueError, _merge_info, [info_a, info_d]) info_0 = read_info(raw_fname) info_0['bads'] = ['MEG 2443', 'EEG 053'] assert len(info_0['chs']) == 376 assert len(info_0['dig']) == 146 info_1 = create_info(["STI XXX"], info_0['sfreq'], ['stim']) assert info_1['bads'] == [] info_out = _merge_info([info_0, info_1], force_update_to_first=True) assert len(info_out['chs']) == 377 assert len(info_out['bads']) == 2 assert len(info_out['dig']) == 146 assert len(info_0['chs']) == 376 assert len(info_0['bads']) == 2 assert len(info_0['dig']) == 146