Source code for est.tests.test_converter
"""Test conversion of xas_object to Orange.data.Table"""
import pytest
try:
import Orange
except ImportError:
Orange = None
else:
import numpy
from est.core.utils.converter import Converter
from est.tests.data import example_spectra
from est.core.types import XASObject
[docs]
@pytest.mark.skipif(Orange is None, reason="Orange3 is not installed")
def test_conversion():
"""Make sure the conversion to/from Orange.data.Table is safe for energy
and beam absorption
"""
energy, spectra = example_spectra(shape=(128, 20, 10))
xas_object = XASObject(energy=energy, spectra=spectra, dim1=20, dim2=10)
xas_object = xas_object.copy()
data_table = Converter.toDataTable(xas_object=xas_object)
converted_xas_object = Converter.toXASObject(data_table=data_table)
numpy.testing.assert_array_almost_equal(
xas_object.energy, converted_xas_object.energy
)
numpy.testing.assert_array_almost_equal(
xas_object.spectra.data.flat[0].mu,
converted_xas_object.spectra.data.flat[0].mu,
)
numpy.testing.assert_array_almost_equal(
xas_object.spectra.data.flat[5].mu,
converted_xas_object.spectra.data.flat[5].mu,
)
numpy.testing.assert_array_almost_equal(
xas_object.spectra.data.flat[18].mu,
converted_xas_object.spectra.data.flat[18].mu,
)