Exemple #1
0
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)
Exemple #2
0
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)
Exemple #3
0
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())
Exemple #4
0
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)
Exemple #5
0
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)