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)
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)