Beispiel #1
0
def test_update_mass():
    c = ClusterEnsemble(toy_data_z)

    def _check_n_and_m(i):
        assert_equal(c.m200.value, toy_data_m200[i])
        assert_allclose(c.n200, toy_data_n200[i])

    def _check_radii(i):
        assert_allclose(c.r200.value, toy_data_r200[i])
        assert_allclose(c.rs.value, toy_data_rs[i])

    def _check_c200(i):
        assert_allclose(toy_data_c200[i], c.c200)
        if c.c200 is np.real:
            assert_allclose(toy_data_r200[i] / toy_data_rs[i], c.c200)
        else:
            assert (toy_data_r200[i] / toy_data_rs[i] is not np.real)

    def _check_delta_c(i):
        assert_allclose(toy_data_deltac[i], c.delta_c)

    for i, m200 in enumerate(toy_data_m200):
        c.m200 = m200
        yield _check_n_and_m, i
        yield _check_radii, i
        yield _check_c200, i
        yield _check_delta_c, i
def test_update_mass():
    c = ClusterEnsemble(toy_data_z)

    def _check_n_and_m(i):
        assert_equal(c.m200.value, toy_data_m200[i])
        assert_allclose(c.n200, toy_data_n200[i])

    def _check_radii(i):
        assert_allclose(c.r200.value, toy_data_r200[i])
        assert_allclose(c.rs.value, toy_data_rs[i])

    def _check_c200(i):
        assert_allclose(toy_data_c200[i], c.c200)
        if c.c200 is np.real:
            assert_allclose(toy_data_r200[i] / toy_data_rs[i], c.c200)
        else:
            assert(toy_data_r200[i] / toy_data_rs[i] is not np.real)

    def _check_delta_c(i):
        assert_allclose(toy_data_deltac[i], c.delta_c)

    for i, m200 in enumerate(toy_data_m200):
        c.m200 = m200
        yield _check_n_and_m, i
        yield _check_radii, i
        yield _check_c200, i
        yield _check_delta_c, i
def test_update_norm():
    c = ClusterEnsemble(toy_data_z)
    c.n200 = [10, 20]
    norm_before = c._massrich_norm.value
    norm_after = 2. * norm_before
    m_before = c.m200
    c.massrich_norm = norm_after
    m_after = c.m200
    assert_equal(m_before / m_after, np.array([norm_before / norm_after] * 2))
Beispiel #4
0
def test_update_norm():
    c = ClusterEnsemble(toy_data_z)
    c.n200 = [10, 20]
    norm_before = c._massrich_norm.value
    norm_after = 2. * norm_before
    m_before = c.m200
    c.massrich_norm = norm_after
    m_after = c.m200
    assert_equal(m_before / m_after, np.array([norm_before / norm_after] * 2))
def test_update_slope():
    c = ClusterEnsemble(toy_data_z)
    c.n200 = [10, 20]
    slope_before = c._massrich_slope
    slope_after = 2.
    m_before = c.m200
    c.massrich_slope = slope_after
    m_after = c.m200
    assert_equal(m_before[1], m_after[1])
    assert_equal(m_before[0] / m_after[0], (0.5**slope_before) /
                 (0.5**slope_after))
Beispiel #6
0
def test_update_slope():
    c = ClusterEnsemble(toy_data_z)
    c.n200 = [10, 20]
    slope_before = c._massrich_slope
    slope_after = 2.
    m_before = c.m200
    c.massrich_slope = slope_after
    m_after = c.m200
    assert_equal(m_before[1], m_after[1])
    assert_equal(m_before[0] / m_after[0],
                 (0.5**slope_before) / (0.5**slope_after))
Beispiel #7
0
def test_nfw_centered():
    c = ClusterEnsemble(toy_data_z)

    def _check_sigma(i, j):
        assert_allclose(c.sigma_nfw[j].value, toy_data_sigma[i, j], rtol=1e-4)

    def _check_deltasigma(i, j):
        assert_allclose(c.deltasigma_nfw[j].value,
                        toy_data_deltasigma[i, j],
                        rtol=1e-4)

    for i, n200 in enumerate(toy_data_n200):
        c.n200 = n200
        c.calc_nfw(toy_data_rbins)
        for j in range(c.z.shape[0]):
            yield _check_sigma, i, j
            yield _check_deltasigma, i, j
def test_nfw_centered():
    c = ClusterEnsemble(toy_data_z)

    def _check_sigma(i, j):
        assert_allclose(c.sigma_nfw[j].value, toy_data_sigma[i, j],
                        rtol=1e-4)

    def _check_deltasigma(i, j):
        assert_allclose(c.deltasigma_nfw[j].value, toy_data_deltasigma[i, j],
                        rtol=1e-4)

    for i, n200 in enumerate(toy_data_n200):
        c.n200 = n200
        c.calc_nfw(toy_data_rbins)
        for j in range(c.z.shape[0]):
            yield _check_sigma, i, j
            yield _check_deltasigma, i, j
Beispiel #9
0
def test_wrong_length_richness():
    c = ClusterEnsemble(toy_data_z)
    richness = [np.ones(3), np.arange(4), np.arange(5) + 20.]

    def set_n200(val):
        c.n200 = val

    for n in richness:
        assert_raises(ValueError, set_n200, n)
Beispiel #10
0
def test_wrong_length_z():
    c = ClusterEnsemble(toy_data_z)
    redshifts = [np.ones(3), np.arange(4), np.arange(5) + 20.]

    def set_z(val):
        c.z = val

    for z in redshifts:
        assert_raises(ValueError, set_z, z)
Beispiel #11
0
def test_negative_n200():
    c = ClusterEnsemble(toy_data_z)
    richness = np.array([[-1., -999.], [30., -10.]])

    def set_n200(val):
        c.n200 = val

    for n in richness:
        assert_raises(ValueError, set_n200, n)
def test_nfw_offset():
    c = ClusterEnsemble(toy_data_z)

    def _check_sigma(i, j):
        assert_allclose(c.sigma_nfw[j].value, toy_data_sigma_off[i, j],
                        rtol=10**-4)

    def _check_deltasigma(i, j):
        assert_allclose(c.deltasigma_nfw[j].value,
                        toy_data_deltasigma_off[i, j],
                        rtol=10**-4)

    for i, n200 in enumerate(toy_data_n200[:-1]):
        c.n200 = n200
        c.calc_nfw(toy_data_rbins, offsets=toy_data_offset)
        for j in range(c.z.shape[0]):
            yield _check_sigma, i, j
            yield _check_deltasigma, i, j
Beispiel #13
0
def test_nfw_offset():
    c = ClusterEnsemble(toy_data_z)

    def _check_sigma(i, j):
        assert_allclose(c.sigma_nfw[j].value,
                        toy_data_sigma_off[i, j],
                        rtol=10**-4)

    def _check_deltasigma(i, j):
        assert_allclose(c.deltasigma_nfw[j].value,
                        toy_data_deltasigma_off[i, j],
                        rtol=10**-4)

    for i, n200 in enumerate(toy_data_n200[:-1]):
        c.n200 = n200
        c.calc_nfw(toy_data_rbins, offsets=toy_data_offset)
        for j in range(c.z.shape[0]):
            yield _check_sigma, i, j
            yield _check_deltasigma, i, j
Beispiel #14
0
def test_wrong_length_update_MNrelation():
    c = ClusterEnsemble(toy_data_z)

    def set_slope(val):
        c.massrich_slope = val

    def set_norm(val):
        c.massrich_norm = val

    assert_raises(TypeError, set_slope, slope=[1.5, 2., 2.5])
    assert_raises(TypeError, set_norm, norm=[1.5e14, 2.e13, 2.5e-2])
Beispiel #15
0
def test_for_infs_in_miscentered_c_calc():
    c = ClusterEnsemble(toy_data_z)

    def _check_sigma_off(arr):
        if np.isnan(arr.sum()):
            raise ValueError('sigma_off result contains NaN', arr)
        if np.isinf(arr.sum()):
            raise ValueError('sigma_off result contains Inf', arr)

    def _check_deltasigma_off(arr):
        if np.isnan(arr.sum()):
            raise ValueError('sigma_off result contains NaN', arr)
        if np.isinf(arr.sum()):
            raise ValueError('sigma_off result contains Inf', arr)

    # last element in toy_data is n200=0 -> NaN (skip for this check)
    for n200 in toy_data_n200[:-1]:
        c.n200 = n200
        c.calc_nfw(toy_data_rbins, offsets=toy_data_offset)
        for i in range(c.z.shape[0]):
            yield _check_sigma_off, c.sigma_nfw[i].value
            yield _check_deltasigma_off, c.deltasigma_nfw[i].value
def test_for_infs_in_miscentered_c_calc():
    c = ClusterEnsemble(toy_data_z)

    def _check_sigma_off(arr):
        if np.isnan(arr.sum()):
            raise ValueError('sigma_off result contains NaN', arr)
        if np.isinf(arr.sum()):
            raise ValueError('sigma_off result contains Inf', arr)

    def _check_deltasigma_off(arr):
        if np.isnan(arr.sum()):
            raise ValueError('sigma_off result contains NaN', arr)
        if np.isinf(arr.sum()):
            raise ValueError('sigma_off result contains Inf', arr)

    # last element in toy_data is n200=0 -> NaN (skip for this check)
    for n200 in toy_data_n200[:-1]:
        c.n200 = n200
        c.calc_nfw(toy_data_rbins, offsets=toy_data_offset)
        for i in range(c.z.shape[0]):
            yield _check_sigma_off, c.sigma_nfw[i].value
            yield _check_deltasigma_off, c.deltasigma_nfw[i].value
Beispiel #17
0
def test_initialization():
    c = ClusterEnsemble(toy_data_z)
    assert_equal(c.z, toy_data_z)
    assert_allclose(c.Dang_l.value, [208.18989, 1697.5794])
    assert_equal(c.number, 2)
Beispiel #18
0
def test_initialization_wmap9():
    from astropy.cosmology import WMAP9 as wmap9
    c = ClusterEnsemble(toy_data_z, cosmology=wmap9)
    assert_equal(c.z, toy_data_z)
    assert_allclose(c.Dang_l.value, [203.7027, 1681.5353])
    assert_equal(c.number, 2)
Beispiel #19
0
 def use_string_cosmology():
     ClusterEnsemble(toy_data_z, cosmology="WMAP9")