def test_density(z): expected_rho = jacchia77_solutions[z][10] * (u.kg**2 * u.mol * u.K**-1 * u.m**-3) density = Jacchia77(1000 * u.K).density(z) rho = np.log10(density.value) * density.unit assert_quantity_allclose(rho, expected_rho, rtol=1e-2)
def test_jacchia77(z): # Z, T, CN2, CO2, CO, CAr, CHe, CH, CM, WM) expected_CN2 = jacchia77_solutions[z][1] * (u.m)**-3 expected_CO2 = jacchia77_solutions[z][2] * (u.m)**-3 expected_CO = jacchia77_solutions[z][3] * (u.m)**-3 expected_CAr = jacchia77_solutions[z][4] * (u.m)**-3 expected_CHe = jacchia77_solutions[z][5] * (u.m)**-3 expected_CH = jacchia77_solutions[z][6] * (u.m)**-3 expected_CM = jacchia77_solutions[z][7] * (u.m)**-3 expected_WM = jacchia77_solutions[z][8] * (u.kg) properties = Jacchia77(1000 * u.K).altitude_profile(z) for i in range(2, len(properties) - 1): if properties[i].value > 1.26e-10: properties[i] = np.log10(properties[i].value) * properties[i].unit else: properties[i] = -9.9 * properties[i].unit Z, T, CN2, CO2, CO, CAr, CHe, CH, CM, WM = properties assert_quantity_allclose(CN2, expected_CN2, rtol=1e-4) assert_quantity_allclose(CO2, expected_CO2, rtol=1e-4) assert_quantity_allclose(CO, expected_CO, rtol=1e-4) assert_quantity_allclose(CAr, expected_CAr, rtol=1e-4) assert_quantity_allclose(CHe, expected_CHe, rtol=1e-4) assert_quantity_allclose(CH, expected_CH, rtol=1e-3) assert_quantity_allclose(CM, expected_CM, rtol=1e-4) assert_quantity_allclose(WM, expected_WM, rtol=1e-3)
def test_outside_lower_limit_coesa76(): with pytest.raises(ValueError) as excinfo: alt = 89.0 * u.km Texo = 1000 * u.K Jacchia77(Texo).altitude_profile(alt) assert ( "ValueError: Jacchia77 has been implemented in range 90km - 2500km." in excinfo.exconly())
def test_pressure(z): expected_p = jacchia77_solutions[z][9] * (u.N * u.m**-2) pressure = Jacchia77(1000 * u.K).pressure(z) p = np.log10(pressure.value) * pressure.unit assert_quantity_allclose(p, expected_p, rtol=1e-3)
def test_tempertaure(z): expected_T = jacchia77_solutions[z][0] * u.K T = Jacchia77(1000 * u.K).temperature(z) assert_quantity_allclose(T, expected_T, rtol=1e-4)