Source code for est.tests.larch.test_xftf

import pytest

from ...core.types.xasobject import XASObject

try:
    import larch
except ImportError:
    larch = None
else:
    from ...core.process.larch.autobk import process_spectr_autobk
    from ...core.process.larch.xftf import larch_xftf
    from ...core.process.larch.xftf import process_spectr_xftf


[docs] @pytest.mark.skipif(larch is None, reason="xraylarch not installed") def test_single_spectrum(spectrum_cu_from_larch): """Make sure computation on one spectrum is valid""" configuration = { "window": "hanning", "kweight": 2, "kmin": 3, "kmax": 13, "dk": 1, } # for xftf we need to compute pre edge before process_spectr_autobk(spectrum_cu_from_larch, configuration={}, overwrite=True) assert spectrum_cu_from_larch.k is not None assert spectrum_cu_from_larch.chi is not None process_spectr_xftf(spectrum_cu_from_larch, configuration, overwrite=True) assert spectrum_cu_from_larch.ft.radius is not None assert spectrum_cu_from_larch.ft.real is not None assert spectrum_cu_from_larch.ft.imaginary is not None assert spectrum_cu_from_larch.ft.intensity is not None
[docs] @pytest.fixture() def xas_object(spectrum_cu_from_larch): configuration = {"z": 29} process_spectr_autobk(spectrum_cu_from_larch, configuration={}, overwrite=True) xas_object = XASObject( spectra=(spectrum_cu_from_larch,), energy=spectrum_cu_from_larch.energy, dim1=1, dim2=1, configuration=configuration, ) # for xftf we need to compute pre edge before spectrum = xas_object.spectra.data.flat[0] assert spectrum.k is not None assert spectrum.chi is not None return xas_object
[docs] @pytest.mark.skipif(larch is None, reason="xraylarch not installed") def test_multiple_spectra(xas_object): """Make sure computation on spectra is valid (n spectrum)""" res = larch_xftf(xas_object) assert isinstance(res, XASObject) spectrum = res.spectra.data.flat[0] assert spectrum.ft.radius is not None assert spectrum.ft.real is not None assert spectrum.ft.imaginary is not None assert spectrum.ft.intensity is not None
[docs] @pytest.mark.skipif(larch is None, reason="xraylarch not installed") def test_multiple_spectra_asdict(xas_object): """Make sure computation on spectra is valid (n spectrum)""" res = larch_xftf(xas_object.to_dict()) assert isinstance(res, XASObject) spectrum = res.spectra.data.flat[0] assert spectrum.ft.radius is not None assert spectrum.ft.real is not None assert spectrum.ft.imaginary is not None assert spectrum.ft.intensity is not None