def test_outputs_bias_at_M(): #List vs. numpy.array npt.assert_array_equal(bias.bias_at_M(Ma, klin, plin, Omega_m), bias.bias_at_M(Ma.tolist(), klin, plin, Omega_m)) #Single value vs numpy.array arrout = bias.bias_at_M(Ma, klin, plin, Omega_m) for i in range(len(Ma)): npt.assert_equal(bias.bias_at_M(Ma[i], klin, plin, Omega_m), arrout[i])
def test_R_vs_M(): R = 1.0 #Mpc/h M = 4.*np.pi/3. * Omega_m * rhomconst * R**3 npt.assert_almost_equal(bias.bias_at_R(R, klin, plin), bias.bias_at_M(M, klin, plin, Omega_m)) R = np.array([1.2, 1.4, 1.5]) M = 4.*np.pi/3. * Omega_m * rhomconst * R**3 npt.assert_array_almost_equal(bias.bias_at_R(R, klin, plin), bias.bias_at_M(M, klin, plin, Omega_m))
def test_single_vs_array(): #First sigma2 a1 = peaks.sigma2_at_M(Ma, klin, plin, Omega_m) a2 = np.array([peaks.sigma2_at_M(Mi, klin, plin, Omega_m) for Mi in Ma]) npt.assert_array_equal(a1, a2) a1 = peaks.sigma2_at_R(Ra, klin, plin) a2 = np.array([peaks.sigma2_at_R(Ri, klin, plin) for Ri in Ra]) npt.assert_array_equal(a1, a2) #Now the bias a1 = bias.bias_at_M(Ma, klin, plin, Omega_m) a2 = np.array([bias.bias_at_M(Mi, klin, plin, Omega_m) for Mi in Ma]) npt.assert_array_equal(a1, a2) a1 = bias.bias_at_R(Ra, klin, plin) a2 = np.array([bias.bias_at_R(Ri, klin, plin) for Ri in Ra]) npt.assert_array_equal(a1, a2)
def test_Cordering(): Me,be = np.loadtxt(join(dirname(__file__),datapath+"bias_camb_z0.0.dat")).T ke,pe = np.loadtxt(join(dirname(__file__),datapath+"ps_camb_z0.0.dat")).T pe = 2*np.pi**2*pe/ke**3 #Me = np.ascontiguousarray(Me) #test passes if this is not required #ke = np.ascontiguousarray(ke) #test passes if this is not required #pe = np.ascontiguousarray(pe) #test passes if this is not required bt = bias.bias_at_M(Me, ke, pe, Omega_m) r = be/bt npt.assert_array_almost_equal(r, np.ones_like(r), decimal=3)
def test_derivatives(): M = np.logspace(13, 14, 1000) dbdM = bias.dbiasdM_at_M(M, klin, plin, Omega_m) npt.assert_equal(sorted(dbdM), dbdM[::-1]) b = bias.bias_at_M(M, klin, plin, Omega_m) dM = M[1:] - M[:-1] db = b[1:] - b[:-1] deriv = db/dM pd = dbdM[:-1] / deriv npt.assert_array_almost_equal(pd, np.ones_like(pd), 1e-2)
def test_exceptions_bias_at_M(): with pytest.raises(TypeError): bias.bias_at_M() with pytest.raises(TypeError): bias.bias_at_M(Mass, klin, plin) with pytest.raises(TypeError): bias.bias_at_M(Mass, klin, plin, Omega_m, Omega_m)
def test_mass_dependence(): masses = np.logspace(13, 15, num=100) arrout = bias.bias_at_M(masses, klin, plin, Omega_m) for i in range(len(masses)-1): assert arrout[i] < arrout[i+1] Rs = (masses/(4./3.*np.pi*Omega_m*rhomconst))**(1./3.) arrout = bias.bias_at_R(Rs, klin, plin) for i in range(len(masses)-1): assert arrout[i] < arrout[i+1] nus = peaks.nu_at_M(masses, klin, plin, Omega_m) arrout = bias.bias_at_nu(nus) for i in range(len(masses)-1): assert arrout[i] < arrout[i+1]
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')
def test_s2_and_nu_functions(): #Test the mass calls s2 = peaks.sigma2_at_M(Mass, klin, plin, Omega_m) nu = peaks.nu_at_M(Mass, klin, plin, Omega_m) npt.assert_equal(1.686/np.sqrt(s2), nu) s2 = peaks.sigma2_at_M(Ma, klin, plin, Omega_m) nu = peaks.nu_at_M(Ma, klin, plin, Omega_m) npt.assert_array_equal(1.686/np.sqrt(s2), nu) out = bias.bias_at_M(Ma, klin, plin, Omega_m) out2 = bias.bias_at_nu(nu) npt.assert_array_equal(out, out2) #Now test the R calls R = 1.0 #Mpc/h; arbitrary s2 = peaks.sigma2_at_R(R, klin, plin) nu = peaks.nu_at_R(R, klin, plin) npt.assert_equal(1.686/np.sqrt(s2), nu) out = bias.bias_at_R(R, klin, plin) out2 = bias.bias_at_nu(nu) npt.assert_array_equal(out, out2)