Source code for test_halo_utils
"""Tests for the halo_utils module
"""
import os
import unittest
import shutil
import numpy as np
from n2j.trainval_data.utils import halo_utils as hu
[docs]class TestHaloUtils(unittest.TestCase):
"""A suite of tests verifying the raytracing utility methods
"""
@classmethod
[docs] def setUpClass(cls):
"""Set global defaults for tests
"""
cls.healpix = 10450
cls.out_dir = 'test_out_dir'
os.makedirs(cls.out_dir, exist_ok=True)
cls.halo_mass = np.array([1e12, 5e12, 1e13])
cls.stellar_mass = np.array([1e12, 5e12, 1e13])
cls.halo_z = np.array([1.5, 1.0, 1.2])
cls.z_src = 2.0
cls.halo_ra = np.array([1.0, 2.0, 0.5])/60.0 # deg
cls.halo_dec = np.array([1.0, 0.5, 2.0])/60.0 # deg
[docs] def test_get_concentration(self):
"""Test mass-concentration relation at extreme values
"""
c_0 = 3.19
c200_at_stellar_mass = hu.get_concentration(1.0, 1.0, m=-0.10,
A=3.44,
trans_M_ratio=430.49,
c_0=c_0,
add_noise=False)
c200_at_high_halo_mass = hu.get_concentration(10.0**5, 1.0, m=-0.10,
A=3.44,
trans_M_ratio=430.49,
c_0=c_0,
add_noise=False)
np.testing.assert_almost_equal(c200_at_stellar_mass, 6.060380052400085,
err_msg='halo mass at stellar mass')
np.testing.assert_almost_equal(c200_at_high_halo_mass, c_0, decimal=2,
err_msg='at high halo mass')
@classmethod
[docs] def tearDownClass(cls):
shutil.rmtree(cls.out_dir)
if __name__ == '__main__':
unittest.main()