Source code for macro_lightning.tests.test_parameters
# -*- coding: utf-8 -*-
"""Test :mod:`~macro_lightning.parameters`."""
__all__ = [
"test_solar_system_vesc_params",
"test_vesc_sun_at_R",
]
##############################################################################
# IMPORTS
# THIRD PARTY
# THIRD PARTY
import astropy.units as u
import pytest
# PROJECT-SPECIFIC
from .. import parameters as params
##############################################################################
# PARAMETERS
_KMS = u.km / u.s
##############################################################################
# CODE
##############################################################################
[docs]def test_solar_system_vesc_params():
"""Test :class:`~macro_lightning.parameters.solar_system_vesc_params`."""
# test set
params.solar_system_vesc_params.set("latest")
# test setting set references
refs = params.solar_system_vesc_params._references
expected = params.solar_system_vesc_params._registry["DEFAULT"][
"references"
]
assert refs == expected
# test get
ss = params.solar_system_vesc_params.get()
expected = params.solar_system_vesc_params._registry["DEFAULT"]["params"]
assert ss == expected
# test register
new_params = {k: v + 2 * _KMS for k, v in ss.items()}
params.solar_system_vesc_params.register(
"new",
params=new_params,
references={"_source": None},
)
# test can set
params.solar_system_vesc_params.set("new")
# test getting works
new_ss = params.solar_system_vesc_params.get()
assert new_ss == new_params
pass
# /def
# -------------------------------------------------------------------
[docs]def test_vesc_sun_at_R():
"""Test :func:`~macro_lightning.parameters.vesc_sun_at_R`."""
# Unity test
assert params.vesc_sun_at_R(1 * u.AU) == params.vesc_sun_at_earth
# quadruple distance = half the escape velocity
assert params.vesc_sun_at_R(4 * u.AU) == 2.0 * params.vesc_sun_at_earth
# Error test
with pytest.raises(Exception):
params.vesc_sun_at_R(1)
with pytest.raises(Exception):
params.vesc_sun_at_R(1 * u.deg)
# /def
##############################################################################
# END