|
23 | 23 | EvokedArray, |
24 | 24 | SourceEstimate, |
25 | 25 | combine_evoked, |
| 26 | + compute_rank, |
26 | 27 | compute_raw_covariance, |
27 | 28 | convert_forward_solution, |
28 | 29 | make_ad_hoc_cov, |
@@ -992,21 +993,34 @@ def test_make_inverse_operator_diag(evoked, noise_cov, tmp_path, azure_windows): |
992 | 993 |
|
993 | 994 | def test_inverse_operator_noise_cov_rank(evoked, noise_cov): |
994 | 995 | """Test MNE inverse operator with a specified noise cov rank.""" |
995 | | - fwd_op = read_forward_solution_meg(fname_fwd, surf_ori=True) |
996 | | - inv = make_inverse_operator(evoked.info, fwd_op, noise_cov, rank=dict(meg=64)) |
| 996 | + fwd_op_meg = read_forward_solution_meg(fname_fwd, surf_ori=True) |
| 997 | + inv = make_inverse_operator(evoked.info, fwd_op_meg, noise_cov, rank=dict(meg=64)) |
997 | 998 | assert compute_rank_inverse(inv) == 64 |
998 | | - inv = make_inverse_operator(evoked.info, fwd_op, noise_cov, rank=dict(meg=64)) |
| 999 | + inv = make_inverse_operator(evoked.info, fwd_op_meg, noise_cov, rank=dict(meg=64)) |
999 | 1000 | assert compute_rank_inverse(inv) == 64 |
1000 | 1001 |
|
1001 | 1002 | bad_cov = noise_cov.copy() |
1002 | 1003 | bad_cov["data"][0, 0] *= 1e12 |
1003 | 1004 | with pytest.warns(RuntimeWarning, match="orders of magnitude"): |
1004 | | - make_inverse_operator(evoked.info, fwd_op, bad_cov, rank=dict(meg=64)) |
| 1005 | + make_inverse_operator(evoked.info, fwd_op_meg, bad_cov, rank=dict(meg=64)) |
1005 | 1006 |
|
1006 | | - fwd_op = read_forward_solution_eeg(fname_fwd, surf_ori=True) |
1007 | | - inv = make_inverse_operator(evoked.info, fwd_op, noise_cov, rank=dict(eeg=20)) |
| 1007 | + fwd_op_eeg = read_forward_solution_eeg(fname_fwd, surf_ori=True) |
| 1008 | + inv = make_inverse_operator(evoked.info, fwd_op_eeg, noise_cov, rank=dict(eeg=20)) |
1008 | 1009 | assert compute_rank_inverse(inv) == 20 |
1009 | 1010 |
|
| 1011 | + # with and without rank passed explicitly |
| 1012 | + inv_info = make_inverse_operator(evoked.info, fwd_op_meg, noise_cov, rank="info") |
| 1013 | + info_rank = 302 |
| 1014 | + assert compute_rank_inverse(inv_info) == info_rank |
| 1015 | + rank = compute_rank(noise_cov, info=evoked.copy().pick("meg").info, rank="info") |
| 1016 | + assert "meg" in rank |
| 1017 | + assert sum(rank.values()) == info_rank |
| 1018 | + inv_rank = make_inverse_operator(evoked.info, fwd_op_meg, noise_cov, rank=rank) |
| 1019 | + assert compute_rank_inverse(inv_rank) == info_rank |
| 1020 | + evoked_info = apply_inverse(evoked, inv_info, lambda2, "MNE") |
| 1021 | + evoked_rank = apply_inverse(evoked, inv_rank, lambda2, "MNE") |
| 1022 | + assert_allclose(evoked_rank.data, evoked_info.data) |
| 1023 | + |
1010 | 1024 |
|
1011 | 1025 | def test_inverse_operator_volume(evoked, tmp_path): |
1012 | 1026 | """Test MNE inverse computation on volume source space.""" |
|
0 commit comments