Source code for roentgen.tests.test_lines

import pytest

import astropy.units as u
from astropy.table import QTable

import roentgen
from roentgen.lines import emission_lines, get_edges, get_lines

# remove H and He and z > 92
all_elements = list(roentgen.elements["symbol"])[2:-6]


[docs] def test_emission_lines(): assert len(emission_lines.colnames) == 6 assert isinstance(emission_lines["energy"], u.Quantity) assert isinstance(emission_lines["width"], u.Quantity)
[docs] @pytest.mark.parametrize("element_str", all_elements) def test_line(element_str): """Check that all elements return at least one line""" line_list = get_lines(0 * u.keV, 100 * u.keV, element=element_str) assert len(line_list) >= 0 assert isinstance(line_list, QTable)
[docs] def test_get_lines(): """Check that lines are returned in a range""" assert len(get_lines(4 * u.keV, 6 * u.keV)) > 0
[docs] def test_get_all_lines(): """Check that all lines are returned if the range is large enough.""" assert len(get_lines(0 * u.keV, 200 * u.keV)) == len(roentgen.lines.emission_lines)
[docs] @pytest.mark.parametrize( "energy_low,energy_high,element,result", [ (0 * u.eV, 520 * u.eV, None, 15), (74.9 * u.keV, 81.0 * u.keV, None, 11), (6 * u.keV, 8 * u.keV, "Fe", 3), (8 * u.keV, 8.1 * u.keV, "Cu", 2), ], ) def test_get_right_number_of_lines(energy_low, energy_high, element, result): """Check a few specific cases for known number of lines""" assert len(get_lines(energy_low, energy_high, element=element)) == result
[docs] @pytest.mark.parametrize("element_str", all_elements) def test_get_edges(element_str): """Test that all element return one row at least.""" edge_list = get_edges(element_str) assert isinstance(edge_list, QTable) assert len(edge_list) > 0
[docs] @pytest.mark.parametrize( "element_str,edge_index, energy", [ ("H", 0, 13.60 * u.eV), ("Fe", 0, 7112.00 * u.eV), ("Cu", 2, 952.30 * u.eV), ("Au", 8, 2206.00 * u.eV), ], ) def test_get_edges_values(element_str, edge_index, energy): """Check a few specific cases""" assert get_edges(element_str)[edge_index]["energy"] == energy