Source code for pynxxas.tests.test_nxxas

from ..models import NxXasModel


[docs] def test_nxxas(): data = { "@NX_class": "NXsubentry", "definition": "NXxas", "mode": { "@NX_class": "NXxas_mode", "name": "transmission", }, "element": { "@NX_class": "NXelement", "symbol": "Fe", }, "edge": { "@NX_class": "NXedge", "name": "K", }, "energy": [[7, 7.1], "keV"], "intensity": [10, 20], } model_instance = NxXasModel(**data) expected = _expected_content("NXsubentry", [[7.0, 7.1], "keV"], [[10, 20], ""]) assert model_instance.model_dump() == expected
[docs] def test_nxxas_defaults(): data = { "mode": {"name": "transmission"}, "element": {"symbol": "Fe"}, "edge": {"name": "K"}, } model_instance = NxXasModel(**data) expected = _expected_content("NXentry", [[], ""], [[], ""]) assert model_instance.model_dump() == expected
[docs] def test_nxxas_fill_data(): data = { "mode": { "@NX_class": "NXxas_mode", "name": "transmission", }, "element": { "@NX_class": "NXelement", "symbol": "Fe", }, "edge": { "NX_class": "NXedge", "name": "K", }, } model_instance = NxXasModel(**data) model_instance.energy = [7, 7.1], "keV" model_instance.intensity = [10, 20] expected = _expected_content("NXentry", [[7, 7.1], "keV"], [[10, 20], ""]) assert model_instance.model_dump() == expected
def _expected_content(nx_class, energy, intensity): return { "NX_class": nx_class, "definition": "NXxas", "mode": { "NX_class": "NXxas_mode", "name": "transmission", "emission_lines": None, }, "element": { "NX_class": "NXelement", "symbol": "Fe", "atomic_number": None, }, "edge": { "NX_class": "NXedge", "name": "K", }, "energy": energy, "intensity": intensity, "title": "Fe K (transmission)", "instrument": None, "calculated": None, "plot": { "NX_class": "NXdata", "axes": [ "energy", ], "energy": { "target_filename": None, "target_name": "../energy", }, "intensity": { "target_filename": None, "target_name": "../intensity", }, "signal": "intensity", }, }