Skip to content

Commit 66f89be

Browse files
committed
done
1 parent 81b7527 commit 66f89be

File tree

1 file changed

+43
-0
lines changed

1 file changed

+43
-0
lines changed

tests/test_dices.py

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,49 @@ def test_jkmap(jk_maps, njk):
1515
assert np.all(np.unique(jk_maps[key]) == np.arange(1, njk + 1))
1616

1717

18+
def _remove_regions(maps, jk_maps, regions):
19+
"""Reference: explicitly zero out the given regions in each map."""
20+
from copy import deepcopy
21+
22+
_maps = deepcopy(maps)
23+
for key_data, key_mask in zip(maps.keys(), jk_maps.keys()):
24+
_jkmap = jk_maps[key_mask]
25+
if _jkmap is None:
26+
continue
27+
mask = (_jkmap > 0).astype(int)
28+
for r in regions:
29+
mask[_jkmap == float(r)] = 0
30+
_maps[key_data] *= mask
31+
return _maps
32+
33+
34+
def test_region_alm_cls(fields, data_maps, jk_maps, njk):
35+
"""ALM-subtraction and map-masking must give identical Cls."""
36+
from itertools import combinations
37+
38+
from heracles import angular_power_spectra, transform
39+
from heracles.dices.jackknife import _get_region_maps, _sum_alms_except
40+
41+
alms_regions = {
42+
k: transform(fields, _get_region_maps(data_maps, jk_maps, k))
43+
for k in range(1, njk + 1)
44+
}
45+
46+
for nd in (0, 1, 2):
47+
for regions in combinations(range(1, njk + 1), nd):
48+
cls_new = angular_power_spectra(_sum_alms_except(alms_regions, regions))
49+
cls_ref = angular_power_spectra(
50+
transform(fields, _remove_regions(data_maps, jk_maps, regions))
51+
)
52+
for key in cls_ref:
53+
np.testing.assert_allclose(
54+
cls_new[key].array,
55+
cls_ref[key].array,
56+
rtol=1e-7,
57+
atol=1e-10,
58+
err_msg=f"nd={nd}, regions={regions}, key={key}",
59+
)
60+
1861

1962
def test_cls(nside, cls0, fields, data_maps, vis_maps, jk_maps):
2063
_cls0 = dices.jackknife_cls(data_maps, vis_maps, jk_maps, fields, nd=0)[()]

0 commit comments

Comments
 (0)