Skip to content
Draft
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
168 changes: 168 additions & 0 deletions sunkit_spex/conftest.py
Original file line number Diff line number Diff line change
Expand Up @@ -42,3 +42,171 @@
# TESTED_VERSIONS[packagename] = version
# except NameError: # Needed to support Astropy <= 1.0.0
# pass

import numpy as np
import pytest

import astropy.units as u
from astropy.wcs import WCS

from sunkit_spex.spectrum import Spectrum


@pytest.fixture
def wcs_energy_time():
"""Return WCS object with time and energy axes."""
header = {
"CTYPE1": "TIME",
"CUNIT1": "min",
"CDELT1": 0.4,
"CRPIX1": 0,
"CRVAL1": 0,
"CTYPE2": "ENERGY",
"CUNIT2": "keV",
"CDELT2": 0.2,
"CRPIX2": 0,
"CRVAL2": 0,
"DATEREF": "2020-01-01T00:00:00",
}
return WCS(header=header)


@pytest.fixture
def spectrum_energy_time():
"""Return Spectrum Object with linear data, and time and energy spectral axes."""
timeenergy = wcs_energy_time
data = np.arange(1, 11) * u.watt
return Spectrum(data, wcs=timeenergy)


@pytest.fixture
def wcs_detector_energy():
"""Return WCS object with detector and energy axes."""
header = {
"CTYPE1": "DETECTOR",
"CUNIT1": "",
"CDELT1": 1,
"CRPIX1": 1,
"CRVAL1": 1,
"CTYPE2": "ENERGY",
"CUNIT2": "keV",
"CDELT2": 0.2,
"CRPIX2": 0,
"CRVAL2": 0,
"DATEREF": "2020-01-01T00:00:00",
}
return WCS(header=header)


@pytest.fixture
def spectrum_detector_energy():
"""Return Spectrum object with linear data, and detector and energy spectral axes."""
detectorenergy = wcs_detector_energy()
data = np.arange(1, 11) * u.watt
return Spectrum(data, wcs=detectorenergy)


@pytest.fixture
def wcs_energy_space_space():
"""Return WCS object with energy and two spatial axes."""
header = {
"CTYPE1": "ENERGY",
"CUNIT1": "keV",
"CDELT1": 0.2,
"CRPIX1": 0,
"CRVAL1": 0,
"CTYPE2": "HPLT-TAN",
"CUNIT2": "deg",
"CDELT2": 0.5,
"CRPIX2": 2,
"CRVAL2": 0.5,
"CTYPE3": "HPLN-TAN",
"CUNIT3": "deg",
"CDELT3": 0.4,
"CRPIX3": 2,
"CRVAL3": 1,
"DATEREF": "2020-01-01T00:00:00",
}
return WCS(header=header)


@pytest.fixture
def spectrum_energy_space_space():
"""Return Spectrum object with linear data, and energy and two spatial spectral axes."""
energyspacespace = wcs_energy_space_space()
data = np.arange(1, 11) * u.watt
return Spectrum(data, wcs=energyspacespace)


@pytest.fixture
def wcs_energy_time_detector():
"""Return WCS object with energy and time and detector axes."""
header = {
"CTYPE1": "ENERGY ",
"CUNIT1": "keV",
"CDELT1": 0.2,
"CRPIX1": 0,
"CRVAL1": 0,
"CTYPE2": "TIME",
"CUNIT2": "min",
"CDELT2": 0.4,
"CRPIX2": 0,
"CRVAL2": 0,
"CTYPE3": "DETECTOR",
"CUNIT3": "",
"CDELT3": 1,
"CRPIX3": 1,
"CRVAL3": 1,
"DATEREF": "2020-01-01T00:00:00",
}
return WCS(header=header)


@pytest.fixture
def spectrum_energy_time_detector():
"""Return Spectrum object with linear data, and energy, time and detector spectral axes."""
energytimedetector = wcs_energy_time_detector()
data = np.arange(1, 11) * u.watt
return Spectrum(data, wcs=energytimedetector)


@pytest.fixture
def wcs_energy_2space_time_stokes():
"""Return WCS object with energy, 2 spatial, time and Stokes axes."""
header = {
"CTYPE1": "ENERGY",
"CUNIT1": "keV",
"CDELT1": 0.2,
"CRPIX1": 0,
"CRVAL1": 0,
"CTYPE2": "HPLT-TAN",
"CUNIT2": "deg",
"CDELT2": 0.5,
"CRPIX2": 2,
"CRVAL2": 0.5,
"CTYPE3": "HPLN-TAN",
"CUNIT3": "deg",
"CDELT3": 0.4,
"CRPIX3": 2,
"CRVAL3": 1,
"CTYPE4": "TIME",
"CUNIT4": "min",
"CDELT4": 0.4,
"CRPIX4": 0,
"CRVAL4": 0,
"CTYPE5": "STOKES",
"CUNIT5": "C/m2",
"CDELT5": 0.4,
"CRPIX5": 0,
"CRVAL5": 0,
"DATEREF": "2020-01-01T00:00:00",
}
return WCS(header=header)


@pytest.fixture
def spectrum_energy_2space_time_stokes():
"""Return Spectrum object with linear data, and energy, two spatial, time and Stokes spectral axes."""
esstp = wcs_energy_2space_time_stokes()
data = np.arange(1, 11) * u.watt
return Spectrum(data, wcs=esstp)
Loading