Visualizing File Changes Across Commits

This notebook analyzes differences in files across multiple tardis-regression-data commits. There are two main approaches to get tardis-regression-data commits:

Method 1: Run pytest on tardis commits and generate regression commits (False commits)

To fetch tardis commits, you have three options:

  • Run pytest on latest n tardis commits

  • Run pytest on str or list of multiple tardis commits

Method 2: Directly use tardis-regression-data repo commits

To get those commits, you have two options:

  • Manually provide a list of multiple tardis-regression-data commits

  • Get last n tardis-regression-data commits

Note:

By default this notebook runs pytest on latest n tardis commits and generates false regression commits to analyze difference.

[1]:
from tardisbase.testing.regression_comparison.run_tests import run_tests
from tardisbase.testing.regression_comparison.visualize_files import MultiCommitCompare
from tardisbase.testing.regression_comparison.util import get_last_n_commits
import pandas as pd
INFO:numexpr.utils:Note: detected 192 virtual cores but NumExpr set to maximum of 64, check "NUMEXPR_MAX_THREADS" environment variable.
INFO:numexpr.utils:Note: NumExpr detected 192 cores but "NUMEXPR_MAX_THREADS" not set, so enforcing safe limit of 16.
INFO:numexpr.utils:NumExpr defaulting to 16 threads.

Display Configuration

[2]:
# Configure pandas display options for better visualization
pd.set_option('display.max_colwidth', None)
pd.set_option('display.width', None)
pd.set_option('display.max_columns', None)
pd.set_option('display.max_rows', None)

Setup Configuration

[3]:
# Configuration for the analysis
config = {
    "tardis_repo_path": "/path/to/tardis/repo",
    "regression_data_repo_path": "/path/to/tardis/regression/data/repo",
    "branch": "master",
    "n": 3, # Last n commits
    # "commits": ["300e565e83112528faaa76e970057ffb1b13f743", "2a06fdfb60190bbd9b49ff572d78772607138660", "2d775dcd1c486227532f537fc41066e942000e56"],  # Uncomment for specific commits
    "conda_manager": "conda"
}

Method 1: Run pytest on tardis commits to generate false regression data commits

Case 1: Test latest N TARDIS commits

Important Note:

  1. Comment out commits from config

  2. Provide the value of n in config

  3. To forcely recreate new enviornment each time even when enviornment already exist, do force_recreate as True

  4. Either provide entire “tardis” module or selective path like “tardis/spectrum/tests/test_spectrum_solver.py” in test_path

  5. Provide path to default current enviornment in default_curr_env

  6. If you want to use default current enviornment only without creating new enviornment each time, do use_new_envs as False.

[4]:
processed_commits, regression_commits, original_head = run_tests(
        **config,
        force_recreate=True,
        test_path="tardis",
        default_curr_env="/provide/path/to/default/current/env",
        use_new_envs=True
    )
INFO:tardisbase.testing.regression_comparison.run_tests:Original HEAD of regression data repo: 08b5aa8c3233eef19eb08440b85eab2659e6759e
INFO:tardisbase.testing.regression_comparison.run_tests:Processing commit 1/3: 701bb18916886ecf2797b0dda4843750f69592da
INFO:tardisbase.testing.regression_comparison.run_tests:Creating conda environment: tardis-test-701bb189
INFO:tardisbase.testing.regression_comparison.run_tests:Checking if environment tardis-test-701bb189 exists...
INFO:tardisbase.testing.regression_comparison.run_tests:Environment tardis-test-701bb189 exists, removing it for recreation...
INFO:tardisbase.testing.regression_comparison.run_tests:Creating conda environment: conda create --name tardis-test-701bb189 --file /tmp/tmpps36t3m4.lock -y
INFO:tardisbase.testing.regression_comparison.run_tests:Installing TARDIS with all extras ['viz', 'tardisbase']: conda run -n tardis-test-701bb189 pip install -e /home/riddhigangbhoj/tardis-work/tardis[viz,tardisbase]
INFO:tardisbase.testing.regression_comparison.run_tests:
=== Phase 1: Running 'not continuum' tests for commit 701bb18916886ecf2797b0dda4843750f69592da ===
INFO:tardisbase.testing.regression_comparison.run_tests:Running not continuum tests: conda run -n tardis-test-701bb189 python -m pytest tardis --tardis-regression-data=/home/riddhigangbhoj/tardis-work/tardis-regression-data --generate-reference --disable-warnings -m not continuum
WARNING:tardisbase.testing.regression_comparison.run_tests:'not continuum' tests had failures for commit 701bb18916886ecf2797b0dda4843750f69592da
INFO:tardisbase.testing.regression_comparison.run_tests:Stdout: ============================= test session starts ==============================
platform linux -- Python 3.13.3, pytest-8.4.0, pluggy-1.6.0
rootdir: /home/riddhigangbhoj/tardis-work/tardis
configfile: pyproject.toml
plugins: doctestplus-1.4.0, anyio-4.9.0, cov-6.1.1, metadata-3.1.1, html-4.1.1
collected 1850 items / 2 deselected / 1848 selected

tardis/energy_input/tests/test_energy_source.py ..xxx                    [  0%]
tardis/energy_input/tests/test_gamma_ray_channel.py .............        [  0%]
tardis/energy_input/tests/test_gamma_ray_grid.py xx.                     [  1%]
tardis/energy_input/tests/test_gamma_ray_interactions.py xx....          [  1%]
tardis/energy_input/tests/test_gamma_ray_packet_source.py sssssssss      [  1%]
tardis/energy_input/tests/test_util.py .....xxxx.....                    [  2%]
tardis/grid/tests/test_grid.py .                                         [  2%]
tardis/gui/tests/test_gui.py s                                           [  2%]
tardis/io/configuration/tests/test_config_reader.py ...........          [  3%]
tardis/io/configuration/tests/test_config_validator.py .....             [  3%]
tardis/io/configuration/tests/test_configuration_namespace.py .........  [  4%]
tardis/io/logger/tests/test_logging.py ssssssssssssssssssssssssssss      [  5%]
tardis/io/model/readers/snec/tests/test_input_profiles.py .              [  5%]
tardis/io/model/readers/snec/tests/test_read_snec_output.py .            [  5%]
tardis/io/model/readers/snec/tests/test_xg_files.py ...                  [  5%]
tardis/io/model/readers/tests/test_arepo_parser.py ss                    [  6%]
tardis/io/model/readers/tests/test_artis_readers.py ....                 [  6%]
tardis/io/model/readers/tests/test_ascii_readers.py ...                  [  6%]
tardis/io/model/readers/tests/test_cmfgen_reader.py ..                   [  6%]
tardis/io/model/readers/tests/test_csvy_reader.py ....                   [  6%]
tardis/io/model/readers/tests/test_stella_reader.py ..                   [  6%]
tardis/io/tests/test_HDFWriter.py ................                       [  7%]
tardis/io/tests/test_atomic.py .....                                     [  8%]
tardis/io/tests/test_decay.py ..                                         [  8%]
tardis/io/tests/test_model_reader.py .......                             [  8%]
tardis/model/geometry/tests/test_radial1d.py ..                          [  8%]
tardis/model/tests/test_base.py ........................................ [ 10%]
............                                                             [ 11%]
tardis/model/tests/test_csvy_model.py .........                          [ 11%]
tardis/model/tests/test_density.py ..                                    [ 12%]
tardis/opacities/tests/test_opacity_solver.py .....WWWW                  [ 12%]
tardis/opacities/tests/test_opacity_state_numba.py .....                 [ 12%]
tardis/opacities/tests/test_tau_sobolev.py WW                            [ 12%]
tardis/plasma/equilibrium/tests/test_collisional_transitions.py ..       [ 12%]
tardis/plasma/equilibrium/tests/test_level_populations.py ...W           [ 13%]
tardis/plasma/equilibrium/tests/test_rate_matrix.py W                    [ 13%]
tardis/plasma/tests/test_complete_plasmas.py WWWWWWWWWWWWWWWWWWWWWWWWWWW [ 14%]
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW [ 18%]
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW [ 22%]
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW [ 26%]
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW [ 30%]
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW [ 34%]
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW [ 38%]
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW [ 41%]
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW [ 45%]
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW [ 49%]
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW [ 53%]
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW [ 57%]
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW                                [ 59%]
tardis/plasma/tests/test_hdf_plasma.py WWWWWWWWW..WWWWWWWWWWW.WWWWWWWWWW [ 61%]
WWWWWW                                                                   [ 61%]
tardis/plasma/tests/test_nlte_excitation.py WWW                          [ 62%]
tardis/plasma/tests/test_nlte_solver.py WW...X                           [ 62%]
tardis/plasma/tests/test_plasma_continuum.py W                           [ 62%]
tardis/plasma/tests/test_plasma_vboundary.py .............               [ 63%]
tardis/plasma/tests/test_tardis_model_density_config.py WWW              [ 63%]
tardis/simulation/tests/test_convergence.py .....                        [ 63%]
tardis/simulation/tests/test_simulation.py WWWWWWWWWW...                 [ 64%]
tardis/spectrum/formal_integral/tests/test_cuda_formal_integral.py FFF.. [ 64%]
.........................................F                               [ 66%]
tardis/spectrum/formal_integral/tests/test_formal_integral.py ..x....... [ 67%]
                                                                         [ 67%]
tardis/spectrum/formal_integral/tests/test_numba_formal_integral.py .... [ 67%]
....................                                                     [ 68%]
tardis/spectrum/tests/test_luminosity.py ....                            [ 68%]
tardis/spectrum/tests/test_spectrum.py ................................. [ 70%]
.........                                                                [ 71%]
tardis/spectrum/tests/test_spectrum_solver.py WWWW                       [ 71%]
tardis/tests/test_tardis_full.py ..WWW                                   [ 71%]
tardis/tests/test_tardis_full_formal_integral.py WWWWWWWWWWWWWWWW        [ 72%]
tardis/tests/test_util.py .............................................  [ 74%]
tardis/transport/montecarlo/tests/test_base.py x.....................    [ 76%]
tardis/transport/montecarlo/tests/test_interaction.py .......            [ 76%]
tardis/transport/montecarlo/tests/test_macro_atom.py ....                [ 76%]
tardis/transport/montecarlo/tests/test_montecarlo.py sssssssssssssssssss [ 77%]
sssssssssssssssssssssssssssssssssssss                                    [ 79%]
tardis/transport/montecarlo/tests/test_montecarlo_main_loop.py xWW       [ 79%]
tardis/transport/montecarlo/tests/test_nonhomologous.py ...              [ 80%]
tardis/transport/montecarlo/tests/test_numba_interface.py .....x.        [ 80%]
tardis/transport/montecarlo/tests/test_opacities.py ...............      [ 81%]
tardis/transport/montecarlo/tests/test_packet.py .................xXXXXX [ 82%]
XX.........                                                              [ 83%]
tardis/transport/montecarlo/tests/test_packet_source.py WWWWWWWW         [ 83%]
tardis/transport/montecarlo/tests/test_rpacket_last_interaction_tracker.py . [ 83%]
.....                                                                    [ 83%]
tardis/transport/montecarlo/tests/test_rpacket_tracker.py ....W.         [ 84%]
tardis/transport/montecarlo/tests/test_single_packet_loop.py xxx         [ 84%]
tardis/transport/montecarlo/tests/test_tracker_utils.py ..               [ 84%]
tardis/transport/montecarlo/tests/test_vpacket.py ..x.                   [ 84%]
tardis/transport/montecarlo/tests/test_weighted_packet_source.py WWWW    [ 84%]
tardis/transport/montecarlo/tests/test_weighted_packet_source_integration.py . [ 84%]
                                                                         [ 84%]
tardis/transport/tests/test_doppler_factor.py ..................         [ 85%]
tardis/visualization/tests/test_plot_util.py ................WW          [ 86%]
tardis/visualization/tools/tests/test_convergence_plot.py .............. [ 87%]
......                                                                   [ 87%]
tardis/visualization/tools/tests/test_lineid_plotter.py sssxx            [ 88%]
tardis/visualization/tools/tests/test_liv_plot.py WWWWWWWWWWWWWWWWWWWWWW [ 89%]
WWWWWWWWWWWWWssssssssWWWWWWWW                                            [ 91%]
tardis/visualization/tools/tests/test_rpacket_plot.py .................. [ 91%]
...............                                                          [ 92%]
tardis/visualization/tools/tests/test_sdec_plot.py WWWWWWWWWWWWWWWWWWWWW [ 93%]
WWWWWWWWWWWWWWssssssssssssssss.                                          [ 95%]
tardis/visualization/widgets/tests/test_custom_abundance.py ........ss.. [ 96%]
....                                                                     [ 96%]
tardis/visualization/widgets/tests/test_line_info.py ................... [ 97%]
......................                                                   [ 98%]
tardis/visualization/widgets/tests/test_shell_info.py .................. [ 99%]
......                                                                   [100%]

=================================== FAILURES ===================================
__________ test_intensity_black_body_cuda[100000000000000.0-10000.0] ___________

nu = 100000000000000.0, temperature = 10000.0

    @pytest.mark.skipif(
        not GPUs_available, reason="No GPU is available to test CUDA function"
    )
    @pytest.mark.parametrize(
        ["nu", "temperature"],
        [
            (1e14, 1e4),
            (0, 1),
            (1, 1),
        ],
    )
    def test_intensity_black_body_cuda(nu, temperature):
        """
        Initializes the test of the cuda version
        against the numba implementation of the
        intensity_black_body to 15 decimals. This
        is done as both results have 15 digits of precision.
        """
        actual = np.zeros(3)
>       black_body_caller[1, 3](nu, temperature, actual)

tardis/spectrum/formal_integral/tests/test_cuda_formal_integral.py:48:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
../../.conda/envs/tardis-test-701bb189/lib/python3.13/site-packages/numba/cuda/dispatcher.py:539: in __call__
    return self.dispatcher.call(args, self.griddim, self.blockdim,
../../.conda/envs/tardis-test-701bb189/lib/python3.13/site-packages/numba/cuda/dispatcher.py:681: in call
    kernel = _dispatcher.Dispatcher._cuda_call(self, *args)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
../../.conda/envs/tardis-test-701bb189/lib/python3.13/site-packages/numba/cuda/dispatcher.py:689: in _compile_for_args
    return self.compile(tuple(argtypes))
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
../../.conda/envs/tardis-test-701bb189/lib/python3.13/site-packages/numba/cuda/dispatcher.py:932: in compile
    kernel = _Kernel(self.py_func, argtypes, **self.targetoptions)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
../../.conda/envs/tardis-test-701bb189/lib/python3.13/site-packages/numba/core/compiler_lock.py:35: in _acquire_compile_lock
    return func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^
../../.conda/envs/tardis-test-701bb189/lib/python3.13/site-packages/numba/cuda/dispatcher.py:83: in __init__
    cres = compile_cuda(self.py_func, types.void, self.argtypes,
../../.conda/envs/tardis-test-701bb189/lib/python3.13/site-packages/numba/core/compiler_lock.py:35: in _acquire_compile_lock
    return func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^
../../.conda/envs/tardis-test-701bb189/lib/python3.13/site-packages/numba/cuda/compiler.py:196: in compile_cuda
    cres = compiler.compile_extra(typingctx=typingctx,
../../.conda/envs/tardis-test-701bb189/lib/python3.13/site-packages/numba/core/compiler.py:739: in compile_extra
    return pipeline.compile_extra(func)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
../../.conda/envs/tardis-test-701bb189/lib/python3.13/site-packages/numba/core/compiler.py:439: in compile_extra
    return self._compile_bytecode()
           ^^^^^^^^^^^^^^^^^^^^^^^^
../../.conda/envs/tardis-test-701bb189/lib/python3.13/site-packages/numba/core/compiler.py:505: in _compile_bytecode
    return self._compile_core()
           ^^^^^^^^^^^^^^^^^^^^
../../.conda/envs/tardis-test-701bb189/lib/python3.13/site-packages/numba/core/compiler.py:484: in _compile_core
    raise e
../../.conda/envs/tardis-test-701bb189/lib/python3.13/site-packages/numba/core/compiler.py:473: in _compile_core
    pm.run(self.state)
../../.conda/envs/tardis-test-701bb189/lib/python3.13/site-packages/numba/core/compiler_machinery.py:367: in run
    raise patched_exception
../../.conda/envs/tardis-test-701bb189/lib/python3.13/site-packages/numba/core/compiler_machinery.py:356: in run
    self._runPass(idx, pass_inst, state)
../../.conda/envs/tardis-test-701bb189/lib/python3.13/site-packages/numba/core/compiler_lock.py:35: in _acquire_compile_lock
    return func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^
../../.conda/envs/tardis-test-701bb189/lib/python3.13/site-packages/numba/core/compiler_machinery.py:311: in _runPass
    mutated |= check(pss.run_pass, internal_state)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
../../.conda/envs/tardis-test-701bb189/lib/python3.13/site-packages/numba/core/compiler_machinery.py:272: in check
    mangled = func(compiler_state)
              ^^^^^^^^^^^^^^^^^^^^
../../.conda/envs/tardis-test-701bb189/lib/python3.13/site-packages/numba/core/typed_passes.py:112: in run_pass
    typemap, return_type, calltypes, errs = type_inference_stage(
../../.conda/envs/tardis-test-701bb189/lib/python3.13/site-packages/numba/core/typed_passes.py:93: in type_inference_stage
    errs = infer.propagate(raise_errors=raise_errors)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <numba.core.typeinfer.TypeInferer object at 0x75f6a8664ef0>
raise_errors = True

    def propagate(self, raise_errors=True):
        newtoken = self.get_state_token()
        oldtoken = None
        # Since the number of types are finite, the typesets will eventually
        # stop growing.

        while newtoken != oldtoken:
            self.debug.propagate_started()
            oldtoken = newtoken
            # Errors can appear when the type set is incomplete; only
            # raise them when there is no progress anymore.
            errors = self.constraints.propagate(self)
            newtoken = self.get_state_token()
            self.debug.propagate_finished()
        if errors:
            if raise_errors:
                force_lit_args = [e for e in errors
                                  if isinstance(e, ForceLiteralArg)]
                if not force_lit_args:
>                   raise errors[0]
E                   numba.core.errors.TypingError: Failed in cuda mode pipeline (step: nopython frontend)
E                   Failed in cuda mode pipeline (step: nopython frontend)
E                   Use of unsupported NumPy function 'numpy.exp' or unsupported use of the function.
E                   
E                   File "tardis/spectrum/formal_integral/base.py", line 104:
E                   def intensity_black_body(nu, temperature):
E                       <source elided>
E                       coefficient = 2 * H_CGS * C_INV * C_INV
E                       return coefficient * nu * nu * nu / (np.exp(H_CGS * nu * beta_rad) - 1)
E                       ^
E                   
E                   During: typing of get attribute at /home/riddhigangbhoj/tardis-work/tardis/tardis/spectrum/formal_integral/base.py (104)
E                   
E                   File "tardis/spectrum/formal_integral/base.py", line 104:
E                   def intensity_black_body(nu, temperature):
E                       <source elided>
E                       coefficient = 2 * H_CGS * C_INV * C_INV
E                       return coefficient * nu * nu * nu / (np.exp(H_CGS * nu * beta_rad) - 1)
E                       ^
E                   
E                   During: Pass nopython_type_inference
E                   During: resolving callee type: type(CUDADispatcher(<function intensity_black_body at 0x75f6e1b9e160>))
E                   During: typing of call at /home/riddhigangbhoj/tardis-work/tardis/tardis/spectrum/formal_integral/tests/test_cuda_formal_integral.py (22)
E                   
E                   
E                   File "tardis/spectrum/formal_integral/tests/test_cuda_formal_integral.py", line 22:
E                   def black_body_caller(nu, temperature, actual):
E                       <source elided>
E                       x = cuda.grid(1)
E                       actual[x] = formal_integral_cuda.intensity_black_body_cuda(nu, temperature)
E                       ^
E                   
E                   During: Pass nopython_type_inference

../../.conda/envs/tardis-test-701bb189/lib/python3.13/site-packages/numba/core/typeinfer.py:1074: TypingError
_____________________ test_intensity_black_body_cuda[0-1] ______________________

nu = 0, temperature = 1

    @pytest.mark.skipif(
        not GPUs_available, reason="No GPU is available to test CUDA function"
    )
    @pytest.mark.parametrize(
        ["nu", "temperature"],
        [
            (1e14, 1e4),
            (0, 1),
            (1, 1),
        ],
    )
    def test_intensity_black_body_cuda(nu, temperature):
        """
        Initializes the test of the cuda version
        against the numba implementation of the
        intensity_black_body to 15 decimals. This
        is done as both results have 15 digits of precision.
        """
        actual = np.zeros(3)
>       black_body_caller[1, 3](nu, temperature, actual)

tardis/spectrum/formal_integral/tests/test_cuda_formal_integral.py:48:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
../../.conda/envs/tardis-test-701bb189/lib/python3.13/site-packages/numba/cuda/dispatcher.py:539: in __call__
    return self.dispatcher.call(args, self.griddim, self.blockdim,
../../.conda/envs/tardis-test-701bb189/lib/python3.13/site-packages/numba/cuda/dispatcher.py:681: in call
    kernel = _dispatcher.Dispatcher._cuda_call(self, *args)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
../../.conda/envs/tardis-test-701bb189/lib/python3.13/site-packages/numba/cuda/dispatcher.py:689: in _compile_for_args
    return self.compile(tuple(argtypes))
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
../../.conda/envs/tardis-test-701bb189/lib/python3.13/site-packages/numba/cuda/dispatcher.py:932: in compile
    kernel = _Kernel(self.py_func, argtypes, **self.targetoptions)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
../../.conda/envs/tardis-test-701bb189/lib/python3.13/site-packages/numba/core/compiler_lock.py:35: in _acquire_compile_lock
    return func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^
../../.conda/envs/tardis-test-701bb189/lib/python3.13/site-packages/numba/cuda/dispatcher.py:83: in __init__
    cres = compile_cuda(self.py_func, types.void, self.argtypes,
../../.conda/envs/tardis-test-701bb189/lib/python3.13/site-packages/numba/core/compiler_lock.py:35: in _acquire_compile_lock
    return func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^
../../.conda/envs/tardis-test-701bb189/lib/python3.13/site-packages/numba/cuda/compiler.py:196: in compile_cuda
    cres = compiler.compile_extra(typingctx=typingctx,
../../.conda/envs/tardis-test-701bb189/lib/python3.13/site-packages/numba/core/compiler.py:739: in compile_extra
    return pipeline.compile_extra(func)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
../../.conda/envs/tardis-test-701bb189/lib/python3.13/site-packages/numba/core/compiler.py:439: in compile_extra
    return self._compile_bytecode()
           ^^^^^^^^^^^^^^^^^^^^^^^^
../../.conda/envs/tardis-test-701bb189/lib/python3.13/site-packages/numba/core/compiler.py:505: in _compile_bytecode
    return self._compile_core()
           ^^^^^^^^^^^^^^^^^^^^
../../.conda/envs/tardis-test-701bb189/lib/python3.13/site-packages/numba/core/compiler.py:484: in _compile_core
    raise e
../../.conda/envs/tardis-test-701bb189/lib/python3.13/site-packages/numba/core/compiler.py:473: in _compile_core
    pm.run(self.state)
../../.conda/envs/tardis-test-701bb189/lib/python3.13/site-packages/numba/core/compiler_machinery.py:367: in run
    raise patched_exception
../../.conda/envs/tardis-test-701bb189/lib/python3.13/site-packages/numba/core/compiler_machinery.py:356: in run
    self._runPass(idx, pass_inst, state)
../../.conda/envs/tardis-test-701bb189/lib/python3.13/site-packages/numba/core/compiler_lock.py:35: in _acquire_compile_lock
    return func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^
../../.conda/envs/tardis-test-701bb189/lib/python3.13/site-packages/numba/core/compiler_machinery.py:311: in _runPass
    mutated |= check(pss.run_pass, internal_state)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
../../.conda/envs/tardis-test-701bb189/lib/python3.13/site-packages/numba/core/compiler_machinery.py:272: in check
    mangled = func(compiler_state)
              ^^^^^^^^^^^^^^^^^^^^
../../.conda/envs/tardis-test-701bb189/lib/python3.13/site-packages/numba/core/typed_passes.py:112: in run_pass
    typemap, return_type, calltypes, errs = type_inference_stage(
../../.conda/envs/tardis-test-701bb189/lib/python3.13/site-packages/numba/core/typed_passes.py:93: in type_inference_stage
    errs = infer.propagate(raise_errors=raise_errors)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <numba.core.typeinfer.TypeInferer object at 0x75f6a4ab0940>
raise_errors = True

    def propagate(self, raise_errors=True):
        newtoken = self.get_state_token()
        oldtoken = None
        # Since the number of types are finite, the typesets will eventually
        # stop growing.

        while newtoken != oldtoken:
            self.debug.propagate_started()
            oldtoken = newtoken
            # Errors can appear when the type set is incomplete; only
            # raise them when there is no progress anymore.
            errors = self.constraints.propagate(self)
            newtoken = self.get_state_token()
            self.debug.propagate_finished()
        if errors:
            if raise_errors:
                force_lit_args = [e for e in errors
                                  if isinstance(e, ForceLiteralArg)]
                if not force_lit_args:
>                   raise errors[0]
E                   numba.core.errors.TypingError: Failed in cuda mode pipeline (step: nopython frontend)
E                   Failed in cuda mode pipeline (step: nopython frontend)
E                   Use of unsupported NumPy function 'numpy.exp' or unsupported use of the function.
E                   
E                   File "tardis/spectrum/formal_integral/base.py", line 104:
E                   def intensity_black_body(nu, temperature):
E                       <source elided>
E                       coefficient = 2 * H_CGS * C_INV * C_INV
E                       return coefficient * nu * nu * nu / (np.exp(H_CGS * nu * beta_rad) - 1)
E                       ^
E                   
E                   During: typing of get attribute at /home/riddhigangbhoj/tardis-work/tardis/tardis/spectrum/formal_integral/base.py (104)
E                   
E                   File "tardis/spectrum/formal_integral/base.py", line 104:
E                   def intensity_black_body(nu, temperature):
E                       <source elided>
E                       coefficient = 2 * H_CGS * C_INV * C_INV
E                       return coefficient * nu * nu * nu / (np.exp(H_CGS * nu * beta_rad) - 1)
E                       ^
E                   
E                   During: Pass nopython_type_inference
E                   During: resolving callee type: type(CUDADispatcher(<function intensity_black_body at 0x75f6e1b9e160>))
E                   During: typing of call at /home/riddhigangbhoj/tardis-work/tardis/tardis/spectrum/formal_integral/tests/test_cuda_formal_integral.py (22)
E                   
E                   
E                   File "tardis/spectrum/formal_integral/tests/test_cuda_formal_integral.py", line 22:
E                   def black_body_caller(nu, temperature, actual):
E                       <source elided>
E                       x = cuda.grid(1)
E                       actual[x] = formal_integral_cuda.intensity_black_body_cuda(nu, temperature)
E                       ^
E                   
E                   During: Pass nopython_type_inference

../../.conda/envs/tardis-test-701bb189/lib/python3.13/site-packages/numba/core/typeinfer.py:1074: TypingError
_____________________ test_intensity_black_body_cuda[1-1] ______________________

nu = 1, temperature = 1

    @pytest.mark.skipif(
        not GPUs_available, reason="No GPU is available to test CUDA function"
    )
    @pytest.mark.parametrize(
        ["nu", "temperature"],
        [
            (1e14, 1e4),
            (0, 1),
            (1, 1),
        ],
    )
    def test_intensity_black_body_cuda(nu, temperature):
        """
        Initializes the test of the cuda version
        against the numba implementation of the
        intensity_black_body to 15 decimals. This
        is done as both results have 15 digits of precision.
        """
        actual = np.zeros(3)
>       black_body_caller[1, 3](nu, temperature, actual)

tardis/spectrum/formal_integral/tests/test_cuda_formal_integral.py:48:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
../../.conda/envs/tardis-test-701bb189/lib/python3.13/site-packages/numba/cuda/dispatcher.py:539: in __call__
    return self.dispatcher.call(args, self.griddim, self.blockdim,
../../.conda/envs/tardis-test-701bb189/lib/python3.13/site-packages/numba/cuda/dispatcher.py:681: in call
    kernel = _dispatcher.Dispatcher._cuda_call(self, *args)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
../../.conda/envs/tardis-test-701bb189/lib/python3.13/site-packages/numba/cuda/dispatcher.py:689: in _compile_for_args
    return self.compile(tuple(argtypes))
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
../../.conda/envs/tardis-test-701bb189/lib/python3.13/site-packages/numba/cuda/dispatcher.py:932: in compile
    kernel = _Kernel(self.py_func, argtypes, **self.targetoptions)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
../../.conda/envs/tardis-test-701bb189/lib/python3.13/site-packages/numba/core/compiler_lock.py:35: in _acquire_compile_lock
    return func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^
../../.conda/envs/tardis-test-701bb189/lib/python3.13/site-packages/numba/cuda/dispatcher.py:83: in __init__
    cres = compile_cuda(self.py_func, types.void, self.argtypes,
../../.conda/envs/tardis-test-701bb189/lib/python3.13/site-packages/numba/core/compiler_lock.py:35: in _acquire_compile_lock
    return func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^
../../.conda/envs/tardis-test-701bb189/lib/python3.13/site-packages/numba/cuda/compiler.py:196: in compile_cuda
    cres = compiler.compile_extra(typingctx=typingctx,
../../.conda/envs/tardis-test-701bb189/lib/python3.13/site-packages/numba/core/compiler.py:739: in compile_extra
    return pipeline.compile_extra(func)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
../../.conda/envs/tardis-test-701bb189/lib/python3.13/site-packages/numba/core/compiler.py:439: in compile_extra
    return self._compile_bytecode()
           ^^^^^^^^^^^^^^^^^^^^^^^^
../../.conda/envs/tardis-test-701bb189/lib/python3.13/site-packages/numba/core/compiler.py:505: in _compile_bytecode
    return self._compile_core()
           ^^^^^^^^^^^^^^^^^^^^
../../.conda/envs/tardis-test-701bb189/lib/python3.13/site-packages/numba/core/compiler.py:484: in _compile_core
    raise e
../../.conda/envs/tardis-test-701bb189/lib/python3.13/site-packages/numba/core/compiler.py:473: in _compile_core
    pm.run(self.state)
../../.conda/envs/tardis-test-701bb189/lib/python3.13/site-packages/numba/core/compiler_machinery.py:367: in run
    raise patched_exception
../../.conda/envs/tardis-test-701bb189/lib/python3.13/site-packages/numba/core/compiler_machinery.py:356: in run
    self._runPass(idx, pass_inst, state)
../../.conda/envs/tardis-test-701bb189/lib/python3.13/site-packages/numba/core/compiler_lock.py:35: in _acquire_compile_lock
    return func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^
../../.conda/envs/tardis-test-701bb189/lib/python3.13/site-packages/numba/core/compiler_machinery.py:311: in _runPass
    mutated |= check(pss.run_pass, internal_state)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
../../.conda/envs/tardis-test-701bb189/lib/python3.13/site-packages/numba/core/compiler_machinery.py:272: in check
    mangled = func(compiler_state)
              ^^^^^^^^^^^^^^^^^^^^
../../.conda/envs/tardis-test-701bb189/lib/python3.13/site-packages/numba/core/typed_passes.py:112: in run_pass
    typemap, return_type, calltypes, errs = type_inference_stage(
../../.conda/envs/tardis-test-701bb189/lib/python3.13/site-packages/numba/core/typed_passes.py:93: in type_inference_stage
    errs = infer.propagate(raise_errors=raise_errors)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <numba.core.typeinfer.TypeInferer object at 0x75f6a8664bb0>
raise_errors = True

    def propagate(self, raise_errors=True):
        newtoken = self.get_state_token()
        oldtoken = None
        # Since the number of types are finite, the typesets will eventually
        # stop growing.

        while newtoken != oldtoken:
            self.debug.propagate_started()
            oldtoken = newtoken
            # Errors can appear when the type set is incomplete; only
            # raise them when there is no progress anymore.
            errors = self.constraints.propagate(self)
            newtoken = self.get_state_token()
            self.debug.propagate_finished()
        if errors:
            if raise_errors:
                force_lit_args = [e for e in errors
                                  if isinstance(e, ForceLiteralArg)]
                if not force_lit_args:
>                   raise errors[0]
E                   numba.core.errors.TypingError: Failed in cuda mode pipeline (step: nopython frontend)
E                   Failed in cuda mode pipeline (step: nopython frontend)
E                   Use of unsupported NumPy function 'numpy.exp' or unsupported use of the function.
E                   
E                   File "tardis/spectrum/formal_integral/base.py", line 104:
E                   def intensity_black_body(nu, temperature):
E                       <source elided>
E                       coefficient = 2 * H_CGS * C_INV * C_INV
E                       return coefficient * nu * nu * nu / (np.exp(H_CGS * nu * beta_rad) - 1)
E                       ^
E                   
E                   During: typing of get attribute at /home/riddhigangbhoj/tardis-work/tardis/tardis/spectrum/formal_integral/base.py (104)
E                   
E                   File "tardis/spectrum/formal_integral/base.py", line 104:
E                   def intensity_black_body(nu, temperature):
E                       <source elided>
E                       coefficient = 2 * H_CGS * C_INV * C_INV
E                       return coefficient * nu * nu * nu / (np.exp(H_CGS * nu * beta_rad) - 1)
E                       ^
E                   
E                   During: Pass nopython_type_inference
E                   During: resolving callee type: type(CUDADispatcher(<function intensity_black_body at 0x75f6e1b9e160>))
E                   During: typing of call at /home/riddhigangbhoj/tardis-work/tardis/tardis/spectrum/formal_integral/tests/test_cuda_formal_integral.py (22)
E                   
E                   
E                   File "tardis/spectrum/formal_integral/tests/test_cuda_formal_integral.py", line 22:
E                   def black_body_caller(nu, temperature, actual):
E                       <source elided>
E                       x = cuda.grid(1)
E                       actual[x] = formal_integral_cuda.intensity_black_body_cuda(nu, temperature)
E                       ^
E                   
E                   During: Pass nopython_type_inference

../../.conda/envs/tardis-test-701bb189/lib/python3.13/site-packages/numba/core/typeinfer.py:1074: TypingError
_____________________ test_full_formal_integral[200000-5] ______________________

no_of_packets = 200000, iterations = 5
config_verysimple = {'tardis_config_version': 'v1.0', 'supernova': {'luminosity_requested': <Quantity 1.07688e+36 W>, 'time_explosion': <Q...: {'points': 1000, 'interpolate_shells': 0, 'compute': 'CPU'}}, 'config_dirname': 'tardis/io/configuration/tests/data'}
simulation_verysimple = <tardis.simulation.base.Simulation object at 0x75f6b5a2af90>

    @pytest.mark.skipif(
        not GPUs_available, reason="No GPU is available to test CUDA function"
    )
    @pytest.mark.parametrize(["no_of_packets", "iterations"], [(200000, 5)])
    def test_full_formal_integral(
        no_of_packets, iterations, config_verysimple, simulation_verysimple
    ):
        """
        This function initializes both the cuda and numba formal_integrator,
        and the runs them and compares results to the 15th decimal place.
        This is done as both results have 15 digits of precision.
        """
        sim = simulation_verysimple

        formal_integrator_numba = FormalIntegrator(
            sim.simulation_state, sim.plasma, sim.transport
        )

        formal_integrator_cuda = FormalIntegrator(
            sim.simulation_state, sim.plasma, sim.transport
        )

        # The function calculate_spectrum sets this property, but in order to test the CUDA.
        # version it is done manually, as well as to speed up the test.
        formal_integrator_numba.interpolate_shells = max(
            2 * formal_integrator_numba.simulation_state.no_of_shells, 80
        )

        formal_integrator_cuda.interpolate_shells = max(
            2 * formal_integrator_cuda.simulation_state.no_of_shells, 80
        )

>       res_numba = make_source_function(
            formal_integrator_numba.simulation_state,
            formal_integrator_numba.plasma,
            formal_integrator_numba.transport,
            formal_integrator_numba.interpolate_shells
        )

tardis/spectrum/formal_integral/tests/test_cuda_formal_integral.py:329:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

simulation_state = <tardis.model.base.SimulationState object at 0x75f6b9f75370>
opacity_state = <tardis.plasma.base.BasePlasma object at 0x75f6b5a28d70>
transport = <tardis.transport.montecarlo.base.MonteCarloTransportSolver object at 0x75f6b5a2a510>
plasma = 80, interpolate_shells = 0

    def make_source_function(simulation_state, opacity_state, transport, plasma, interpolate_shells=0):
        """
        Calculates the source function using the line absorption rate estimator `Edotlu_estimator`

        Formally it calculates the expression ( 1 - exp(-tau_ul) ) S_ul but this product is what we need later,
        so there is no need to factor out the source function explicitly.
        Parameters
        ----------
        simulation_state : tardis.model.SimulationState
        opacity_state : tardis.opacity.OpacityStateNumba
        transport : tardis.transport.montecarlo.MonteCarloTransportSolver
        plasma : tardis.plasma.BasePlasma
        interpolate_shells : int
            Number of shells to interpolate to. If set to 0, no interpolation is performed.

        Returns
        -------
        Numpy array containing ( 1 - exp(-tau_ul) ) S_ul ordered by wavelength of the transition u -> l
        """

        montecarlo_transport_state = transport.transport_state
>       atomic_data = plasma.atomic_data
                      ^^^^^^^^^^^^^^^^^^
E       AttributeError: 'int' object has no attribute 'atomic_data'

tardis/spectrum/formal_integral/base.py:128: AttributeError
=========================== short test summary info ============================
FAILED tardis/spectrum/formal_integral/tests/test_cuda_formal_integral.py::test_intensity_black_body_cuda[100000000000000.0-10000.0] - numba.core.errors.TypingError: Failed in cuda mode pipeline (step: nopython...
FAILED tardis/spectrum/formal_integral/tests/test_cuda_formal_integral.py::test_intensity_black_body_cuda[0-1] - numba.core.errors.TypingError: Failed in cuda mode pipeline (step: nopython...
FAILED tardis/spectrum/formal_integral/tests/test_cuda_formal_integral.py::test_intensity_black_body_cuda[1-1] - numba.core.errors.TypingError: Failed in cuda mode pipeline (step: nopython...
FAILED tardis/spectrum/formal_integral/tests/test_cuda_formal_integral.py::test_full_formal_integral[200000-5] - AttributeError: 'int' object has no attribute 'atomic_data'
= 4 failed, 648 passed, 125 skipped, 2 deselected, 22 xfailed, 8 xpassed, 344 warnings, 1041 regression data written in 794.77s (0:13:14) =


ERROR:tardisbase.testing.regression_comparison.run_tests:Stderr:
Packets:   ████████████████████████████████████████████████████████████████████

Iterations:

ERROR conda.cli.main_run:execute(127): `conda run python -m pytest tardis --tardis-regression-data=/home/riddhigangbhoj/tardis-work/tardis-regression-data --generate-reference --disable-warnings -m not continuum` failed. (See above for error)

INFO:tardisbase.testing.regression_comparison.run_tests:
=== Phase 2: Running 'continuum' tests for commit 701bb18916886ecf2797b0dda4843750f69592da ===
INFO:tardisbase.testing.regression_comparison.run_tests:Running continuum tests: conda run -n tardis-test-701bb189 python -m pytest tardis --tardis-regression-data=/home/riddhigangbhoj/tardis-work/tardis-regression-data --generate-reference --disable-warnings -m continuum
WARNING:tardisbase.testing.regression_comparison.run_tests:Tests completed with some failures for commit 701bb18916886ecf2797b0dda4843750f69592da, but regression data was generated
INFO:tardisbase.testing.regression_comparison.run_tests:Processing commit 2/3: ce43cec0fa5d9255108c90c84659c71d34fb1c26
INFO:tardisbase.testing.regression_comparison.run_tests:Creating conda environment: tardis-test-ce43cec0
INFO:tardisbase.testing.regression_comparison.run_tests:Checking if environment tardis-test-ce43cec0 exists...
INFO:tardisbase.testing.regression_comparison.run_tests:Environment tardis-test-ce43cec0 exists, removing it for recreation...
INFO:tardisbase.testing.regression_comparison.run_tests:Creating conda environment: conda create --name tardis-test-ce43cec0 --file /tmp/tmphpi2ltb8.lock -y
INFO:tardisbase.testing.regression_comparison.run_tests:Installing TARDIS with all extras ['viz', 'tardisbase']: conda run -n tardis-test-ce43cec0 pip install -e /home/riddhigangbhoj/tardis-work/tardis[viz,tardisbase]
INFO:tardisbase.testing.regression_comparison.run_tests:
=== Phase 1: Running 'not continuum' tests for commit ce43cec0fa5d9255108c90c84659c71d34fb1c26 ===
INFO:tardisbase.testing.regression_comparison.run_tests:Running not continuum tests: conda run -n tardis-test-ce43cec0 python -m pytest tardis --tardis-regression-data=/home/riddhigangbhoj/tardis-work/tardis-regression-data --generate-reference --disable-warnings -m not continuum
WARNING:tardisbase.testing.regression_comparison.run_tests:'not continuum' tests had failures for commit ce43cec0fa5d9255108c90c84659c71d34fb1c26
INFO:tardisbase.testing.regression_comparison.run_tests:Stdout: ============================= test session starts ==============================
platform linux -- Python 3.13.3, pytest-8.4.0, pluggy-1.6.0
rootdir: /home/riddhigangbhoj/tardis-work/tardis
configfile: pyproject.toml
plugins: cov-6.1.1, html-4.1.1, metadata-3.1.1, anyio-4.9.0, doctestplus-1.4.0
collected 1850 items / 2 deselected / 1848 selected

tardis/energy_input/tests/test_energy_source.py ..xxx                    [  0%]
tardis/energy_input/tests/test_gamma_ray_channel.py .............        [  0%]
tardis/energy_input/tests/test_gamma_ray_grid.py xx.                     [  1%]
tardis/energy_input/tests/test_gamma_ray_interactions.py xx....          [  1%]
tardis/energy_input/tests/test_gamma_ray_packet_source.py sssssssss      [  1%]
tardis/energy_input/tests/test_util.py .....xxxx.....                    [  2%]
tardis/grid/tests/test_grid.py .                                         [  2%]
tardis/gui/tests/test_gui.py s                                           [  2%]
tardis/io/configuration/tests/test_config_reader.py ...........          [  3%]
tardis/io/configuration/tests/test_config_validator.py .....             [  3%]
tardis/io/configuration/tests/test_configuration_namespace.py .........  [  4%]
tardis/io/logger/tests/test_logging.py ssssssssssssssssssssssssssss      [  5%]
tardis/io/model/readers/snec/tests/test_input_profiles.py .              [  5%]
tardis/io/model/readers/snec/tests/test_read_snec_output.py .            [  5%]
tardis/io/model/readers/snec/tests/test_xg_files.py ...                  [  5%]
tardis/io/model/readers/tests/test_arepo_parser.py ss                    [  6%]
tardis/io/model/readers/tests/test_artis_readers.py ....                 [  6%]
tardis/io/model/readers/tests/test_ascii_readers.py ...                  [  6%]
tardis/io/model/readers/tests/test_cmfgen_reader.py ..                   [  6%]
tardis/io/model/readers/tests/test_csvy_reader.py ....                   [  6%]
tardis/io/model/readers/tests/test_stella_reader.py ..                   [  6%]
tardis/io/tests/test_HDFWriter.py ................                       [  7%]
tardis/io/tests/test_atomic.py .....                                     [  8%]
tardis/io/tests/test_decay.py ..                                         [  8%]
tardis/io/tests/test_model_reader.py .......                             [  8%]
tardis/model/geometry/tests/test_radial1d.py ..                          [  8%]
tardis/model/tests/test_base.py ........................................ [ 10%]
............                                                             [ 11%]
tardis/model/tests/test_csvy_model.py .........                          [ 11%]
tardis/model/tests/test_density.py ..                                    [ 12%]
tardis/opacities/tests/test_opacity_solver.py .....WWWW                  [ 12%]
tardis/opacities/tests/test_opacity_state_numba.py .....                 [ 12%]
tardis/opacities/tests/test_tau_sobolev.py WW                            [ 12%]
tardis/plasma/equilibrium/tests/test_collisional_transitions.py ..       [ 12%]
tardis/plasma/equilibrium/tests/test_level_populations.py ...W           [ 13%]
tardis/plasma/equilibrium/tests/test_rate_matrix.py W                    [ 13%]
tardis/plasma/tests/test_complete_plasmas.py WWWWWWWWWWWWWWWWWWWWWWWWWWW [ 14%]
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW [ 18%]
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW [ 22%]
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW [ 26%]
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW [ 30%]
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW [ 34%]
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW [ 38%]
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW [ 41%]
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW [ 45%]
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW [ 49%]
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW [ 53%]
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW [ 57%]
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW                                [ 59%]
tardis/plasma/tests/test_hdf_plasma.py WWWWWWWWW..WWWWWWWWWWW.WWWWWWWWWW [ 61%]
WWWWWW                                                                   [ 61%]
tardis/plasma/tests/test_nlte_excitation.py WWW                          [ 62%]
tardis/plasma/tests/test_nlte_solver.py WW...X                           [ 62%]
tardis/plasma/tests/test_plasma_continuum.py W                           [ 62%]
tardis/plasma/tests/test_plasma_vboundary.py .............               [ 63%]
tardis/plasma/tests/test_tardis_model_density_config.py WWW              [ 63%]
tardis/simulation/tests/test_convergence.py .....                        [ 63%]
tardis/simulation/tests/test_simulation.py WWWWWWWWWW...                 [ 64%]
tardis/spectrum/formal_integral/tests/test_cuda_formal_integral.py FFF.. [ 64%]
.........................................F                               [ 66%]
tardis/spectrum/formal_integral/tests/test_formal_integral.py ..x....... [ 67%]
                                                                         [ 67%]
tardis/spectrum/formal_integral/tests/test_numba_formal_integral.py .... [ 67%]
....................                                                     [ 68%]
tardis/spectrum/tests/test_luminosity.py ....                            [ 68%]
tardis/spectrum/tests/test_spectrum.py ................................. [ 70%]
.........                                                                [ 71%]
tardis/spectrum/tests/test_spectrum_solver.py WWWW                       [ 71%]
tardis/tests/test_tardis_full.py ..WWW                                   [ 71%]
tardis/tests/test_tardis_full_formal_integral.py WWWWWWWWWWWWWWWW        [ 72%]
tardis/tests/test_util.py .............................................  [ 74%]
tardis/transport/montecarlo/tests/test_base.py x.....................    [ 76%]
tardis/transport/montecarlo/tests/test_interaction.py .......            [ 76%]
tardis/transport/montecarlo/tests/test_macro_atom.py ....                [ 76%]
tardis/transport/montecarlo/tests/test_montecarlo.py sssssssssssssssssss [ 77%]
sssssssssssssssssssssssssssssssssssss                                    [ 79%]
tardis/transport/montecarlo/tests/test_montecarlo_main_loop.py xWW       [ 79%]
tardis/transport/montecarlo/tests/test_nonhomologous.py ...              [ 80%]
tardis/transport/montecarlo/tests/test_numba_interface.py .....x.        [ 80%]
tardis/transport/montecarlo/tests/test_opacities.py ...............      [ 81%]
tardis/transport/montecarlo/tests/test_packet.py .................xXXXXX [ 82%]
XX.........                                                              [ 83%]
tardis/transport/montecarlo/tests/test_packet_source.py WWWWWWWW         [ 83%]
tardis/transport/montecarlo/tests/test_rpacket_last_interaction_tracker.py . [ 83%]
.....                                                                    [ 83%]
tardis/transport/montecarlo/tests/test_rpacket_tracker.py ....W.         [ 84%]
tardis/transport/montecarlo/tests/test_single_packet_loop.py xxx         [ 84%]
tardis/transport/montecarlo/tests/test_tracker_utils.py ..               [ 84%]
tardis/transport/montecarlo/tests/test_vpacket.py ..x.                   [ 84%]
tardis/transport/montecarlo/tests/test_weighted_packet_source.py WWWW    [ 84%]
tardis/transport/montecarlo/tests/test_weighted_packet_source_integration.py . [ 84%]
                                                                         [ 84%]
tardis/transport/tests/test_doppler_factor.py ..................         [ 85%]
tardis/visualization/tests/test_plot_util.py ................WW          [ 86%]
tardis/visualization/tools/tests/test_convergence_plot.py .............. [ 87%]
......                                                                   [ 87%]
tardis/visualization/tools/tests/test_lineid_plotter.py sssxx            [ 88%]
tardis/visualization/tools/tests/test_liv_plot.py WWWWWWWWWWWWWWWWWWWWWW [ 89%]
WWWWWWWWWWWWWssssssssWWWWWWWW                                            [ 91%]
tardis/visualization/tools/tests/test_rpacket_plot.py .................. [ 91%]
...............                                                          [ 92%]
tardis/visualization/tools/tests/test_sdec_plot.py WWWWWWWWWWWWWWWWWWWWW [ 93%]
WWWWWWWWWWWWWWssssssssssssssss.                                          [ 95%]
tardis/visualization/widgets/tests/test_custom_abundance.py ........ss.. [ 96%]
....                                                                     [ 96%]
tardis/visualization/widgets/tests/test_line_info.py ................... [ 97%]
......................                                                   [ 98%]
tardis/visualization/widgets/tests/test_shell_info.py .................. [ 99%]
......                                                                   [100%]

=================================== FAILURES ===================================
__________ test_intensity_black_body_cuda[100000000000000.0-10000.0] ___________

nu = 100000000000000.0, temperature = 10000.0

    @pytest.mark.skipif(
        not GPUs_available, reason="No GPU is available to test CUDA function"
    )
    @pytest.mark.parametrize(
        ["nu", "temperature"],
        [
            (1e14, 1e4),
            (0, 1),
            (1, 1),
        ],
    )
    def test_intensity_black_body_cuda(nu, temperature):
        """
        Initializes the test of the cuda version
        against the numba implementation of the
        intensity_black_body to 15 decimals. This
        is done as both results have 15 digits of precision.
        """
        actual = np.zeros(3)
>       black_body_caller[1, 3](nu, temperature, actual)

tardis/spectrum/formal_integral/tests/test_cuda_formal_integral.py:48:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
../../.conda/envs/tardis-test-ce43cec0/lib/python3.13/site-packages/numba/cuda/dispatcher.py:539: in __call__
    return self.dispatcher.call(args, self.griddim, self.blockdim,
../../.conda/envs/tardis-test-ce43cec0/lib/python3.13/site-packages/numba/cuda/dispatcher.py:681: in call
    kernel = _dispatcher.Dispatcher._cuda_call(self, *args)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
../../.conda/envs/tardis-test-ce43cec0/lib/python3.13/site-packages/numba/cuda/dispatcher.py:689: in _compile_for_args
    return self.compile(tuple(argtypes))
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
../../.conda/envs/tardis-test-ce43cec0/lib/python3.13/site-packages/numba/cuda/dispatcher.py:932: in compile
    kernel = _Kernel(self.py_func, argtypes, **self.targetoptions)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
../../.conda/envs/tardis-test-ce43cec0/lib/python3.13/site-packages/numba/core/compiler_lock.py:35: in _acquire_compile_lock
    return func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^
../../.conda/envs/tardis-test-ce43cec0/lib/python3.13/site-packages/numba/cuda/dispatcher.py:83: in __init__
    cres = compile_cuda(self.py_func, types.void, self.argtypes,
../../.conda/envs/tardis-test-ce43cec0/lib/python3.13/site-packages/numba/core/compiler_lock.py:35: in _acquire_compile_lock
    return func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^
../../.conda/envs/tardis-test-ce43cec0/lib/python3.13/site-packages/numba/cuda/compiler.py:196: in compile_cuda
    cres = compiler.compile_extra(typingctx=typingctx,
../../.conda/envs/tardis-test-ce43cec0/lib/python3.13/site-packages/numba/core/compiler.py:739: in compile_extra
    return pipeline.compile_extra(func)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
../../.conda/envs/tardis-test-ce43cec0/lib/python3.13/site-packages/numba/core/compiler.py:439: in compile_extra
    return self._compile_bytecode()
           ^^^^^^^^^^^^^^^^^^^^^^^^
../../.conda/envs/tardis-test-ce43cec0/lib/python3.13/site-packages/numba/core/compiler.py:505: in _compile_bytecode
    return self._compile_core()
           ^^^^^^^^^^^^^^^^^^^^
../../.conda/envs/tardis-test-ce43cec0/lib/python3.13/site-packages/numba/core/compiler.py:484: in _compile_core
    raise e
../../.conda/envs/tardis-test-ce43cec0/lib/python3.13/site-packages/numba/core/compiler.py:473: in _compile_core
    pm.run(self.state)
../../.conda/envs/tardis-test-ce43cec0/lib/python3.13/site-packages/numba/core/compiler_machinery.py:367: in run
    raise patched_exception
../../.conda/envs/tardis-test-ce43cec0/lib/python3.13/site-packages/numba/core/compiler_machinery.py:356: in run
    self._runPass(idx, pass_inst, state)
../../.conda/envs/tardis-test-ce43cec0/lib/python3.13/site-packages/numba/core/compiler_lock.py:35: in _acquire_compile_lock
    return func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^
../../.conda/envs/tardis-test-ce43cec0/lib/python3.13/site-packages/numba/core/compiler_machinery.py:311: in _runPass
    mutated |= check(pss.run_pass, internal_state)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
../../.conda/envs/tardis-test-ce43cec0/lib/python3.13/site-packages/numba/core/compiler_machinery.py:272: in check
    mangled = func(compiler_state)
              ^^^^^^^^^^^^^^^^^^^^
../../.conda/envs/tardis-test-ce43cec0/lib/python3.13/site-packages/numba/core/typed_passes.py:112: in run_pass
    typemap, return_type, calltypes, errs = type_inference_stage(
../../.conda/envs/tardis-test-ce43cec0/lib/python3.13/site-packages/numba/core/typed_passes.py:93: in type_inference_stage
    errs = infer.propagate(raise_errors=raise_errors)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <numba.core.typeinfer.TypeInferer object at 0x735c0414e0d0>
raise_errors = True

    def propagate(self, raise_errors=True):
        newtoken = self.get_state_token()
        oldtoken = None
        # Since the number of types are finite, the typesets will eventually
        # stop growing.

        while newtoken != oldtoken:
            self.debug.propagate_started()
            oldtoken = newtoken
            # Errors can appear when the type set is incomplete; only
            # raise them when there is no progress anymore.
            errors = self.constraints.propagate(self)
            newtoken = self.get_state_token()
            self.debug.propagate_finished()
        if errors:
            if raise_errors:
                force_lit_args = [e for e in errors
                                  if isinstance(e, ForceLiteralArg)]
                if not force_lit_args:
>                   raise errors[0]
E                   numba.core.errors.TypingError: Failed in cuda mode pipeline (step: nopython frontend)
E                   Failed in cuda mode pipeline (step: nopython frontend)
E                   Use of unsupported NumPy function 'numpy.exp' or unsupported use of the function.
E                   
E                   File "tardis/spectrum/formal_integral/base.py", line 104:
E                   def intensity_black_body(nu, temperature):
E                       <source elided>
E                       coefficient = 2 * H_CGS * C_INV * C_INV
E                       return coefficient * nu * nu * nu / (np.exp(H_CGS * nu * beta_rad) - 1)
E                       ^
E                   
E                   During: typing of get attribute at /home/riddhigangbhoj/tardis-work/tardis/tardis/spectrum/formal_integral/base.py (104)
E                   
E                   File "tardis/spectrum/formal_integral/base.py", line 104:
E                   def intensity_black_body(nu, temperature):
E                       <source elided>
E                       coefficient = 2 * H_CGS * C_INV * C_INV
E                       return coefficient * nu * nu * nu / (np.exp(H_CGS * nu * beta_rad) - 1)
E                       ^
E                   
E                   During: Pass nopython_type_inference
E                   During: resolving callee type: type(CUDADispatcher(<function intensity_black_body at 0x735c30362160>))
E                   During: typing of call at /home/riddhigangbhoj/tardis-work/tardis/tardis/spectrum/formal_integral/tests/test_cuda_formal_integral.py (22)
E                   
E                   
E                   File "tardis/spectrum/formal_integral/tests/test_cuda_formal_integral.py", line 22:
E                   def black_body_caller(nu, temperature, actual):
E                       <source elided>
E                       x = cuda.grid(1)
E                       actual[x] = formal_integral_cuda.intensity_black_body_cuda(nu, temperature)
E                       ^
E                   
E                   During: Pass nopython_type_inference

../../.conda/envs/tardis-test-ce43cec0/lib/python3.13/site-packages/numba/core/typeinfer.py:1074: TypingError
_____________________ test_intensity_black_body_cuda[0-1] ______________________

nu = 0, temperature = 1

    @pytest.mark.skipif(
        not GPUs_available, reason="No GPU is available to test CUDA function"
    )
    @pytest.mark.parametrize(
        ["nu", "temperature"],
        [
            (1e14, 1e4),
            (0, 1),
            (1, 1),
        ],
    )
    def test_intensity_black_body_cuda(nu, temperature):
        """
        Initializes the test of the cuda version
        against the numba implementation of the
        intensity_black_body to 15 decimals. This
        is done as both results have 15 digits of precision.
        """
        actual = np.zeros(3)
>       black_body_caller[1, 3](nu, temperature, actual)

tardis/spectrum/formal_integral/tests/test_cuda_formal_integral.py:48:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
../../.conda/envs/tardis-test-ce43cec0/lib/python3.13/site-packages/numba/cuda/dispatcher.py:539: in __call__
    return self.dispatcher.call(args, self.griddim, self.blockdim,
../../.conda/envs/tardis-test-ce43cec0/lib/python3.13/site-packages/numba/cuda/dispatcher.py:681: in call
    kernel = _dispatcher.Dispatcher._cuda_call(self, *args)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
../../.conda/envs/tardis-test-ce43cec0/lib/python3.13/site-packages/numba/cuda/dispatcher.py:689: in _compile_for_args
    return self.compile(tuple(argtypes))
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
../../.conda/envs/tardis-test-ce43cec0/lib/python3.13/site-packages/numba/cuda/dispatcher.py:932: in compile
    kernel = _Kernel(self.py_func, argtypes, **self.targetoptions)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
../../.conda/envs/tardis-test-ce43cec0/lib/python3.13/site-packages/numba/core/compiler_lock.py:35: in _acquire_compile_lock
    return func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^
../../.conda/envs/tardis-test-ce43cec0/lib/python3.13/site-packages/numba/cuda/dispatcher.py:83: in __init__
    cres = compile_cuda(self.py_func, types.void, self.argtypes,
../../.conda/envs/tardis-test-ce43cec0/lib/python3.13/site-packages/numba/core/compiler_lock.py:35: in _acquire_compile_lock
    return func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^
../../.conda/envs/tardis-test-ce43cec0/lib/python3.13/site-packages/numba/cuda/compiler.py:196: in compile_cuda
    cres = compiler.compile_extra(typingctx=typingctx,
../../.conda/envs/tardis-test-ce43cec0/lib/python3.13/site-packages/numba/core/compiler.py:739: in compile_extra
    return pipeline.compile_extra(func)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
../../.conda/envs/tardis-test-ce43cec0/lib/python3.13/site-packages/numba/core/compiler.py:439: in compile_extra
    return self._compile_bytecode()
           ^^^^^^^^^^^^^^^^^^^^^^^^
../../.conda/envs/tardis-test-ce43cec0/lib/python3.13/site-packages/numba/core/compiler.py:505: in _compile_bytecode
    return self._compile_core()
           ^^^^^^^^^^^^^^^^^^^^
../../.conda/envs/tardis-test-ce43cec0/lib/python3.13/site-packages/numba/core/compiler.py:484: in _compile_core
    raise e
../../.conda/envs/tardis-test-ce43cec0/lib/python3.13/site-packages/numba/core/compiler.py:473: in _compile_core
    pm.run(self.state)
../../.conda/envs/tardis-test-ce43cec0/lib/python3.13/site-packages/numba/core/compiler_machinery.py:367: in run
    raise patched_exception
../../.conda/envs/tardis-test-ce43cec0/lib/python3.13/site-packages/numba/core/compiler_machinery.py:356: in run
    self._runPass(idx, pass_inst, state)
../../.conda/envs/tardis-test-ce43cec0/lib/python3.13/site-packages/numba/core/compiler_lock.py:35: in _acquire_compile_lock
    return func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^
../../.conda/envs/tardis-test-ce43cec0/lib/python3.13/site-packages/numba/core/compiler_machinery.py:311: in _runPass
    mutated |= check(pss.run_pass, internal_state)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
../../.conda/envs/tardis-test-ce43cec0/lib/python3.13/site-packages/numba/core/compiler_machinery.py:272: in check
    mangled = func(compiler_state)
              ^^^^^^^^^^^^^^^^^^^^
../../.conda/envs/tardis-test-ce43cec0/lib/python3.13/site-packages/numba/core/typed_passes.py:112: in run_pass
    typemap, return_type, calltypes, errs = type_inference_stage(
../../.conda/envs/tardis-test-ce43cec0/lib/python3.13/site-packages/numba/core/typed_passes.py:93: in type_inference_stage
    errs = infer.propagate(raise_errors=raise_errors)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <numba.core.typeinfer.TypeInferer object at 0x735bb41ebe10>
raise_errors = True

    def propagate(self, raise_errors=True):
        newtoken = self.get_state_token()
        oldtoken = None
        # Since the number of types are finite, the typesets will eventually
        # stop growing.

        while newtoken != oldtoken:
            self.debug.propagate_started()
            oldtoken = newtoken
            # Errors can appear when the type set is incomplete; only
            # raise them when there is no progress anymore.
            errors = self.constraints.propagate(self)
            newtoken = self.get_state_token()
            self.debug.propagate_finished()
        if errors:
            if raise_errors:
                force_lit_args = [e for e in errors
                                  if isinstance(e, ForceLiteralArg)]
                if not force_lit_args:
>                   raise errors[0]
E                   numba.core.errors.TypingError: Failed in cuda mode pipeline (step: nopython frontend)
E                   Failed in cuda mode pipeline (step: nopython frontend)
E                   Use of unsupported NumPy function 'numpy.exp' or unsupported use of the function.
E                   
E                   File "tardis/spectrum/formal_integral/base.py", line 104:
E                   def intensity_black_body(nu, temperature):
E                       <source elided>
E                       coefficient = 2 * H_CGS * C_INV * C_INV
E                       return coefficient * nu * nu * nu / (np.exp(H_CGS * nu * beta_rad) - 1)
E                       ^
E                   
E                   During: typing of get attribute at /home/riddhigangbhoj/tardis-work/tardis/tardis/spectrum/formal_integral/base.py (104)
E                   
E                   File "tardis/spectrum/formal_integral/base.py", line 104:
E                   def intensity_black_body(nu, temperature):
E                       <source elided>
E                       coefficient = 2 * H_CGS * C_INV * C_INV
E                       return coefficient * nu * nu * nu / (np.exp(H_CGS * nu * beta_rad) - 1)
E                       ^
E                   
E                   During: Pass nopython_type_inference
E                   During: resolving callee type: type(CUDADispatcher(<function intensity_black_body at 0x735c30362160>))
E                   During: typing of call at /home/riddhigangbhoj/tardis-work/tardis/tardis/spectrum/formal_integral/tests/test_cuda_formal_integral.py (22)
E                   
E                   
E                   File "tardis/spectrum/formal_integral/tests/test_cuda_formal_integral.py", line 22:
E                   def black_body_caller(nu, temperature, actual):
E                       <source elided>
E                       x = cuda.grid(1)
E                       actual[x] = formal_integral_cuda.intensity_black_body_cuda(nu, temperature)
E                       ^
E                   
E                   During: Pass nopython_type_inference

../../.conda/envs/tardis-test-ce43cec0/lib/python3.13/site-packages/numba/core/typeinfer.py:1074: TypingError
_____________________ test_intensity_black_body_cuda[1-1] ______________________

nu = 1, temperature = 1

    @pytest.mark.skipif(
        not GPUs_available, reason="No GPU is available to test CUDA function"
    )
    @pytest.mark.parametrize(
        ["nu", "temperature"],
        [
            (1e14, 1e4),
            (0, 1),
            (1, 1),
        ],
    )
    def test_intensity_black_body_cuda(nu, temperature):
        """
        Initializes the test of the cuda version
        against the numba implementation of the
        intensity_black_body to 15 decimals. This
        is done as both results have 15 digits of precision.
        """
        actual = np.zeros(3)
>       black_body_caller[1, 3](nu, temperature, actual)

tardis/spectrum/formal_integral/tests/test_cuda_formal_integral.py:48:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
../../.conda/envs/tardis-test-ce43cec0/lib/python3.13/site-packages/numba/cuda/dispatcher.py:539: in __call__
    return self.dispatcher.call(args, self.griddim, self.blockdim,
../../.conda/envs/tardis-test-ce43cec0/lib/python3.13/site-packages/numba/cuda/dispatcher.py:681: in call
    kernel = _dispatcher.Dispatcher._cuda_call(self, *args)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
../../.conda/envs/tardis-test-ce43cec0/lib/python3.13/site-packages/numba/cuda/dispatcher.py:689: in _compile_for_args
    return self.compile(tuple(argtypes))
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
../../.conda/envs/tardis-test-ce43cec0/lib/python3.13/site-packages/numba/cuda/dispatcher.py:932: in compile
    kernel = _Kernel(self.py_func, argtypes, **self.targetoptions)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
../../.conda/envs/tardis-test-ce43cec0/lib/python3.13/site-packages/numba/core/compiler_lock.py:35: in _acquire_compile_lock
    return func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^
../../.conda/envs/tardis-test-ce43cec0/lib/python3.13/site-packages/numba/cuda/dispatcher.py:83: in __init__
    cres = compile_cuda(self.py_func, types.void, self.argtypes,
../../.conda/envs/tardis-test-ce43cec0/lib/python3.13/site-packages/numba/core/compiler_lock.py:35: in _acquire_compile_lock
    return func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^
../../.conda/envs/tardis-test-ce43cec0/lib/python3.13/site-packages/numba/cuda/compiler.py:196: in compile_cuda
    cres = compiler.compile_extra(typingctx=typingctx,
../../.conda/envs/tardis-test-ce43cec0/lib/python3.13/site-packages/numba/core/compiler.py:739: in compile_extra
    return pipeline.compile_extra(func)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
../../.conda/envs/tardis-test-ce43cec0/lib/python3.13/site-packages/numba/core/compiler.py:439: in compile_extra
    return self._compile_bytecode()
           ^^^^^^^^^^^^^^^^^^^^^^^^
../../.conda/envs/tardis-test-ce43cec0/lib/python3.13/site-packages/numba/core/compiler.py:505: in _compile_bytecode
    return self._compile_core()
           ^^^^^^^^^^^^^^^^^^^^
../../.conda/envs/tardis-test-ce43cec0/lib/python3.13/site-packages/numba/core/compiler.py:484: in _compile_core
    raise e
../../.conda/envs/tardis-test-ce43cec0/lib/python3.13/site-packages/numba/core/compiler.py:473: in _compile_core
    pm.run(self.state)
../../.conda/envs/tardis-test-ce43cec0/lib/python3.13/site-packages/numba/core/compiler_machinery.py:367: in run
    raise patched_exception
../../.conda/envs/tardis-test-ce43cec0/lib/python3.13/site-packages/numba/core/compiler_machinery.py:356: in run
    self._runPass(idx, pass_inst, state)
../../.conda/envs/tardis-test-ce43cec0/lib/python3.13/site-packages/numba/core/compiler_lock.py:35: in _acquire_compile_lock
    return func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^
../../.conda/envs/tardis-test-ce43cec0/lib/python3.13/site-packages/numba/core/compiler_machinery.py:311: in _runPass
    mutated |= check(pss.run_pass, internal_state)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
../../.conda/envs/tardis-test-ce43cec0/lib/python3.13/site-packages/numba/core/compiler_machinery.py:272: in check
    mangled = func(compiler_state)
              ^^^^^^^^^^^^^^^^^^^^
../../.conda/envs/tardis-test-ce43cec0/lib/python3.13/site-packages/numba/core/typed_passes.py:112: in run_pass
    typemap, return_type, calltypes, errs = type_inference_stage(
../../.conda/envs/tardis-test-ce43cec0/lib/python3.13/site-packages/numba/core/typed_passes.py:93: in type_inference_stage
    errs = infer.propagate(raise_errors=raise_errors)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <numba.core.typeinfer.TypeInferer object at 0x735bfbe8b1e0>
raise_errors = True

    def propagate(self, raise_errors=True):
        newtoken = self.get_state_token()
        oldtoken = None
        # Since the number of types are finite, the typesets will eventually
        # stop growing.

        while newtoken != oldtoken:
            self.debug.propagate_started()
            oldtoken = newtoken
            # Errors can appear when the type set is incomplete; only
            # raise them when there is no progress anymore.
            errors = self.constraints.propagate(self)
            newtoken = self.get_state_token()
            self.debug.propagate_finished()
        if errors:
            if raise_errors:
                force_lit_args = [e for e in errors
                                  if isinstance(e, ForceLiteralArg)]
                if not force_lit_args:
>                   raise errors[0]
E                   numba.core.errors.TypingError: Failed in cuda mode pipeline (step: nopython frontend)
E                   Failed in cuda mode pipeline (step: nopython frontend)
E                   Use of unsupported NumPy function 'numpy.exp' or unsupported use of the function.
E                   
E                   File "tardis/spectrum/formal_integral/base.py", line 104:
E                   def intensity_black_body(nu, temperature):
E                       <source elided>
E                       coefficient = 2 * H_CGS * C_INV * C_INV
E                       return coefficient * nu * nu * nu / (np.exp(H_CGS * nu * beta_rad) - 1)
E                       ^
E                   
E                   During: typing of get attribute at /home/riddhigangbhoj/tardis-work/tardis/tardis/spectrum/formal_integral/base.py (104)
E                   
E                   File "tardis/spectrum/formal_integral/base.py", line 104:
E                   def intensity_black_body(nu, temperature):
E                       <source elided>
E                       coefficient = 2 * H_CGS * C_INV * C_INV
E                       return coefficient * nu * nu * nu / (np.exp(H_CGS * nu * beta_rad) - 1)
E                       ^
E                   
E                   During: Pass nopython_type_inference
E                   During: resolving callee type: type(CUDADispatcher(<function intensity_black_body at 0x735c30362160>))
E                   During: typing of call at /home/riddhigangbhoj/tardis-work/tardis/tardis/spectrum/formal_integral/tests/test_cuda_formal_integral.py (22)
E                   
E                   
E                   File "tardis/spectrum/formal_integral/tests/test_cuda_formal_integral.py", line 22:
E                   def black_body_caller(nu, temperature, actual):
E                       <source elided>
E                       x = cuda.grid(1)
E                       actual[x] = formal_integral_cuda.intensity_black_body_cuda(nu, temperature)
E                       ^
E                   
E                   During: Pass nopython_type_inference

../../.conda/envs/tardis-test-ce43cec0/lib/python3.13/site-packages/numba/core/typeinfer.py:1074: TypingError
_____________________ test_full_formal_integral[200000-5] ______________________

no_of_packets = 200000, iterations = 5
config_verysimple = {'tardis_config_version': 'v1.0', 'supernova': {'luminosity_requested': <Quantity 1.07688e+36 W>, 'time_explosion': <Q...: {'points': 1000, 'interpolate_shells': 0, 'compute': 'CPU'}}, 'config_dirname': 'tardis/io/configuration/tests/data'}
simulation_verysimple = <tardis.simulation.base.Simulation object at 0x735c0cfbaf90>

    @pytest.mark.skipif(
        not GPUs_available, reason="No GPU is available to test CUDA function"
    )
    @pytest.mark.parametrize(["no_of_packets", "iterations"], [(200000, 5)])
    def test_full_formal_integral(
        no_of_packets, iterations, config_verysimple, simulation_verysimple
    ):
        """
        This function initializes both the cuda and numba formal_integrator,
        and the runs them and compares results to the 15th decimal place.
        This is done as both results have 15 digits of precision.
        """
        sim = simulation_verysimple

        formal_integrator_numba = FormalIntegrator(
            sim.simulation_state, sim.plasma, sim.transport
        )

        formal_integrator_cuda = FormalIntegrator(
            sim.simulation_state, sim.plasma, sim.transport
        )

        # The function calculate_spectrum sets this property, but in order to test the CUDA.
        # version it is done manually, as well as to speed up the test.
        formal_integrator_numba.interpolate_shells = max(
            2 * formal_integrator_numba.simulation_state.no_of_shells, 80
        )

        formal_integrator_cuda.interpolate_shells = max(
            2 * formal_integrator_cuda.simulation_state.no_of_shells, 80
        )

>       res_numba = make_source_function(
            formal_integrator_numba.simulation_state,
            formal_integrator_numba.plasma,
            formal_integrator_numba.transport,
            formal_integrator_numba.interpolate_shells
        )

tardis/spectrum/formal_integral/tests/test_cuda_formal_integral.py:329:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

simulation_state = <tardis.model.base.SimulationState object at 0x735c1c446f90>
opacity_state = <tardis.plasma.base.BasePlasma object at 0x735c0cfb8d70>
transport = <tardis.transport.montecarlo.base.MonteCarloTransportSolver object at 0x735c0cfba510>
plasma = 80, interpolate_shells = 0

    def make_source_function(simulation_state, opacity_state, transport, plasma, interpolate_shells=0):
        """
        Calculates the source function using the line absorption rate estimator `Edotlu_estimator`

        Formally it calculates the expression ( 1 - exp(-tau_ul) ) S_ul but this product is what we need later,
        so there is no need to factor out the source function explicitly.
        Parameters
        ----------
        simulation_state : tardis.model.SimulationState
        opacity_state : tardis.opacity.OpacityStateNumba
        transport : tardis.transport.montecarlo.MonteCarloTransportSolver
        plasma : tardis.plasma.BasePlasma
        interpolate_shells : int
            Number of shells to interpolate to. If set to 0, no interpolation is performed.

        Returns
        -------
        Numpy array containing ( 1 - exp(-tau_ul) ) S_ul ordered by wavelength of the transition u -> l
        """

        montecarlo_transport_state = transport.transport_state
>       atomic_data = plasma.atomic_data
                      ^^^^^^^^^^^^^^^^^^
E       AttributeError: 'int' object has no attribute 'atomic_data'

tardis/spectrum/formal_integral/base.py:128: AttributeError
=========================== short test summary info ============================
FAILED tardis/spectrum/formal_integral/tests/test_cuda_formal_integral.py::test_intensity_black_body_cuda[100000000000000.0-10000.0] - numba.core.errors.TypingError: Failed in cuda mode pipeline (step: nopython...
FAILED tardis/spectrum/formal_integral/tests/test_cuda_formal_integral.py::test_intensity_black_body_cuda[0-1] - numba.core.errors.TypingError: Failed in cuda mode pipeline (step: nopython...
FAILED tardis/spectrum/formal_integral/tests/test_cuda_formal_integral.py::test_intensity_black_body_cuda[1-1] - numba.core.errors.TypingError: Failed in cuda mode pipeline (step: nopython...
FAILED tardis/spectrum/formal_integral/tests/test_cuda_formal_integral.py::test_full_formal_integral[200000-5] - AttributeError: 'int' object has no attribute 'atomic_data'
= 4 failed, 648 passed, 125 skipped, 2 deselected, 22 xfailed, 8 xpassed, 344 warnings, 1041 regression data written in 791.08s (0:13:11) =


ERROR:tardisbase.testing.regression_comparison.run_tests:Stderr:
Packets:   ████████████████████████████████████████████████████████████████████

Iterations:

ERROR conda.cli.main_run:execute(127): `conda run python -m pytest tardis --tardis-regression-data=/home/riddhigangbhoj/tardis-work/tardis-regression-data --generate-reference --disable-warnings -m not continuum` failed. (See above for error)

INFO:tardisbase.testing.regression_comparison.run_tests:
=== Phase 2: Running 'continuum' tests for commit ce43cec0fa5d9255108c90c84659c71d34fb1c26 ===
INFO:tardisbase.testing.regression_comparison.run_tests:Running continuum tests: conda run -n tardis-test-ce43cec0 python -m pytest tardis --tardis-regression-data=/home/riddhigangbhoj/tardis-work/tardis-regression-data --generate-reference --disable-warnings -m continuum
WARNING:tardisbase.testing.regression_comparison.run_tests:Tests completed with some failures for commit ce43cec0fa5d9255108c90c84659c71d34fb1c26, but regression data was generated
INFO:tardisbase.testing.regression_comparison.run_tests:Processing commit 3/3: fa4c4ea98055ea3bef24d69feba26fb5f74c2ddf
INFO:tardisbase.testing.regression_comparison.run_tests:Creating conda environment: tardis-test-fa4c4ea9
INFO:tardisbase.testing.regression_comparison.run_tests:Checking if environment tardis-test-fa4c4ea9 exists...
INFO:tardisbase.testing.regression_comparison.run_tests:Environment tardis-test-fa4c4ea9 exists, removing it for recreation...
INFO:tardisbase.testing.regression_comparison.run_tests:Creating conda environment: conda create --name tardis-test-fa4c4ea9 --file /tmp/tmpvmuy4cbz.lock -y
INFO:tardisbase.testing.regression_comparison.run_tests:Installing TARDIS with all extras ['viz', 'tardisbase']: conda run -n tardis-test-fa4c4ea9 pip install -e /home/riddhigangbhoj/tardis-work/tardis[viz,tardisbase]
INFO:tardisbase.testing.regression_comparison.run_tests:
=== Phase 1: Running 'not continuum' tests for commit fa4c4ea98055ea3bef24d69feba26fb5f74c2ddf ===
INFO:tardisbase.testing.regression_comparison.run_tests:Running not continuum tests: conda run -n tardis-test-fa4c4ea9 python -m pytest tardis --tardis-regression-data=/home/riddhigangbhoj/tardis-work/tardis-regression-data --generate-reference --disable-warnings -m not continuum
WARNING:tardisbase.testing.regression_comparison.run_tests:'not continuum' tests had failures for commit fa4c4ea98055ea3bef24d69feba26fb5f74c2ddf
INFO:tardisbase.testing.regression_comparison.run_tests:Stdout: ============================= test session starts ==============================
platform linux -- Python 3.13.3, pytest-8.4.0, pluggy-1.6.0
rootdir: /home/riddhigangbhoj/tardis-work/tardis
configfile: pyproject.toml
plugins: anyio-4.9.0, cov-6.1.1, doctestplus-1.4.0, metadata-3.1.1, html-4.1.1
collected 1850 items / 2 deselected / 1848 selected

tardis/energy_input/tests/test_energy_source.py ..xxx                    [  0%]
tardis/energy_input/tests/test_gamma_ray_channel.py .............        [  0%]
tardis/energy_input/tests/test_gamma_ray_grid.py xx.                     [  1%]
tardis/energy_input/tests/test_gamma_ray_interactions.py xx....          [  1%]
tardis/energy_input/tests/test_gamma_ray_packet_source.py sssssssss      [  1%]
tardis/energy_input/tests/test_util.py .....xxxx.....                    [  2%]
tardis/grid/tests/test_grid.py .                                         [  2%]
tardis/gui/tests/test_gui.py s                                           [  2%]
tardis/io/configuration/tests/test_config_reader.py ...........          [  3%]
tardis/io/configuration/tests/test_config_validator.py .....             [  3%]
tardis/io/configuration/tests/test_configuration_namespace.py .........  [  4%]
tardis/io/logger/tests/test_logging.py ssssssssssssssssssssssssssss      [  5%]
tardis/io/model/readers/snec/tests/test_input_profiles.py .              [  5%]
tardis/io/model/readers/snec/tests/test_read_snec_output.py .            [  5%]
tardis/io/model/readers/snec/tests/test_xg_files.py ...                  [  5%]
tardis/io/model/readers/tests/test_arepo_parser.py ss                    [  6%]
tardis/io/model/readers/tests/test_artis_readers.py ....                 [  6%]
tardis/io/model/readers/tests/test_ascii_readers.py ...                  [  6%]
tardis/io/model/readers/tests/test_cmfgen_reader.py ..                   [  6%]
tardis/io/model/readers/tests/test_csvy_reader.py ....                   [  6%]
tardis/io/model/readers/tests/test_stella_reader.py ..                   [  6%]
tardis/io/tests/test_HDFWriter.py ................                       [  7%]
tardis/io/tests/test_atomic.py .....                                     [  8%]
tardis/io/tests/test_decay.py ..                                         [  8%]
tardis/io/tests/test_model_reader.py .......                             [  8%]
tardis/model/geometry/tests/test_radial1d.py ..                          [  8%]
tardis/model/tests/test_base.py ........................................ [ 10%]
............                                                             [ 11%]
tardis/model/tests/test_csvy_model.py .........                          [ 11%]
tardis/model/tests/test_density.py ..                                    [ 12%]
tardis/opacities/tests/test_opacity_solver.py .....WWWW                  [ 12%]
tardis/opacities/tests/test_opacity_state_numba.py .....                 [ 12%]
tardis/opacities/tests/test_tau_sobolev.py WW                            [ 12%]
tardis/plasma/equilibrium/tests/test_collisional_transitions.py ..       [ 12%]
tardis/plasma/equilibrium/tests/test_level_populations.py ...W           [ 13%]
tardis/plasma/equilibrium/tests/test_rate_matrix.py W                    [ 13%]
tardis/plasma/tests/test_complete_plasmas.py WWWWWWWWWWWWWWWWWWWWWWWWWWW [ 14%]
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW [ 18%]
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW [ 22%]
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW [ 26%]
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW [ 30%]
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW [ 34%]
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW [ 38%]
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW [ 41%]
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW [ 45%]
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW [ 49%]
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW [ 53%]
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW [ 57%]
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW                                [ 59%]
tardis/plasma/tests/test_hdf_plasma.py WWWWWWWWW..WWWWWWWWWWW.WWWWWWWWWW [ 61%]
WWWWWW                                                                   [ 61%]
tardis/plasma/tests/test_nlte_excitation.py WWW                          [ 62%]
tardis/plasma/tests/test_nlte_solver.py WW...X                           [ 62%]
tardis/plasma/tests/test_plasma_continuum.py W                           [ 62%]
tardis/plasma/tests/test_plasma_vboundary.py .............               [ 63%]
tardis/plasma/tests/test_tardis_model_density_config.py WWW              [ 63%]
tardis/simulation/tests/test_convergence.py .....                        [ 63%]
tardis/simulation/tests/test_simulation.py WWWWWWWWWW...                 [ 64%]
tardis/spectrum/formal_integral/tests/test_cuda_formal_integral.py FFF.. [ 64%]
.........................................F                               [ 66%]
tardis/spectrum/formal_integral/tests/test_formal_integral.py ..x....... [ 67%]
                                                                         [ 67%]
tardis/spectrum/formal_integral/tests/test_numba_formal_integral.py .... [ 67%]
....................                                                     [ 68%]
tardis/spectrum/tests/test_luminosity.py ....                            [ 68%]
tardis/spectrum/tests/test_spectrum.py ................................. [ 70%]
.........                                                                [ 71%]
tardis/spectrum/tests/test_spectrum_solver.py WWWW                       [ 71%]
tardis/tests/test_tardis_full.py ..WWW                                   [ 71%]
tardis/tests/test_tardis_full_formal_integral.py WWWWWWWWWWWWWWWW        [ 72%]
tardis/tests/test_util.py .............................................  [ 74%]
tardis/transport/montecarlo/tests/test_base.py x.....................    [ 76%]
tardis/transport/montecarlo/tests/test_interaction.py .......            [ 76%]
tardis/transport/montecarlo/tests/test_macro_atom.py ....                [ 76%]
tardis/transport/montecarlo/tests/test_montecarlo.py sssssssssssssssssss [ 77%]
sssssssssssssssssssssssssssssssssssss                                    [ 79%]
tardis/transport/montecarlo/tests/test_montecarlo_main_loop.py xWW       [ 79%]
tardis/transport/montecarlo/tests/test_nonhomologous.py ...              [ 80%]
tardis/transport/montecarlo/tests/test_numba_interface.py .....x.        [ 80%]
tardis/transport/montecarlo/tests/test_opacities.py ...............      [ 81%]
tardis/transport/montecarlo/tests/test_packet.py .................xXXXXX [ 82%]
XX.........                                                              [ 83%]
tardis/transport/montecarlo/tests/test_packet_source.py WWWWWWWW         [ 83%]
tardis/transport/montecarlo/tests/test_rpacket_last_interaction_tracker.py . [ 83%]
.....                                                                    [ 83%]
tardis/transport/montecarlo/tests/test_rpacket_tracker.py ....W.         [ 84%]
tardis/transport/montecarlo/tests/test_single_packet_loop.py xxx         [ 84%]
tardis/transport/montecarlo/tests/test_tracker_utils.py ..               [ 84%]
tardis/transport/montecarlo/tests/test_vpacket.py ..x.                   [ 84%]
tardis/transport/montecarlo/tests/test_weighted_packet_source.py WWWW    [ 84%]
tardis/transport/montecarlo/tests/test_weighted_packet_source_integration.py . [ 84%]
                                                                         [ 84%]
tardis/transport/tests/test_doppler_factor.py ..................         [ 85%]
tardis/visualization/tests/test_plot_util.py ................WW          [ 86%]
tardis/visualization/tools/tests/test_convergence_plot.py .............. [ 87%]
......                                                                   [ 87%]
tardis/visualization/tools/tests/test_lineid_plotter.py sssxx            [ 88%]
tardis/visualization/tools/tests/test_liv_plot.py WWWWWWWWWWWWWWWWWWWWWW [ 89%]
WWWWWWWWWWWWWssssssssWWWWWWWW                                            [ 91%]
tardis/visualization/tools/tests/test_rpacket_plot.py .................. [ 91%]
...............                                                          [ 92%]
tardis/visualization/tools/tests/test_sdec_plot.py WWWWWWWWWWWWWWWWWWWWW [ 93%]
WWWWWWWWWWWWWWssssssssssssssss.                                          [ 95%]
tardis/visualization/widgets/tests/test_custom_abundance.py ........ss.. [ 96%]
....                                                                     [ 96%]
tardis/visualization/widgets/tests/test_line_info.py ................... [ 97%]
......................                                                   [ 98%]
tardis/visualization/widgets/tests/test_shell_info.py .................. [ 99%]
......                                                                   [100%]

=================================== FAILURES ===================================
__________ test_intensity_black_body_cuda[100000000000000.0-10000.0] ___________

nu = 100000000000000.0, temperature = 10000.0

    @pytest.mark.skipif(
        not GPUs_available, reason="No GPU is available to test CUDA function"
    )
    @pytest.mark.parametrize(
        ["nu", "temperature"],
        [
            (1e14, 1e4),
            (0, 1),
            (1, 1),
        ],
    )
    def test_intensity_black_body_cuda(nu, temperature):
        """
        Initializes the test of the cuda version
        against the numba implementation of the
        intensity_black_body to 15 decimals. This
        is done as both results have 15 digits of precision.
        """
        actual = np.zeros(3)
>       black_body_caller[1, 3](nu, temperature, actual)

tardis/spectrum/formal_integral/tests/test_cuda_formal_integral.py:48:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
../../.conda/envs/tardis-test-fa4c4ea9/lib/python3.13/site-packages/numba/cuda/dispatcher.py:539: in __call__
    return self.dispatcher.call(args, self.griddim, self.blockdim,
../../.conda/envs/tardis-test-fa4c4ea9/lib/python3.13/site-packages/numba/cuda/dispatcher.py:681: in call
    kernel = _dispatcher.Dispatcher._cuda_call(self, *args)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
../../.conda/envs/tardis-test-fa4c4ea9/lib/python3.13/site-packages/numba/cuda/dispatcher.py:689: in _compile_for_args
    return self.compile(tuple(argtypes))
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
../../.conda/envs/tardis-test-fa4c4ea9/lib/python3.13/site-packages/numba/cuda/dispatcher.py:932: in compile
    kernel = _Kernel(self.py_func, argtypes, **self.targetoptions)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
../../.conda/envs/tardis-test-fa4c4ea9/lib/python3.13/site-packages/numba/core/compiler_lock.py:35: in _acquire_compile_lock
    return func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^
../../.conda/envs/tardis-test-fa4c4ea9/lib/python3.13/site-packages/numba/cuda/dispatcher.py:83: in __init__
    cres = compile_cuda(self.py_func, types.void, self.argtypes,
../../.conda/envs/tardis-test-fa4c4ea9/lib/python3.13/site-packages/numba/core/compiler_lock.py:35: in _acquire_compile_lock
    return func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^
../../.conda/envs/tardis-test-fa4c4ea9/lib/python3.13/site-packages/numba/cuda/compiler.py:196: in compile_cuda
    cres = compiler.compile_extra(typingctx=typingctx,
../../.conda/envs/tardis-test-fa4c4ea9/lib/python3.13/site-packages/numba/core/compiler.py:739: in compile_extra
    return pipeline.compile_extra(func)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
../../.conda/envs/tardis-test-fa4c4ea9/lib/python3.13/site-packages/numba/core/compiler.py:439: in compile_extra
    return self._compile_bytecode()
           ^^^^^^^^^^^^^^^^^^^^^^^^
../../.conda/envs/tardis-test-fa4c4ea9/lib/python3.13/site-packages/numba/core/compiler.py:505: in _compile_bytecode
    return self._compile_core()
           ^^^^^^^^^^^^^^^^^^^^
../../.conda/envs/tardis-test-fa4c4ea9/lib/python3.13/site-packages/numba/core/compiler.py:484: in _compile_core
    raise e
../../.conda/envs/tardis-test-fa4c4ea9/lib/python3.13/site-packages/numba/core/compiler.py:473: in _compile_core
    pm.run(self.state)
../../.conda/envs/tardis-test-fa4c4ea9/lib/python3.13/site-packages/numba/core/compiler_machinery.py:367: in run
    raise patched_exception
../../.conda/envs/tardis-test-fa4c4ea9/lib/python3.13/site-packages/numba/core/compiler_machinery.py:356: in run
    self._runPass(idx, pass_inst, state)
../../.conda/envs/tardis-test-fa4c4ea9/lib/python3.13/site-packages/numba/core/compiler_lock.py:35: in _acquire_compile_lock
    return func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^
../../.conda/envs/tardis-test-fa4c4ea9/lib/python3.13/site-packages/numba/core/compiler_machinery.py:311: in _runPass
    mutated |= check(pss.run_pass, internal_state)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
../../.conda/envs/tardis-test-fa4c4ea9/lib/python3.13/site-packages/numba/core/compiler_machinery.py:272: in check
    mangled = func(compiler_state)
              ^^^^^^^^^^^^^^^^^^^^
../../.conda/envs/tardis-test-fa4c4ea9/lib/python3.13/site-packages/numba/core/typed_passes.py:112: in run_pass
    typemap, return_type, calltypes, errs = type_inference_stage(
../../.conda/envs/tardis-test-fa4c4ea9/lib/python3.13/site-packages/numba/core/typed_passes.py:93: in type_inference_stage
    errs = infer.propagate(raise_errors=raise_errors)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <numba.core.typeinfer.TypeInferer object at 0x7059e0f42dd0>
raise_errors = True

    def propagate(self, raise_errors=True):
        newtoken = self.get_state_token()
        oldtoken = None
        # Since the number of types are finite, the typesets will eventually
        # stop growing.

        while newtoken != oldtoken:
            self.debug.propagate_started()
            oldtoken = newtoken
            # Errors can appear when the type set is incomplete; only
            # raise them when there is no progress anymore.
            errors = self.constraints.propagate(self)
            newtoken = self.get_state_token()
            self.debug.propagate_finished()
        if errors:
            if raise_errors:
                force_lit_args = [e for e in errors
                                  if isinstance(e, ForceLiteralArg)]
                if not force_lit_args:
>                   raise errors[0]
E                   numba.core.errors.TypingError: Failed in cuda mode pipeline (step: nopython frontend)
E                   Failed in cuda mode pipeline (step: nopython frontend)
E                   Use of unsupported NumPy function 'numpy.exp' or unsupported use of the function.
E                   
E                   File "tardis/spectrum/formal_integral/base.py", line 104:
E                   def intensity_black_body(nu, temperature):
E                       <source elided>
E                       coefficient = 2 * H_CGS * C_INV * C_INV
E                       return coefficient * nu * nu * nu / (np.exp(H_CGS * nu * beta_rad) - 1)
E                       ^
E                   
E                   During: typing of get attribute at /home/riddhigangbhoj/tardis-work/tardis/tardis/spectrum/formal_integral/base.py (104)
E                   
E                   File "tardis/spectrum/formal_integral/base.py", line 104:
E                   def intensity_black_body(nu, temperature):
E                       <source elided>
E                       coefficient = 2 * H_CGS * C_INV * C_INV
E                       return coefficient * nu * nu * nu / (np.exp(H_CGS * nu * beta_rad) - 1)
E                       ^
E                   
E                   During: Pass nopython_type_inference
E                   During: resolving callee type: type(CUDADispatcher(<function intensity_black_body at 0x705a182ee200>))
E                   During: typing of call at /home/riddhigangbhoj/tardis-work/tardis/tardis/spectrum/formal_integral/tests/test_cuda_formal_integral.py (22)
E                   
E                   
E                   File "tardis/spectrum/formal_integral/tests/test_cuda_formal_integral.py", line 22:
E                   def black_body_caller(nu, temperature, actual):
E                       <source elided>
E                       x = cuda.grid(1)
E                       actual[x] = formal_integral_cuda.intensity_black_body_cuda(nu, temperature)
E                       ^
E                   
E                   During: Pass nopython_type_inference

../../.conda/envs/tardis-test-fa4c4ea9/lib/python3.13/site-packages/numba/core/typeinfer.py:1074: TypingError
_____________________ test_intensity_black_body_cuda[0-1] ______________________

nu = 0, temperature = 1

    @pytest.mark.skipif(
        not GPUs_available, reason="No GPU is available to test CUDA function"
    )
    @pytest.mark.parametrize(
        ["nu", "temperature"],
        [
            (1e14, 1e4),
            (0, 1),
            (1, 1),
        ],
    )
    def test_intensity_black_body_cuda(nu, temperature):
        """
        Initializes the test of the cuda version
        against the numba implementation of the
        intensity_black_body to 15 decimals. This
        is done as both results have 15 digits of precision.
        """
        actual = np.zeros(3)
>       black_body_caller[1, 3](nu, temperature, actual)

tardis/spectrum/formal_integral/tests/test_cuda_formal_integral.py:48:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
../../.conda/envs/tardis-test-fa4c4ea9/lib/python3.13/site-packages/numba/cuda/dispatcher.py:539: in __call__
    return self.dispatcher.call(args, self.griddim, self.blockdim,
../../.conda/envs/tardis-test-fa4c4ea9/lib/python3.13/site-packages/numba/cuda/dispatcher.py:681: in call
    kernel = _dispatcher.Dispatcher._cuda_call(self, *args)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
../../.conda/envs/tardis-test-fa4c4ea9/lib/python3.13/site-packages/numba/cuda/dispatcher.py:689: in _compile_for_args
    return self.compile(tuple(argtypes))
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
../../.conda/envs/tardis-test-fa4c4ea9/lib/python3.13/site-packages/numba/cuda/dispatcher.py:932: in compile
    kernel = _Kernel(self.py_func, argtypes, **self.targetoptions)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
../../.conda/envs/tardis-test-fa4c4ea9/lib/python3.13/site-packages/numba/core/compiler_lock.py:35: in _acquire_compile_lock
    return func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^
../../.conda/envs/tardis-test-fa4c4ea9/lib/python3.13/site-packages/numba/cuda/dispatcher.py:83: in __init__
    cres = compile_cuda(self.py_func, types.void, self.argtypes,
../../.conda/envs/tardis-test-fa4c4ea9/lib/python3.13/site-packages/numba/core/compiler_lock.py:35: in _acquire_compile_lock
    return func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^
../../.conda/envs/tardis-test-fa4c4ea9/lib/python3.13/site-packages/numba/cuda/compiler.py:196: in compile_cuda
    cres = compiler.compile_extra(typingctx=typingctx,
../../.conda/envs/tardis-test-fa4c4ea9/lib/python3.13/site-packages/numba/core/compiler.py:739: in compile_extra
    return pipeline.compile_extra(func)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
../../.conda/envs/tardis-test-fa4c4ea9/lib/python3.13/site-packages/numba/core/compiler.py:439: in compile_extra
    return self._compile_bytecode()
           ^^^^^^^^^^^^^^^^^^^^^^^^
../../.conda/envs/tardis-test-fa4c4ea9/lib/python3.13/site-packages/numba/core/compiler.py:505: in _compile_bytecode
    return self._compile_core()
           ^^^^^^^^^^^^^^^^^^^^
../../.conda/envs/tardis-test-fa4c4ea9/lib/python3.13/site-packages/numba/core/compiler.py:484: in _compile_core
    raise e
../../.conda/envs/tardis-test-fa4c4ea9/lib/python3.13/site-packages/numba/core/compiler.py:473: in _compile_core
    pm.run(self.state)
../../.conda/envs/tardis-test-fa4c4ea9/lib/python3.13/site-packages/numba/core/compiler_machinery.py:367: in run
    raise patched_exception
../../.conda/envs/tardis-test-fa4c4ea9/lib/python3.13/site-packages/numba/core/compiler_machinery.py:356: in run
    self._runPass(idx, pass_inst, state)
../../.conda/envs/tardis-test-fa4c4ea9/lib/python3.13/site-packages/numba/core/compiler_lock.py:35: in _acquire_compile_lock
    return func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^
../../.conda/envs/tardis-test-fa4c4ea9/lib/python3.13/site-packages/numba/core/compiler_machinery.py:311: in _runPass
    mutated |= check(pss.run_pass, internal_state)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
../../.conda/envs/tardis-test-fa4c4ea9/lib/python3.13/site-packages/numba/core/compiler_machinery.py:272: in check
    mangled = func(compiler_state)
              ^^^^^^^^^^^^^^^^^^^^
../../.conda/envs/tardis-test-fa4c4ea9/lib/python3.13/site-packages/numba/core/typed_passes.py:112: in run_pass
    typemap, return_type, calltypes, errs = type_inference_stage(
../../.conda/envs/tardis-test-fa4c4ea9/lib/python3.13/site-packages/numba/core/typed_passes.py:93: in type_inference_stage
    errs = infer.propagate(raise_errors=raise_errors)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <numba.core.typeinfer.TypeInferer object at 0x7058840bc940>
raise_errors = True

    def propagate(self, raise_errors=True):
        newtoken = self.get_state_token()
        oldtoken = None
        # Since the number of types are finite, the typesets will eventually
        # stop growing.

        while newtoken != oldtoken:
            self.debug.propagate_started()
            oldtoken = newtoken
            # Errors can appear when the type set is incomplete; only
            # raise them when there is no progress anymore.
            errors = self.constraints.propagate(self)
            newtoken = self.get_state_token()
            self.debug.propagate_finished()
        if errors:
            if raise_errors:
                force_lit_args = [e for e in errors
                                  if isinstance(e, ForceLiteralArg)]
                if not force_lit_args:
>                   raise errors[0]
E                   numba.core.errors.TypingError: Failed in cuda mode pipeline (step: nopython frontend)
E                   Failed in cuda mode pipeline (step: nopython frontend)
E                   Use of unsupported NumPy function 'numpy.exp' or unsupported use of the function.
E                   
E                   File "tardis/spectrum/formal_integral/base.py", line 104:
E                   def intensity_black_body(nu, temperature):
E                       <source elided>
E                       coefficient = 2 * H_CGS * C_INV * C_INV
E                       return coefficient * nu * nu * nu / (np.exp(H_CGS * nu * beta_rad) - 1)
E                       ^
E                   
E                   During: typing of get attribute at /home/riddhigangbhoj/tardis-work/tardis/tardis/spectrum/formal_integral/base.py (104)
E                   
E                   File "tardis/spectrum/formal_integral/base.py", line 104:
E                   def intensity_black_body(nu, temperature):
E                       <source elided>
E                       coefficient = 2 * H_CGS * C_INV * C_INV
E                       return coefficient * nu * nu * nu / (np.exp(H_CGS * nu * beta_rad) - 1)
E                       ^
E                   
E                   During: Pass nopython_type_inference
E                   During: resolving callee type: type(CUDADispatcher(<function intensity_black_body at 0x705a182ee200>))
E                   During: typing of call at /home/riddhigangbhoj/tardis-work/tardis/tardis/spectrum/formal_integral/tests/test_cuda_formal_integral.py (22)
E                   
E                   
E                   File "tardis/spectrum/formal_integral/tests/test_cuda_formal_integral.py", line 22:
E                   def black_body_caller(nu, temperature, actual):
E                       <source elided>
E                       x = cuda.grid(1)
E                       actual[x] = formal_integral_cuda.intensity_black_body_cuda(nu, temperature)
E                       ^
E                   
E                   During: Pass nopython_type_inference

../../.conda/envs/tardis-test-fa4c4ea9/lib/python3.13/site-packages/numba/core/typeinfer.py:1074: TypingError
_____________________ test_intensity_black_body_cuda[1-1] ______________________

nu = 1, temperature = 1

    @pytest.mark.skipif(
        not GPUs_available, reason="No GPU is available to test CUDA function"
    )
    @pytest.mark.parametrize(
        ["nu", "temperature"],
        [
            (1e14, 1e4),
            (0, 1),
            (1, 1),
        ],
    )
    def test_intensity_black_body_cuda(nu, temperature):
        """
        Initializes the test of the cuda version
        against the numba implementation of the
        intensity_black_body to 15 decimals. This
        is done as both results have 15 digits of precision.
        """
        actual = np.zeros(3)
>       black_body_caller[1, 3](nu, temperature, actual)

tardis/spectrum/formal_integral/tests/test_cuda_formal_integral.py:48:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
../../.conda/envs/tardis-test-fa4c4ea9/lib/python3.13/site-packages/numba/cuda/dispatcher.py:539: in __call__
    return self.dispatcher.call(args, self.griddim, self.blockdim,
../../.conda/envs/tardis-test-fa4c4ea9/lib/python3.13/site-packages/numba/cuda/dispatcher.py:681: in call
    kernel = _dispatcher.Dispatcher._cuda_call(self, *args)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
../../.conda/envs/tardis-test-fa4c4ea9/lib/python3.13/site-packages/numba/cuda/dispatcher.py:689: in _compile_for_args
    return self.compile(tuple(argtypes))
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
../../.conda/envs/tardis-test-fa4c4ea9/lib/python3.13/site-packages/numba/cuda/dispatcher.py:932: in compile
    kernel = _Kernel(self.py_func, argtypes, **self.targetoptions)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
../../.conda/envs/tardis-test-fa4c4ea9/lib/python3.13/site-packages/numba/core/compiler_lock.py:35: in _acquire_compile_lock
    return func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^
../../.conda/envs/tardis-test-fa4c4ea9/lib/python3.13/site-packages/numba/cuda/dispatcher.py:83: in __init__
    cres = compile_cuda(self.py_func, types.void, self.argtypes,
../../.conda/envs/tardis-test-fa4c4ea9/lib/python3.13/site-packages/numba/core/compiler_lock.py:35: in _acquire_compile_lock
    return func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^
../../.conda/envs/tardis-test-fa4c4ea9/lib/python3.13/site-packages/numba/cuda/compiler.py:196: in compile_cuda
    cres = compiler.compile_extra(typingctx=typingctx,
../../.conda/envs/tardis-test-fa4c4ea9/lib/python3.13/site-packages/numba/core/compiler.py:739: in compile_extra
    return pipeline.compile_extra(func)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
../../.conda/envs/tardis-test-fa4c4ea9/lib/python3.13/site-packages/numba/core/compiler.py:439: in compile_extra
    return self._compile_bytecode()
           ^^^^^^^^^^^^^^^^^^^^^^^^
../../.conda/envs/tardis-test-fa4c4ea9/lib/python3.13/site-packages/numba/core/compiler.py:505: in _compile_bytecode
    return self._compile_core()
           ^^^^^^^^^^^^^^^^^^^^
../../.conda/envs/tardis-test-fa4c4ea9/lib/python3.13/site-packages/numba/core/compiler.py:484: in _compile_core
    raise e
../../.conda/envs/tardis-test-fa4c4ea9/lib/python3.13/site-packages/numba/core/compiler.py:473: in _compile_core
    pm.run(self.state)
../../.conda/envs/tardis-test-fa4c4ea9/lib/python3.13/site-packages/numba/core/compiler_machinery.py:367: in run
    raise patched_exception
../../.conda/envs/tardis-test-fa4c4ea9/lib/python3.13/site-packages/numba/core/compiler_machinery.py:356: in run
    self._runPass(idx, pass_inst, state)
../../.conda/envs/tardis-test-fa4c4ea9/lib/python3.13/site-packages/numba/core/compiler_lock.py:35: in _acquire_compile_lock
    return func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^
../../.conda/envs/tardis-test-fa4c4ea9/lib/python3.13/site-packages/numba/core/compiler_machinery.py:311: in _runPass
    mutated |= check(pss.run_pass, internal_state)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
../../.conda/envs/tardis-test-fa4c4ea9/lib/python3.13/site-packages/numba/core/compiler_machinery.py:272: in check
    mangled = func(compiler_state)
              ^^^^^^^^^^^^^^^^^^^^
../../.conda/envs/tardis-test-fa4c4ea9/lib/python3.13/site-packages/numba/core/typed_passes.py:112: in run_pass
    typemap, return_type, calltypes, errs = type_inference_stage(
../../.conda/envs/tardis-test-fa4c4ea9/lib/python3.13/site-packages/numba/core/typed_passes.py:93: in type_inference_stage
    errs = infer.propagate(raise_errors=raise_errors)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <numba.core.typeinfer.TypeInferer object at 0x7059d9e342c0>
raise_errors = True

    def propagate(self, raise_errors=True):
        newtoken = self.get_state_token()
        oldtoken = None
        # Since the number of types are finite, the typesets will eventually
        # stop growing.

        while newtoken != oldtoken:
            self.debug.propagate_started()
            oldtoken = newtoken
            # Errors can appear when the type set is incomplete; only
            # raise them when there is no progress anymore.
            errors = self.constraints.propagate(self)
            newtoken = self.get_state_token()
            self.debug.propagate_finished()
        if errors:
            if raise_errors:
                force_lit_args = [e for e in errors
                                  if isinstance(e, ForceLiteralArg)]
                if not force_lit_args:
>                   raise errors[0]
E                   numba.core.errors.TypingError: Failed in cuda mode pipeline (step: nopython frontend)
E                   Failed in cuda mode pipeline (step: nopython frontend)
E                   Use of unsupported NumPy function 'numpy.exp' or unsupported use of the function.
E                   
E                   File "tardis/spectrum/formal_integral/base.py", line 104:
E                   def intensity_black_body(nu, temperature):
E                       <source elided>
E                       coefficient = 2 * H_CGS * C_INV * C_INV
E                       return coefficient * nu * nu * nu / (np.exp(H_CGS * nu * beta_rad) - 1)
E                       ^
E                   
E                   During: typing of get attribute at /home/riddhigangbhoj/tardis-work/tardis/tardis/spectrum/formal_integral/base.py (104)
E                   
E                   File "tardis/spectrum/formal_integral/base.py", line 104:
E                   def intensity_black_body(nu, temperature):
E                       <source elided>
E                       coefficient = 2 * H_CGS * C_INV * C_INV
E                       return coefficient * nu * nu * nu / (np.exp(H_CGS * nu * beta_rad) - 1)
E                       ^
E                   
E                   During: Pass nopython_type_inference
E                   During: resolving callee type: type(CUDADispatcher(<function intensity_black_body at 0x705a182ee200>))
E                   During: typing of call at /home/riddhigangbhoj/tardis-work/tardis/tardis/spectrum/formal_integral/tests/test_cuda_formal_integral.py (22)
E                   
E                   
E                   File "tardis/spectrum/formal_integral/tests/test_cuda_formal_integral.py", line 22:
E                   def black_body_caller(nu, temperature, actual):
E                       <source elided>
E                       x = cuda.grid(1)
E                       actual[x] = formal_integral_cuda.intensity_black_body_cuda(nu, temperature)
E                       ^
E                   
E                   During: Pass nopython_type_inference

../../.conda/envs/tardis-test-fa4c4ea9/lib/python3.13/site-packages/numba/core/typeinfer.py:1074: TypingError
_____________________ test_full_formal_integral[200000-5] ______________________

no_of_packets = 200000, iterations = 5
config_verysimple = {'tardis_config_version': 'v1.0', 'supernova': {'luminosity_requested': <Quantity 1.07688e+36 W>, 'time_explosion': <Q...: {'points': 1000, 'interpolate_shells': 0, 'compute': 'CPU'}}, 'config_dirname': 'tardis/io/configuration/tests/data'}
simulation_verysimple = <tardis.simulation.base.Simulation object at 0x7059ec0daf90>

    @pytest.mark.skipif(
        not GPUs_available, reason="No GPU is available to test CUDA function"
    )
    @pytest.mark.parametrize(["no_of_packets", "iterations"], [(200000, 5)])
    def test_full_formal_integral(
        no_of_packets, iterations, config_verysimple, simulation_verysimple
    ):
        """
        This function initializes both the cuda and numba formal_integrator,
        and the runs them and compares results to the 15th decimal place.
        This is done as both results have 15 digits of precision.
        """
        sim = simulation_verysimple

        formal_integrator_numba = FormalIntegrator(
            sim.simulation_state, sim.plasma, sim.transport
        )

        formal_integrator_cuda = FormalIntegrator(
            sim.simulation_state, sim.plasma, sim.transport
        )

        # The function calculate_spectrum sets this property, but in order to test the CUDA.
        # version it is done manually, as well as to speed up the test.
        formal_integrator_numba.interpolate_shells = max(
            2 * formal_integrator_numba.simulation_state.no_of_shells, 80
        )

        formal_integrator_cuda.interpolate_shells = max(
            2 * formal_integrator_cuda.simulation_state.no_of_shells, 80
        )

>       res_numba = make_source_function(
            formal_integrator_numba.simulation_state,
            formal_integrator_numba.plasma,
            formal_integrator_numba.transport,
            formal_integrator_numba.interpolate_shells
        )

tardis/spectrum/formal_integral/tests/test_cuda_formal_integral.py:329:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

simulation_state = <tardis.model.base.SimulationState object at 0x7059ebda4a70>
opacity_state = <tardis.plasma.base.BasePlasma object at 0x7059ec0d8d70>
transport = <tardis.transport.montecarlo.base.MonteCarloTransportSolver object at 0x7059ec0da510>
plasma = 80, interpolate_shells = 0

    def make_source_function(simulation_state, opacity_state, transport, plasma, interpolate_shells=0):
        """
        Calculates the source function using the line absorption rate estimator `Edotlu_estimator`

        Formally it calculates the expression ( 1 - exp(-tau_ul) ) S_ul but this product is what we need later,
        so there is no need to factor out the source function explicitly.
        Parameters
        ----------
        simulation_state : tardis.model.SimulationState
        opacity_state : tardis.opacity.OpacityStateNumba
        transport : tardis.transport.montecarlo.MonteCarloTransportSolver
        plasma : tardis.plasma.BasePlasma
        interpolate_shells : int
            Number of shells to interpolate to. If set to 0, no interpolation is performed.

        Returns
        -------
        Numpy array containing ( 1 - exp(-tau_ul) ) S_ul ordered by wavelength of the transition u -> l
        """

        montecarlo_transport_state = transport.transport_state
>       atomic_data = plasma.atomic_data
                      ^^^^^^^^^^^^^^^^^^
E       AttributeError: 'int' object has no attribute 'atomic_data'

tardis/spectrum/formal_integral/base.py:128: AttributeError
=========================== short test summary info ============================
FAILED tardis/spectrum/formal_integral/tests/test_cuda_formal_integral.py::test_intensity_black_body_cuda[100000000000000.0-10000.0] - numba.core.errors.TypingError: Failed in cuda mode pipeline (step: nopython...
FAILED tardis/spectrum/formal_integral/tests/test_cuda_formal_integral.py::test_intensity_black_body_cuda[0-1] - numba.core.errors.TypingError: Failed in cuda mode pipeline (step: nopython...
FAILED tardis/spectrum/formal_integral/tests/test_cuda_formal_integral.py::test_intensity_black_body_cuda[1-1] - numba.core.errors.TypingError: Failed in cuda mode pipeline (step: nopython...
FAILED tardis/spectrum/formal_integral/tests/test_cuda_formal_integral.py::test_full_formal_integral[200000-5] - AttributeError: 'int' object has no attribute 'atomic_data'
= 4 failed, 648 passed, 125 skipped, 2 deselected, 22 xfailed, 8 xpassed, 344 warnings, 1041 regression data written in 795.53s (0:13:15) =


ERROR:tardisbase.testing.regression_comparison.run_tests:Stderr:
Packets:   ████████████████████████████████████████████████████████████████████

Iterations:

ERROR conda.cli.main_run:execute(127): `conda run python -m pytest tardis --tardis-regression-data=/home/riddhigangbhoj/tardis-work/tardis-regression-data --generate-reference --disable-warnings -m not continuum` failed. (See above for error)

INFO:tardisbase.testing.regression_comparison.run_tests:
=== Phase 2: Running 'continuum' tests for commit fa4c4ea98055ea3bef24d69feba26fb5f74c2ddf ===
INFO:tardisbase.testing.regression_comparison.run_tests:Running continuum tests: conda run -n tardis-test-fa4c4ea9 python -m pytest tardis --tardis-regression-data=/home/riddhigangbhoj/tardis-work/tardis-regression-data --generate-reference --disable-warnings -m continuum
WARNING:tardisbase.testing.regression_comparison.run_tests:Tests completed with some failures for commit fa4c4ea98055ea3bef24d69feba26fb5f74c2ddf, but regression data was generated
INFO:tardisbase.testing.regression_comparison.run_tests:
Processed Tardis Commits:
INFO:tardisbase.testing.regression_comparison.run_tests:701bb18916886ecf2797b0dda4843750f69592da
INFO:tardisbase.testing.regression_comparison.run_tests:ce43cec0fa5d9255108c90c84659c71d34fb1c26
INFO:tardisbase.testing.regression_comparison.run_tests:fa4c4ea98055ea3bef24d69feba26fb5f74c2ddf
INFO:tardisbase.testing.regression_comparison.run_tests:
Regression Data Commits:
INFO:tardisbase.testing.regression_comparison.run_tests:6483eafe2755ef870ef8c5a2b01d58b306818908
INFO:tardisbase.testing.regression_comparison.run_tests:2cbdeaf2c183d49707ac09428e70a5c761171bed
INFO:tardisbase.testing.regression_comparison.run_tests:77c99381b26b0a1cd453f81fedf92febefa4bc2f

Case 2: Test specific TARDIS commits

Important Note:

  1. Comment out n from config

  2. commits_input is list of commits hashes from config

  3. If tardis commits provided are [1,2,3,4] then the comparison would be [“2-1”,”3-2”,”4-3”] of the respective regression commits. So, make the list accordingly.

  4. To forcely recreate new enviornment each time even when enviornment already exist, do force_recreate as True

  5. Either provide entire “tardis” module or selective path like “tardis/spectrum/tests/test_spectrum_solver.py” in test_path

  6. Provide path to default current enviornment in default_curr_env

  7. If you want to use default current enviornment only without creating new enviornment each time, do use_new_envs as False.

[ ]:
# processed_commits, regression_commits, original_head = run_tests(
#     **config,
#     commits_input=config["commits"],
#     conda_manager=config["conda_manager"],
#     force_recreate=True,
#     test_path="tardis/spectrum/tests/test_spectrum_solver.py",
#     default_curr_env="/home/riddhigangbhoj/miniforge3/envs/tardis-master",
#     use_new_envs=True
# )

Method 2: Use existing regression data commits

A. Manual Commit Selection

Note:

  1. No need to run pytest for this.

  2. If commits provided are [1,2,3,4] then the comparison would be [“2-1”,”3-2”,”4-3”]. So, make the list accordingly.

[ ]:
# regression_commits = ["66a96a847c873544babb7bf934040c86433a5962",
#                       "d12d869bd2bb2038c9090852ee9ef998959f412d",
#                       "b008a7180440a697ad5b54a9f77b692d4f71b120",
#                       "a2a946a43d710c44bb3b08bcae69359fe13ed032",
#                       "9404dc594563d9457e3ba91fcaa8400cae231801"]

B. Automatically fetch the most recent N commits from regression data repository

Note:

  1. No need to run pytest for this.

  2. Set n to the number of recent regression commits you want to fetch.

[ ]:
# regression_commits = get_last_n_commits(n=2, repo_path=config["regression_data_repo_path"])
# regression_commits

Visualize File Changes

Create a visualizer object to analyze file changes across commits. Note:

  1. Uncomment and set file_extensions to any type of file type to filter specific files.

  2. Choose compare_function of your choice either “git_diff” or “cmd_diff”

    • ‘git_diff’: Uses git’s built-in diff functionality to compare files directly within the repository.

    • ‘cmd_diff’: Extracts files to temporary locations and uses the system’s diff command.

Case 1: Direct regression data commits (no TARDIS commits)

Use when you are directly providing regression commits.

[ ]:
# visualizer = MultiCommitCompare(
#     regression_repo_path=config["regression_data_repo_path"],
#     commits=regression_commits,
#     # file_extensions=('.h5', '.hdf5') # Uncomment to filter specific files
#     compare_function="git_diff"
# )

Case 2: Regression data commits generated from TARDIS commits

Use when you are providing tardis comits. Note:

  1. These regression commits are false commits(created just for testing).

[5]:
visualizer = MultiCommitCompare(
    regression_repo_path=config["regression_data_repo_path"],
    commits=regression_commits,
    tardis_commits=processed_commits,
    tardis_repo_path=config["tardis_repo_path"],
    # file_extensions=('.h5', '.hdf5') # Uncomment to filter specific files
    compare_function="git_diff"
)

Analyze the commits

[6]:
visualizer.analyze_commits()
Analyzing 3 commits (2 transitions)...
Processing transition 1/2: 2cbdea-6483ea
Processing transition 2/2: 77c993-2cbdea
Found 339 total files across all transitions.

Display the file change matrix

[7]:
commit_info, legend, matrix = visualizer.get_analysis_results()

This displays the description of commits which are used to analyze differences.

Note:

  1. The false commits generated from tardis commits uses description of tardis commits with prefix “Regression data for –”

  2. Directly provided regression commit uses its description as it is.

  3. Description contains first 60 characters of the actual message.

  4. Commit hashes printed are shortened to 6 characters.

[8]:
commit_info
[8]:
Commit # Regression Hash (first 6 chars) Description (first 60 chars) Date
0 1 6483ea Regression data for --Relativity BugFix [2] (#3176) 2025-08-06 06:18
1 2 2cbdea Regression data for --add from workflow method to sdec and liv plot (#3198) 2025-08-06 06:42
2 3 77c993 Regression data for --Post-release 2025.07.20 (#3201) 2025-08-06 07:05

Display legend

[9]:
legend
[9]:
A          Added
D        Deleted
M       Modified
•      Unchanged
−    Not-Present
Name: Legend, dtype: object

The matrix below shows file changes across commit transitions.

Each row represents a file, and each column represents a commit transition (e.g., “2cbdea-6483ea” means changes from commit 2cbdea to 6483ea).

Note: This transition prints only first 6 characters of each commits (e.g., “0d62366668e7c74d01fc56e8120ae228564eb256” is shortened to “0d6236”).

[10]:
matrix
[10]:
Files 2cbdea-6483ea 77c993-2cbdea
0 .gitattributes
1 .github/actions/setup_env/action.yml
2 .github/workflows/run-notebook.yml
3 .github/workflows/trigger-lfs-cache.yml
4 .gitignore
5 LICENSE
6 __init__.py
7 arepo_data/arepo_snapshot.hdf5
8 arepo_data/arepo_snapshot.json
9 atom_data/chianti_He.h5
10 atom_data/kurucz_atom_chianti_many.h5
11 atom_data/kurucz_cd23_chianti_H_He.h5
12 atom_data/kurucz_cd23_chianti_H_He_latest.h5
13 atom_data/kurucz_cd23_chianti_Si.h5
14 atom_data/new_kurucz_cd23_chianti_H_He.h5
15 atom_data/nlte_atom_data/TestNLTE_He_Ti.h5
16 atom_data/stardis_atom_data/tardis_adata_vald_longlist.hdf
17 atom_data/stardis_atom_data/tardis_adata_vald_shortlist.hdf
18 compare.py
19 compare_regression_data.ipynb
20 tardis/energy_input/tests/test_gamma_ray_packet_source_minimal/test_gamma_ray_packet_properties__direction__.npy
21 tardis/energy_input/tests/test_gamma_ray_packet_source_minimal/test_gamma_ray_packet_properties__energy_cmf__.npy
22 tardis/energy_input/tests/test_gamma_ray_packet_source_minimal/test_gamma_ray_packet_properties__energy_rf__.npy
23 tardis/energy_input/tests/test_gamma_ray_packet_source_minimal/test_gamma_ray_packet_properties__location__.npy
24 tardis/energy_input/tests/test_gamma_ray_packet_source_minimal/test_gamma_ray_packet_properties__nu_cmf__.npy
25 tardis/energy_input/tests/test_gamma_ray_packet_source_minimal/test_gamma_ray_packet_properties__nu_rf__.npy
26 tardis/energy_input/tests/test_gamma_ray_packet_source_minimal/test_gamma_ray_packet_properties__shell__.npy
27 tardis/energy_input/tests/test_gamma_ray_packet_source_minimal/test_gamma_ray_packet_properties__status__.npy
28 tardis/energy_input/tests/test_gamma_ray_packet_source_minimal/test_gamma_ray_packet_properties__time_index__.npy
29 tardis/energy_input/tests/test_gamma_ray_packet_source_minimal/test_gamma_ray_packet_properties__time_start__.npy
30 tardis/opacities/tests/test_opacity_solver/test_new_macro_atom_solver__downbranch-False__.h5 M M
31 tardis/opacities/tests/test_opacity_solver/test_new_macro_atom_solver__downbranch-True__.h5 M M
32 tardis/opacities/tests/test_opacity_solver/test_new_macro_atom_solver__macroatom-False__.h5 M M
33 tardis/opacities/tests/test_opacity_solver/test_new_macro_atom_solver__macroatom-True__.h5 M M
34 tardis/opacities/tests/test_tau_sobolev/test_calculate_beta_sobolevs.npy
35 tardis/opacities/tests/test_tau_sobolev/test_calculate_sobolev_line_opacity.h5 M M
36 tardis/plasma/equilibrium/tests/test_level_populations/test_level_population_solver/test_solve__collisional_rate_solver0-radiative_transitions0__.h5 M M
37 tardis/plasma/equilibrium/tests/test_rate_matrix/test_rate_matrix_solver__collisional_rate_solver0-radiative_transitions0__.h5 M M
38 tardis/plasma/tests/test_complete_plasmas/test_plasma/TestPlasma.h5
39 tardis/plasma/tests/test_complete_plasmas/test_plasma/plasma_unittest_disable_electron_scattering_False.h5 M M
40 tardis/plasma/tests/test_complete_plasmas/test_plasma/plasma_unittest_disable_electron_scattering_True.h5 M M
41 tardis/plasma/tests/test_complete_plasmas/test_plasma/plasma_unittest_excitation_dilute-lte.h5 M M
42 tardis/plasma/tests/test_complete_plasmas/test_plasma/plasma_unittest_excitation_lte.h5 M M
43 tardis/plasma/tests/test_complete_plasmas/test_plasma/plasma_unittest_helium_treatment_recomb-nlte.h5 M M
44 tardis/plasma/tests/test_complete_plasmas/test_plasma/plasma_unittest_helium_treatment_recomb-nlte_delta_treatment_0.5.h5 M M
45 tardis/plasma/tests/test_complete_plasmas/test_plasma/plasma_unittest_initial_t_inner_10000 K.h5 M M
46 tardis/plasma/tests/test_complete_plasmas/test_plasma/plasma_unittest_initial_t_rad_10000 K.h5 M M
47 tardis/plasma/tests/test_complete_plasmas/test_plasma/plasma_unittest_ionization_lte.h5 M M
48 tardis/plasma/tests/test_complete_plasmas/test_plasma/plasma_unittest_ionization_nebular.h5 M M
49 tardis/plasma/tests/test_complete_plasmas/test_plasma/plasma_unittest_line_interaction_type_downbranch.h5 M M
50 tardis/plasma/tests/test_complete_plasmas/test_plasma/plasma_unittest_line_interaction_type_macroatom.h5 M M
51 tardis/plasma/tests/test_complete_plasmas/test_plasma/plasma_unittest_line_interaction_type_scatter.h5 M M
52 tardis/plasma/tests/test_complete_plasmas/test_plasma/plasma_unittest_nlte.h5 M M
53 tardis/plasma/tests/test_complete_plasmas/test_plasma/plasma_unittest_nlte_classical_nebular.h5 M M
54 tardis/plasma/tests/test_complete_plasmas/test_plasma/plasma_unittest_nlte_coronal_approximation.h5 M M
55 tardis/plasma/tests/test_complete_plasmas/test_plasma/plasma_unittest_radiative_rates_type_blackbody.h5 M M
56 tardis/plasma/tests/test_complete_plasmas/test_plasma/plasma_unittest_radiative_rates_type_detailed.h5 M M
57 tardis/plasma/tests/test_complete_plasmas/test_plasma/plasma_unittest_radiative_rates_type_detailed_w_epsilon_1e-10.h5 M M
58 tardis/plasma/tests/test_complete_plasmas/test_plasma/plasma_unittest_radiative_rates_type_dilute-blackbody.h5 M M
59 tardis/plasma/tests/test_hdf_plasma/test_atomic_data_uuid.txt
60 tardis/plasma/tests/test_hdf_plasma/test_collection__density__.npy
61 tardis/plasma/tests/test_hdf_plasma/test_collection__t_rad__.npy
62 tardis/plasma/tests/test_hdf_plasma/test_collection__w__.npy
63 tardis/plasma/tests/test_hdf_plasma/test_hdf_helium_treatment.txt
64 tardis/plasma/tests/test_hdf_plasma/test_hdf_levels.h5 M M
65 tardis/plasma/tests/test_hdf_plasma/test_hdf_plasma__abundance__.npy
66 tardis/plasma/tests/test_hdf_plasma/test_hdf_plasma__atomic_mass__.npy
67 tardis/plasma/tests/test_hdf_plasma/test_hdf_plasma__beta_rad__.npy
68 tardis/plasma/tests/test_hdf_plasma/test_hdf_plasma__beta_sobolev__.npy
69 tardis/plasma/tests/test_hdf_plasma/test_hdf_plasma__density__.npy
70 tardis/plasma/tests/test_hdf_plasma/test_hdf_plasma__electron_densities__.npy
71 tardis/plasma/tests/test_hdf_plasma/test_hdf_plasma__excitation_energy__.npy
72 tardis/plasma/tests/test_hdf_plasma/test_hdf_plasma__f_lu__.npy
73 tardis/plasma/tests/test_hdf_plasma/test_hdf_plasma__g__.npy
74 tardis/plasma/tests/test_hdf_plasma/test_hdf_plasma__g_electron__.npy
75 tardis/plasma/tests/test_hdf_plasma/test_hdf_plasma__general_level_boltzmann_factor__.npy
76 tardis/plasma/tests/test_hdf_plasma/test_hdf_plasma__ion_number_density__.npy
77 tardis/plasma/tests/test_hdf_plasma/test_hdf_plasma__ionization_data__.npy
78 tardis/plasma/tests/test_hdf_plasma/test_hdf_plasma__j_blues__.npy
79 tardis/plasma/tests/test_hdf_plasma/test_hdf_plasma__level_boltzmann_factor__.npy
80 tardis/plasma/tests/test_hdf_plasma/test_hdf_plasma__level_number_density__.npy
81 tardis/plasma/tests/test_hdf_plasma/test_hdf_plasma__lines__.npy
82 tardis/plasma/tests/test_hdf_plasma/test_hdf_plasma__lines_lower_level_index__.npy
83 tardis/plasma/tests/test_hdf_plasma/test_hdf_plasma__lines_upper_level_index__.npy
84 tardis/plasma/tests/test_hdf_plasma/test_hdf_plasma__metastability__.npy
85 tardis/plasma/tests/test_hdf_plasma/test_hdf_plasma__nu__.npy
86 tardis/plasma/tests/test_hdf_plasma/test_hdf_plasma__number_density__.npy
87 tardis/plasma/tests/test_hdf_plasma/test_hdf_plasma__partition_function__.npy
88 tardis/plasma/tests/test_hdf_plasma/test_hdf_plasma__phi__.npy
89 tardis/plasma/tests/test_hdf_plasma/test_hdf_plasma__selected_atoms__.npy
90 tardis/plasma/tests/test_hdf_plasma/test_hdf_plasma__stimulated_emission_factor__.npy
91 tardis/plasma/tests/test_hdf_plasma/test_hdf_plasma__t_electrons__.npy
92 tardis/plasma/tests/test_hdf_plasma/test_hdf_plasma__t_rad__.npy
93 tardis/plasma/tests/test_hdf_plasma/test_hdf_plasma__tau_sobolevs__.npy
94 tardis/plasma/tests/test_hdf_plasma/test_hdf_plasma__transition_probabilities__.npy
95 tardis/plasma/tests/test_hdf_plasma/test_hdf_plasma__w__.npy
96 tardis/plasma/tests/test_hdf_plasma/test_hdf_plasma__wavelength_cm__.npy
97 tardis/plasma/tests/test_hdf_plasma/test_hdf_scalars__link_t_rad_t_electron__.npy
98 tardis/plasma/tests/test_hdf_plasma/test_hdf_scalars__time_explosion__.npy
99 tardis/plasma/tests/test_nlte_excitation/test_coll_exc_deexc_matrix__coll_exc_coeff_values0-coll_deexc_coeff_values0-3__.npy
100 tardis/plasma/tests/test_nlte_excitation/test_coll_exc_deexc_matrix__coll_exc_coeff_values1-coll_deexc_coeff_values1-3__.npy
101 tardis/plasma/tests/test_nlte_excitation/test_prepare_bound_bound_rate_matrix.npy
102 tardis/plasma/tests/test_nlte_solver/test_jacobian_matrix.npy
103 tardis/plasma/tests/test_nlte_solver/test_rate_matrix.npy
104 tardis/plasma/tests/test_plasma_continuum/test_exp1_times_exp.npy
105 tardis/plasma/tests/test_tardis_model_density_config/test_electron_densities.npy
106 tardis/plasma/tests/test_tardis_model_density_config/test_isotope_number_densities.h5 M M
107 tardis/plasma/tests/test_tardis_model_density_config/test_t_rad.npy
108 tardis/simulation/tests/test_simulation/test_plasma_estimates__dilution_factor__.h5 M M
109 tardis/simulation/tests/test_simulation/test_plasma_estimates__j_estimator__.h5 M M
110 tardis/simulation/tests/test_simulation/test_plasma_estimates__nu_bar_estimator__.h5 M M
111 tardis/simulation/tests/test_simulation/test_plasma_estimates__output_energies__.h5 M M
112 tardis/simulation/tests/test_simulation/test_plasma_estimates__output_nus__.h5 M M
113 tardis/simulation/tests/test_simulation/test_plasma_estimates__t_radiative__.h5 M M
114 tardis/simulation/tests/test_simulation/test_plasma_state_iterations__iterations_electron_densities__.h5 M M
115 tardis/simulation/tests/test_simulation/test_plasma_state_iterations__iterations_t_inner__.h5 M M
116 tardis/simulation/tests/test_simulation/test_plasma_state_iterations__iterations_t_rad__.h5 M M
117 tardis/simulation/tests/test_simulation/test_plasma_state_iterations__iterations_w__.h5 M M
118 tardis/spectrum/formal_integral/tests/test_source_function/test_Jblue_lu.npy
119 tardis/spectrum/formal_integral/tests/test_source_function/test_Jred_lu.npy
120 tardis/spectrum/formal_integral/tests/test_source_function/test_att_S_ul.npy
121 tardis/spectrum/formal_integral/tests/test_source_function/test_e_dot_u.npy
122 tardis/spectrum/tests/test_spectrum_solver/test_spectrum_solver/TestSpectrumSolver.h5 M M
123 tardis/tests/test_tardis_full/test_transport_simple/TestTransportSimple.h5 M M
124 tardis/tests/test_tardis_full_formal_integral/test_transport_simple_formal_integral/test_j_blue_estimators__-1-downbranch__.npy
125 tardis/tests/test_tardis_full_formal_integral/test_transport_simple_formal_integral/test_j_blue_estimators__-1-macroatom__.npy
126 tardis/tests/test_tardis_full_formal_integral/test_transport_simple_formal_integral/test_j_blue_estimators__30-downbranch__.npy
127 tardis/tests/test_tardis_full_formal_integral/test_transport_simple_formal_integral/test_j_blue_estimators__30-macroatom__.npy
128 tardis/tests/test_tardis_full_formal_integral/test_transport_simple_formal_integral/test_simulation__-1-downbranch__.h5 M M
129 tardis/tests/test_tardis_full_formal_integral/test_transport_simple_formal_integral/test_simulation__-1-macroatom__.h5 M M
130 tardis/tests/test_tardis_full_formal_integral/test_transport_simple_formal_integral/test_simulation__30-downbranch__.h5 M M
131 tardis/tests/test_tardis_full_formal_integral/test_transport_simple_formal_integral/test_simulation__30-macroatom__.h5 M M
132 tardis/tests/test_tardis_full_formal_integral/test_transport_simple_formal_integral/test_spectrum__-1-downbranch__.npy
133 tardis/tests/test_tardis_full_formal_integral/test_transport_simple_formal_integral/test_spectrum__-1-macroatom__.npy
134 tardis/tests/test_tardis_full_formal_integral/test_transport_simple_formal_integral/test_spectrum__30-downbranch__.npy
135 tardis/tests/test_tardis_full_formal_integral/test_transport_simple_formal_integral/test_spectrum__30-macroatom__.npy
136 tardis/tests/test_tardis_full_formal_integral/test_transport_simple_formal_integral/test_spectrum_integrated__-1-downbranch__.npy
137 tardis/tests/test_tardis_full_formal_integral/test_transport_simple_formal_integral/test_spectrum_integrated__-1-macroatom__.npy
138 tardis/tests/test_tardis_full_formal_integral/test_transport_simple_formal_integral/test_spectrum_integrated__30-downbranch__.npy
139 tardis/tests/test_tardis_full_formal_integral/test_transport_simple_formal_integral/test_spectrum_integrated__30-macroatom__.npy
140 tardis/transport/montecarlo/tests/test_continuum/test_montecarlo_continuum.h5 M M
141 tardis/transport/montecarlo/tests/test_montecarlo_main_loop/test_montecarlo_main_loop.h5 M M
142 tardis/transport/montecarlo/tests/test_montecarlo_main_loop/test_montecarlo_main_loop_vpacket_log.h5 M M
143 tardis/transport/montecarlo/tests/test_packet_source/test_black_body_simple_source/test_bb_attributes.h5 M M
144 tardis/transport/montecarlo/tests/test_packet_source/test_black_body_simple_source/test_bb_energies.npy
145 tardis/transport/montecarlo/tests/test_packet_source/test_black_body_simple_source/test_bb_mus.npy
146 tardis/transport/montecarlo/tests/test_packet_source/test_black_body_simple_source/test_bb_nus.npy
147 tardis/transport/montecarlo/tests/test_packet_source/test_black_body_simple_source_rel/test_bb_attributes.h5 M M
148 tardis/transport/montecarlo/tests/test_packet_source/test_black_body_simple_source_rel/test_bb_energies.npy
149 tardis/transport/montecarlo/tests/test_packet_source/test_black_body_simple_source_rel/test_bb_mus.npy
150 tardis/transport/montecarlo/tests/test_packet_source/test_black_body_simple_source_rel/test_bb_nus.npy
151 tardis/transport/montecarlo/tests/test_rpacket_tracker/test_boundary_interactions.npy
152 tardis/transport/montecarlo/tests/test_weighted_packet_source/test_black_body_weighted_source/test_bb_attributes.h5 M M
153 tardis/transport/montecarlo/tests/test_weighted_packet_source/test_black_body_weighted_source/test_bb_energies.npy
154 tardis/transport/montecarlo/tests/test_weighted_packet_source/test_black_body_weighted_source/test_bb_mus.npy
155 tardis/transport/montecarlo/tests/test_weighted_packet_source/test_black_body_weighted_source/test_bb_nus.npy
156 tardis/visualization/tests/test_plot_util/test_plot_util/test_create_wavelength_mask__real__.h5 M M
157 tardis/visualization/tests/test_plot_util/test_plot_util/test_create_wavelength_mask__virtual__.h5 M M
158 tardis/visualization/tools/tests/test_lineid_plotter/test_lineid_plotter__wavelengths0-labels0-top__.png
159 tardis/visualization/tools/tests/test_lineid_plotter/test_lineid_plotter__wavelengths1-labels1-inside__.png
160 tardis/visualization/tools/tests/test_lineid_plotter/test_lineid_plotter__wavelengths2-labels2-along__.png
161 tardis/visualization/tools/tests/test_liv_plot/test_liv_plotter/test_generate_plot_mpl__plotter_generate_plot_mpl0__.h5 M M
162 tardis/visualization/tools/tests/test_liv_plot/test_liv_plotter/test_generate_plot_mpl__plotter_generate_plot_mpl1__.h5 M M
163 tardis/visualization/tools/tests/test_liv_plot/test_liv_plotter/test_generate_plot_mpl__plotter_generate_plot_mpl2__.h5 M M
164 tardis/visualization/tools/tests/test_liv_plot/test_liv_plotter/test_generate_plot_mpl__plotter_generate_plot_mpl3__.h5 M M
165 tardis/visualization/tools/tests/test_liv_plot/test_liv_plotter/test_generate_plot_mpl__plotter_generate_plot_mpl4__.h5 M M
166 tardis/visualization/tools/tests/test_liv_plot/test_liv_plotter/test_generate_plot_mpl__plotter_generate_plot_mpl5__.h5 M M
167 tardis/visualization/tools/tests/test_liv_plot/test_liv_plotter/test_generate_plot_mpl__plotter_generate_plot_mpl6__.h5 M M
168 tardis/visualization/tools/tests/test_liv_plot/test_liv_plotter/test_generate_plot_mpl__plotter_generate_plot_mpl7__.h5 M M
169 tardis/visualization/tools/tests/test_liv_plot/test_liv_plotter/test_generate_plot_ply__plotter_generate_plot_ply0__.h5 M M
170 tardis/visualization/tools/tests/test_liv_plot/test_liv_plotter/test_generate_plot_ply__plotter_generate_plot_ply1__.h5 M M
171 tardis/visualization/tools/tests/test_liv_plot/test_liv_plotter/test_generate_plot_ply__plotter_generate_plot_ply2__.h5 M M
172 tardis/visualization/tools/tests/test_liv_plot/test_liv_plotter/test_generate_plot_ply__plotter_generate_plot_ply3__.h5 M M
173 tardis/visualization/tools/tests/test_liv_plot/test_liv_plotter/test_generate_plot_ply__plotter_generate_plot_ply4__.h5 M M
174 tardis/visualization/tools/tests/test_liv_plot/test_liv_plotter/test_generate_plot_ply__plotter_generate_plot_ply5__.h5 M M
175 tardis/visualization/tools/tests/test_liv_plot/test_liv_plotter/test_generate_plot_ply__plotter_generate_plot_ply6__.h5 M M
176 tardis/visualization/tools/tests/test_liv_plot/test_liv_plotter/test_generate_plot_ply__plotter_generate_plot_ply7__.h5 M M
177 tardis/visualization/tools/tests/test_liv_plot/test_liv_plotter/test_mpl_image__plotter_generate_plot_mpl0__.png
178 tardis/visualization/tools/tests/test_liv_plot/test_liv_plotter/test_mpl_image__plotter_generate_plot_mpl1__.png
179 tardis/visualization/tools/tests/test_liv_plot/test_liv_plotter/test_mpl_image__plotter_generate_plot_mpl2__.png
180 tardis/visualization/tools/tests/test_liv_plot/test_liv_plotter/test_mpl_image__plotter_generate_plot_mpl3__.png
181 tardis/visualization/tools/tests/test_liv_plot/test_liv_plotter/test_mpl_image__plotter_generate_plot_mpl4__.png
182 tardis/visualization/tools/tests/test_liv_plot/test_liv_plotter/test_mpl_image__plotter_generate_plot_mpl5__.png
183 tardis/visualization/tools/tests/test_liv_plot/test_liv_plotter/test_mpl_image__plotter_generate_plot_mpl6__.png
184 tardis/visualization/tools/tests/test_liv_plot/test_liv_plotter/test_mpl_image__plotter_generate_plot_mpl7__.png
185 tardis/visualization/tools/tests/test_liv_plot/test_liv_plotter/test_parse_species_list___keep_colour__.npy
186 tardis/visualization/tools/tests/test_liv_plot/test_liv_plotter/test_parse_species_list___species_list__.npy
187 tardis/visualization/tools/tests/test_liv_plot/test_liv_plotter/test_parse_species_list___species_mapped__.npy
188 tardis/visualization/tools/tests/test_liv_plot/test_liv_plotter/test_prepare_plot_data__plotter_prepare_plot_data0-new_bin_edges__.npy
189 tardis/visualization/tools/tests/test_liv_plot/test_liv_plotter/test_prepare_plot_data__plotter_prepare_plot_data0-plot_colors__.npy
190 tardis/visualization/tools/tests/test_liv_plot/test_liv_plotter/test_prepare_plot_data__plotter_prepare_plot_data0-plot_data__.npy
191 tardis/visualization/tools/tests/test_liv_plot/test_liv_plotter/test_prepare_plot_data__plotter_prepare_plot_data1-new_bin_edges__.npy
192 tardis/visualization/tools/tests/test_liv_plot/test_liv_plotter/test_prepare_plot_data__plotter_prepare_plot_data1-plot_colors__.npy
193 tardis/visualization/tools/tests/test_liv_plot/test_liv_plotter/test_prepare_plot_data__plotter_prepare_plot_data1-plot_data__.npy
194 tardis/visualization/tools/tests/test_liv_plot/test_liv_plotter/test_prepare_plot_data__plotter_prepare_plot_data2-new_bin_edges__.npy
195 tardis/visualization/tools/tests/test_liv_plot/test_liv_plotter/test_prepare_plot_data__plotter_prepare_plot_data2-plot_colors__.npy
196 tardis/visualization/tools/tests/test_liv_plot/test_liv_plotter/test_prepare_plot_data__plotter_prepare_plot_data2-plot_data__.npy
197 tardis/visualization/tools/tests/test_liv_plot/test_liv_plotter/test_prepare_plot_data__plotter_prepare_plot_data3-new_bin_edges__.npy
198 tardis/visualization/tools/tests/test_liv_plot/test_liv_plotter/test_prepare_plot_data__plotter_prepare_plot_data3-plot_colors__.npy
199 tardis/visualization/tools/tests/test_liv_plot/test_liv_plotter/test_prepare_plot_data__plotter_prepare_plot_data3-plot_data__.npy
200 tardis/visualization/tools/tests/test_liv_plot/test_liv_plotter/test_prepare_plot_data__plotter_prepare_plot_data4-new_bin_edges__.npy
201 tardis/visualization/tools/tests/test_liv_plot/test_liv_plotter/test_prepare_plot_data__plotter_prepare_plot_data4-plot_colors__.npy
202 tardis/visualization/tools/tests/test_liv_plot/test_liv_plotter/test_prepare_plot_data__plotter_prepare_plot_data4-plot_data__.npy
203 tardis/visualization/tools/tests/test_liv_plot/test_liv_plotter/test_prepare_plot_data__plotter_prepare_plot_data5-new_bin_edges__.npy
204 tardis/visualization/tools/tests/test_liv_plot/test_liv_plotter/test_prepare_plot_data__plotter_prepare_plot_data5-plot_colors__.npy
205 tardis/visualization/tools/tests/test_liv_plot/test_liv_plotter/test_prepare_plot_data__plotter_prepare_plot_data5-plot_data__.npy
206 tardis/visualization/tools/tests/test_liv_plot/test_liv_plotter/test_prepare_plot_data__plotter_prepare_plot_data6-new_bin_edges__.npy
207 tardis/visualization/tools/tests/test_liv_plot/test_liv_plotter/test_prepare_plot_data__plotter_prepare_plot_data6-plot_colors__.npy
208 tardis/visualization/tools/tests/test_liv_plot/test_liv_plotter/test_prepare_plot_data__plotter_prepare_plot_data6-plot_data__.npy
209 tardis/visualization/tools/tests/test_liv_plot/test_liv_plotter/test_prepare_plot_data__plotter_prepare_plot_data7-new_bin_edges__.npy
210 tardis/visualization/tools/tests/test_liv_plot/test_liv_plotter/test_prepare_plot_data__plotter_prepare_plot_data7-plot_colors__.npy
211 tardis/visualization/tools/tests/test_liv_plot/test_liv_plotter/test_prepare_plot_data__plotter_prepare_plot_data7-plot_data__.npy
212 tardis/visualization/tools/tests/test_sdec_plot/test_sdec_plotter/test_calculate_plotting_data__plotter_calculate_plotting_data0__.h5 M M
213 tardis/visualization/tools/tests/test_sdec_plot/test_sdec_plotter/test_calculate_plotting_data__plotter_calculate_plotting_data10__.h5 M M
214 tardis/visualization/tools/tests/test_sdec_plot/test_sdec_plotter/test_calculate_plotting_data__plotter_calculate_plotting_data11__.h5 M M
215 tardis/visualization/tools/tests/test_sdec_plot/test_sdec_plotter/test_calculate_plotting_data__plotter_calculate_plotting_data12__.h5 M M
216 tardis/visualization/tools/tests/test_sdec_plot/test_sdec_plotter/test_calculate_plotting_data__plotter_calculate_plotting_data13__.h5 M M
217 tardis/visualization/tools/tests/test_sdec_plot/test_sdec_plotter/test_calculate_plotting_data__plotter_calculate_plotting_data14__.h5 M M
218 tardis/visualization/tools/tests/test_sdec_plot/test_sdec_plotter/test_calculate_plotting_data__plotter_calculate_plotting_data15__.h5 M M
219 tardis/visualization/tools/tests/test_sdec_plot/test_sdec_plotter/test_calculate_plotting_data__plotter_calculate_plotting_data1__.h5 M M
220 tardis/visualization/tools/tests/test_sdec_plot/test_sdec_plotter/test_calculate_plotting_data__plotter_calculate_plotting_data2__.h5 M M
221 tardis/visualization/tools/tests/test_sdec_plot/test_sdec_plotter/test_calculate_plotting_data__plotter_calculate_plotting_data3__.h5 M M
222 tardis/visualization/tools/tests/test_sdec_plot/test_sdec_plotter/test_calculate_plotting_data__plotter_calculate_plotting_data4__.h5 M M
223 tardis/visualization/tools/tests/test_sdec_plot/test_sdec_plotter/test_calculate_plotting_data__plotter_calculate_plotting_data5__.h5 M M
224 tardis/visualization/tools/tests/test_sdec_plot/test_sdec_plotter/test_calculate_plotting_data__plotter_calculate_plotting_data6__.h5 M M
225 tardis/visualization/tools/tests/test_sdec_plot/test_sdec_plotter/test_calculate_plotting_data__plotter_calculate_plotting_data7__.h5 M M
226 tardis/visualization/tools/tests/test_sdec_plot/test_sdec_plotter/test_calculate_plotting_data__plotter_calculate_plotting_data8__.h5 M M
227 tardis/visualization/tools/tests/test_sdec_plot/test_sdec_plotter/test_calculate_plotting_data__plotter_calculate_plotting_data9__.h5 M M
228 tardis/visualization/tools/tests/test_sdec_plot/test_sdec_plotter/test_generate_plot_mpl__plotter_generate_plot_ply0__.h5 M M
229 tardis/visualization/tools/tests/test_sdec_plot/test_sdec_plotter/test_generate_plot_mpl__plotter_generate_plot_ply10__.h5 M M
230 tardis/visualization/tools/tests/test_sdec_plot/test_sdec_plotter/test_generate_plot_mpl__plotter_generate_plot_ply11__.h5 M M
231 tardis/visualization/tools/tests/test_sdec_plot/test_sdec_plotter/test_generate_plot_mpl__plotter_generate_plot_ply12__.h5 M M
232 tardis/visualization/tools/tests/test_sdec_plot/test_sdec_plotter/test_generate_plot_mpl__plotter_generate_plot_ply13__.h5 M M
233 tardis/visualization/tools/tests/test_sdec_plot/test_sdec_plotter/test_generate_plot_mpl__plotter_generate_plot_ply14__.h5 M M
234 tardis/visualization/tools/tests/test_sdec_plot/test_sdec_plotter/test_generate_plot_mpl__plotter_generate_plot_ply15__.h5 M M
235 tardis/visualization/tools/tests/test_sdec_plot/test_sdec_plotter/test_generate_plot_mpl__plotter_generate_plot_ply1__.h5 M M
236 tardis/visualization/tools/tests/test_sdec_plot/test_sdec_plotter/test_generate_plot_mpl__plotter_generate_plot_ply2__.h5 M M
237 tardis/visualization/tools/tests/test_sdec_plot/test_sdec_plotter/test_generate_plot_mpl__plotter_generate_plot_ply3__.h5 M M
238 tardis/visualization/tools/tests/test_sdec_plot/test_sdec_plotter/test_generate_plot_mpl__plotter_generate_plot_ply4__.h5 M M
239 tardis/visualization/tools/tests/test_sdec_plot/test_sdec_plotter/test_generate_plot_mpl__plotter_generate_plot_ply5__.h5 M M
240 tardis/visualization/tools/tests/test_sdec_plot/test_sdec_plotter/test_generate_plot_mpl__plotter_generate_plot_ply6__.h5 M M
241 tardis/visualization/tools/tests/test_sdec_plot/test_sdec_plotter/test_generate_plot_mpl__plotter_generate_plot_ply7__.h5 M M
242 tardis/visualization/tools/tests/test_sdec_plot/test_sdec_plotter/test_generate_plot_mpl__plotter_generate_plot_ply8__.h5 M M
243 tardis/visualization/tools/tests/test_sdec_plot/test_sdec_plotter/test_generate_plot_mpl__plotter_generate_plot_ply9__.h5 M M
244 tardis/visualization/tools/tests/test_sdec_plot/test_sdec_plotter/test_mpl_image__plotter_generate_plot_mpl0__.png
245 tardis/visualization/tools/tests/test_sdec_plot/test_sdec_plotter/test_mpl_image__plotter_generate_plot_mpl10__.png
246 tardis/visualization/tools/tests/test_sdec_plot/test_sdec_plotter/test_mpl_image__plotter_generate_plot_mpl11__.png
247 tardis/visualization/tools/tests/test_sdec_plot/test_sdec_plotter/test_mpl_image__plotter_generate_plot_mpl12__.png
248 tardis/visualization/tools/tests/test_sdec_plot/test_sdec_plotter/test_mpl_image__plotter_generate_plot_mpl13__.png
249 tardis/visualization/tools/tests/test_sdec_plot/test_sdec_plotter/test_mpl_image__plotter_generate_plot_mpl14__.png
250 tardis/visualization/tools/tests/test_sdec_plot/test_sdec_plotter/test_mpl_image__plotter_generate_plot_mpl15__.png
251 tardis/visualization/tools/tests/test_sdec_plot/test_sdec_plotter/test_mpl_image__plotter_generate_plot_mpl1__.png
252 tardis/visualization/tools/tests/test_sdec_plot/test_sdec_plotter/test_mpl_image__plotter_generate_plot_mpl2__.png
253 tardis/visualization/tools/tests/test_sdec_plot/test_sdec_plotter/test_mpl_image__plotter_generate_plot_mpl3__.png
254 tardis/visualization/tools/tests/test_sdec_plot/test_sdec_plotter/test_mpl_image__plotter_generate_plot_mpl4__.png
255 tardis/visualization/tools/tests/test_sdec_plot/test_sdec_plotter/test_mpl_image__plotter_generate_plot_mpl5__.png
256 tardis/visualization/tools/tests/test_sdec_plot/test_sdec_plotter/test_mpl_image__plotter_generate_plot_mpl6__.png
257 tardis/visualization/tools/tests/test_sdec_plot/test_sdec_plotter/test_mpl_image__plotter_generate_plot_mpl7__.png
258 tardis/visualization/tools/tests/test_sdec_plot/test_sdec_plotter/test_mpl_image__plotter_generate_plot_mpl8__.png
259 tardis/visualization/tools/tests/test_sdec_plot/test_sdec_plotter/test_mpl_image__plotter_generate_plot_mpl9__.png
260 tardis/visualization/tools/tests/test_sdec_plot/test_sdec_plotter/test_parse_species_list___full_species_list__.npy
261 tardis/visualization/tools/tests/test_sdec_plot/test_sdec_plotter/test_parse_species_list___keep_colour__.npy
262 tardis/visualization/tools/tests/test_sdec_plot/test_sdec_plotter/test_parse_species_list___species_list__.npy
263 tardis/workflows/high_energy/tests/test_tardis_he_workflow/test_he_workflow_all_outputs_regression__escape_energy__.h5
264 tardis/workflows/high_energy/tests/test_tardis_he_workflow/test_he_workflow_all_outputs_regression__escape_energy_cosi__.h5
265 tardis/workflows/high_energy/tests/test_tardis_he_workflow/test_he_workflow_all_outputs_regression__gamma_ray_deposited_energy__.h5
266 tardis/workflows/high_energy/tests/test_tardis_he_workflow/test_he_workflow_all_outputs_regression__packets_escaped__.h5
267 tardis/workflows/high_energy/tests/test_tardis_he_workflow/test_he_workflow_all_outputs_regression__positron_energy__.h5
268 tardis/workflows/high_energy/tests/test_tardis_he_workflow/test_he_workflow_all_outputs_regression__total_deposited_energy__.h5
269 tardis/workflows/tests/test_workflows/test_v_inner_solver_workflow__iterations_mean_optical_depth__.h5
270 tardis/workflows/tests/test_workflows/test_v_inner_solver_workflow__iterations_t_inner__.h5
271 tardis/workflows/tests/test_workflows/test_v_inner_solver_workflow__iterations_t_rad__.h5
272 tardis/workflows/tests/test_workflows/test_v_inner_solver_workflow__iterations_v_inner_boundary__.h5
273 tardis/workflows/tests/test_workflows/test_v_inner_solver_workflow__iterations_w__.h5
274 test_composition/test_calculate_cell_masses.npy
275 test_composition/test_calculate_elemental_cell_masses.npy
276 test_composition/test_calculate_mass_fraction_at_time__time_explosion0__.h5
277 test_composition/test_calculate_mass_fraction_at_time__time_explosion1__.h5
278 test_composition/test_elemental_mass_fraction.h5
279 test_composition/test_elemental_number_density.h5
280 test_composition/test_elemental_number_density.npy
281 testdata/MESA_STIR_MESA_SNEC/input/profile8.data.iso.dat
282 testdata/MESA_STIR_MESA_SNEC/output/C_init_frac.dat
283 testdata/MESA_STIR_MESA_SNEC/output/E_shell.xg
284 testdata/MESA_STIR_MESA_SNEC/output/H_1.xg
285 testdata/MESA_STIR_MESA_SNEC/output/H_2.xg
286 testdata/MESA_STIR_MESA_SNEC/output/H_init_frac.dat
287 testdata/MESA_STIR_MESA_SNEC/output/He_1.xg
288 testdata/MESA_STIR_MESA_SNEC/output/He_2.xg
289 testdata/MESA_STIR_MESA_SNEC/output/He_3.xg
290 testdata/MESA_STIR_MESA_SNEC/output/He_init_frac.dat
291 testdata/MESA_STIR_MESA_SNEC/output/Ni_deposit_function.xg
292 testdata/MESA_STIR_MESA_SNEC/output/Ni_init_frac.dat
293 testdata/MESA_STIR_MESA_SNEC/output/Ni_total_luminosity.dat
294 testdata/MESA_STIR_MESA_SNEC/output/O_init_frac.dat
295 testdata/MESA_STIR_MESA_SNEC/output/Q.xg
296 testdata/MESA_STIR_MESA_SNEC/output/T_eff.dat
297 testdata/MESA_STIR_MESA_SNEC/output/conservation.dat
298 testdata/MESA_STIR_MESA_SNEC/output/cs2.xg
299 testdata/MESA_STIR_MESA_SNEC/output/delta_mass_initial.dat
300 testdata/MESA_STIR_MESA_SNEC/output/delta_time.xg
301 testdata/MESA_STIR_MESA_SNEC/output/density_profile.dat
302 testdata/MESA_STIR_MESA_SNEC/output/eps.xg
303 testdata/MESA_STIR_MESA_SNEC/output/free_electron_frac.xg
304 testdata/MESA_STIR_MESA_SNEC/output/index_lumshell.dat
305 testdata/MESA_STIR_MESA_SNEC/output/index_photo.dat
306 testdata/MESA_STIR_MESA_SNEC/output/info.dat
307 testdata/MESA_STIR_MESA_SNEC/output/kappa.xg
308 testdata/MESA_STIR_MESA_SNEC/output/kappa_table.xg
309 testdata/MESA_STIR_MESA_SNEC/output/logR_op.xg
310 testdata/MESA_STIR_MESA_SNEC/output/logT.xg
311 testdata/MESA_STIR_MESA_SNEC/output/lum.xg
312 testdata/MESA_STIR_MESA_SNEC/output/lum_observed.dat
313 testdata/MESA_STIR_MESA_SNEC/output/lum_photo.dat
314 testdata/MESA_STIR_MESA_SNEC/output/magnitudes.dat
315 testdata/MESA_STIR_MESA_SNEC/output/mass.xg
316 testdata/MESA_STIR_MESA_SNEC/output/mass_initial.dat
317 testdata/MESA_STIR_MESA_SNEC/output/mass_lumshell.dat
318 testdata/MESA_STIR_MESA_SNEC/output/mass_photo.dat
319 testdata/MESA_STIR_MESA_SNEC/output/metallicity_init.dat
320 testdata/MESA_STIR_MESA_SNEC/output/opacity_corrupted.dat
321 testdata/MESA_STIR_MESA_SNEC/output/opacity_floor.dat
322 testdata/MESA_STIR_MESA_SNEC/output/p_rad.xg
323 testdata/MESA_STIR_MESA_SNEC/output/photosphere_tracer.xg
324 testdata/MESA_STIR_MESA_SNEC/output/press.xg
325 testdata/MESA_STIR_MESA_SNEC/output/press_initial.dat
326 testdata/MESA_STIR_MESA_SNEC/output/rad_initial.dat
327 testdata/MESA_STIR_MESA_SNEC/output/rad_photo.dat
328 testdata/MESA_STIR_MESA_SNEC/output/radius.xg
329 testdata/MESA_STIR_MESA_SNEC/output/rho.xg
330 testdata/MESA_STIR_MESA_SNEC/output/rho_initial.dat
331 testdata/MESA_STIR_MESA_SNEC/output/tau.xg
332 testdata/MESA_STIR_MESA_SNEC/output/temp.xg
333 testdata/MESA_STIR_MESA_SNEC/output/time_diff.xg
334 testdata/MESA_STIR_MESA_SNEC/output/time_exp.xg
335 testdata/MESA_STIR_MESA_SNEC/output/vel.xg
336 testdata/MESA_STIR_MESA_SNEC/output/vel_photo.dat
337 testdata/MESA_STIR_MESA_SNEC/output/velshock_index.dat
338 testdata/MESA_STIR_MESA_SNEC/output/ye.xg

Cleanup: Reset False Commits

Warning: This resets history, proceed with caution.

If you want to clean up false commits generated after running pytest, use git reset --hard upstream/master