Пример #1
0
def test_TemplateSpectralModel_single_value():
    energy = [1] * u.TeV
    values = [1e-12] * u.Unit("TeV-1 s-1 cm-2")

    model = TemplateSpectralModel(energy=energy, values=values)
    result = model.evaluate([0.5, 2] * u.TeV)

    assert_allclose(result.data, 1e-12)
Пример #2
0
def test_TemplateSpectralModel_evaluate_tiny():
    energy = np.array([1.00000000e06, 1.25892541e06, 1.58489319e06, 1.99526231e06])
    values = np.array([4.39150790e-38, 1.96639562e-38, 8.80497507e-39, 3.94262401e-39])

    model = TemplateSpectralModel(
        energy=energy, values=values * u.Unit("MeV-1 s-1 sr-1")
    )
    result = model.evaluate(energy)
    tiny = np.finfo(np.float32).tiny
    mask = abs(values) - tiny > tiny
    np.testing.assert_allclose(
        values[mask] / values.max(), result[mask].value / values.max()
    )
    mask = abs(result.value) - tiny <= tiny
    assert np.all(result[mask] == 0.0)