def test_outputs_xi_nfw_at_r(): #List vs. numpy.array npt.assert_array_equal(xi.xi_nfw_at_r(ra, Mass, conc, Omega_m), xi.xi_nfw_at_r(ra.tolist(), Mass, conc, Omega_m)) #Single value vs numpy.array arrout = xi.xi_nfw_at_r(ra, Mass, conc, Omega_m) for i in range(len(ra)): npt.assert_equal(xi.xi_nfw_at_r(ra[i], Mass, conc, Omega_m), arrout[i])
def test_rho_vs_xi_nfw(): #Note: testing fractional precision to avoid numerical issues arr1 = density.rho_nfw_at_r(R_arr, Mass, conc, Omega_m) arr2 = xi.xi_nfw_at_r(R_arr, Mass, conc, Omega_m) arr2 = rhom * (1 + arr2) arr2 = arr2 / arr1 ones = np.ones_like(arr1) npt.assert_array_equal(ones, arr2)
def test_combination(): xinfw = xi.xi_nfw_at_r(ra, Mass, conc, Omega_m) ximm = xi.xi_mm_at_r(ra, knl, pnl) from cluster_toolkit import bias b = bias.bias_at_M(Mass, klin, plin, Omega_m) xi2h = xi.xi_2halo(b, ximm) xihm = xi.xi_hm(xinfw, xi2h) xihm2 = xi.xi_hm(xinfw, xi2h, combination='max') npt.assert_array_equal(xihm, xihm2) xihm2 = xi.xi_hm(xinfw, xi2h, combination='sum') npt.assert_raises(AssertionError, npt.assert_array_equal, xihm, xihm2) with pytest.raises(Exception): xi.xi_hm(xinfw, xi2h, combination='blah')
out_pk_file = '/home/xkchen/figs/pk_arr.dat' khnl, pknl = pk_at_r(R, z0, out_pk_file) # pk_file = '/home/xkchen/figs/pk_arr.dat' # xi_mm = integ_pk_func( R, pk_file,) # plt.figure() # plt.plot( R, xi_mm, 'r-', alpha = 0.5,) # plt.xscale('log') # plt.yscale('log') # plt.savefig('/home/xkchen/xi-mm_view.png', dpi = 300) # plt.show() ### check xi_2h xi_mm = xi.xi_mm_at_r(R / 1e3, khnl, pknl) xi_nfw = xi.xi_nfw_at_r(R / 1e3, 1e14, c_mass, Omega_m) xi_2h = xi_2h_func(R, 1, z0) ## set bias = 1 plt.figure() plt.plot(R, xi_2h, 'r-', alpha=0.5) plt.plot(R, xi_mm, 'b--', alpha=0.5) plt.xscale('log') plt.yscale('log') plt.show() xi_hm = xi_hm_func(R, z0, c_mass, Mh0, bias, v_m) xi_2h = xi_2h_func(R, bias, z0) xi_1h = xi_1h_func(R, z0, c_mass, Mh0, v_m) plt.figure()
def test_nfw_mass_dependence(): masses = np.array([1e13, 1e14, 1e15]) for i in range(len(masses) - 1): xi1 = xi.xi_nfw_at_r(ra, masses[i], conc, Omega_m) xi2 = xi.xi_nfw_at_r(ra, masses[i + 1], conc, Omega_m) npt.assert_array_less(xi1, xi2)
def test_exceptions_xi_nfw_at_r(): with pytest.raises(TypeError): xi.xi_nfw_at_r() #No args xi.xi_nfw_at_r(r, Mass, conc) #Too few args xi.xi_nfw_at_r(r, Mass, conc, Omega_m, Omega_m) #Too many args xi.xi_nfw_at_r("a string", Mass, conc, Omega_m, Omega_m) #Wrong type