Skip to content

feat: enforce StencilTest conventions programmatically and other minor fixes#1116

Open
egparedes wants to merge 10 commits intoC2SM:mainfrom
egparedes:feat/minor-stenciltest-fixes
Open

feat: enforce StencilTest conventions programmatically and other minor fixes#1116
egparedes wants to merge 10 commits intoC2SM:mainfrom
egparedes:feat/minor-stenciltest-fixes

Conversation

@egparedes
Copy link
Contributor

@egparedes egparedes commented Mar 18, 2026

Create custom helpers for the reference and input_data fixtures in StencilTests, to have more control over its behavior and test for conformance.

Additionally, add review suggestions from @edopao in #1111 (https://github.com/C2SM/icon4py/pull/1111/changes/BASE..fe21507847b5ef0fd2029fe7615ef2c420bb02e3#r2941397453) and ideas from @iomaganaris in #968

@egparedes
Copy link
Contributor Author

egparedes commented Mar 20, 2026

cscs-ci run default

@egparedes egparedes marked this pull request as ready for review March 20, 2026 14:24
Copilot AI review requested due to automatic review settings March 20, 2026 14:24
@egparedes egparedes changed the title Feat/minor stenciltest fixes feat: enforce StencilTest conventions programmatically and other minor fixes Mar 20, 2026
@github-actions
Copy link

Mandatory Tests

Please make sure you run these tests via comment before you merge!

  • cscs-ci run default
  • cscs-ci run distributed

Optional Tests

To run benchmarks you can use:

  • cscs-ci run benchmark-bencher

To run tests and benchmarks with the DaCe backend you can use:

  • cscs-ci run dace

To run test levels ignored by the default test suite (mostly simple datatest for static fields computations) you can use:

  • cscs-ci run extra

For more detailed information please look at CI in the EXCLAIM universe.

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR tightens and standardizes the StencilTest testing API by introducing dedicated decorators for reference and input_data, renaming internal fixtures for clarity, and updating a large set of stencil tests to conform to the new conventions (including fixture signatures and parametrization patterns).

Changes:

  • Added static_reference and input_data_fixture helpers (with validation/markers) and enforced their usage via StencilTest.__init_subclass__.
  • Renamed/reshaped core fixtures (configured_program, device_input_data) and improved error handling in GT4Py metrics extraction.
  • Updated many stencil test suites to use the new decorators and (where needed) reorder input_data arguments to match the enforced signature.

Reviewed changes

Copilot reviewed 199 out of 199 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
model/testing/src/icon4py/model/testing/stencil_tests.py Implements new decorators/markers, renames fixtures, and enforces subclass conformance checks.
model/common/tests/common/math/unit_tests/test_operators.py Switches reference/input_data to the new decorators.
model/common/tests/common/math/unit_tests/test_helpers.py Switches reference/input_data to the new decorators.
model/common/tests/common/math/stencil_tests/test_compute_first_vertical_derivative.py Switches reference/input_data to the new decorators.
model/common/tests/common/math/stencil_tests/test_cell_horizontal_gradients_by_green_gauss_method.py Switches reference/input_data to the new decorators.
model/common/tests/common/interpolation/stencil_tests/test_mo_intp_rbf_rbf_vec_interpol_vertex.py Switches reference/input_data to the new decorators.
model/common/tests/common/interpolation/stencil_tests/test_interpolate_edge_field_to_half_levels_vp.py Migrates imports and switches reference/input_data to the new decorators.
model/common/tests/common/interpolation/stencil_tests/test_edge_2_cell_vector_rbf_interpolation.py Switches reference/input_data to the new decorators.
model/common/tests/common/interpolation/stencil_tests/test_diagnose_temperature.py Switches reference/input_data to the new decorators.
model/common/tests/common/interpolation/stencil_tests/test_diagnose_surface_pressure.py Switches reference/input_data to the new decorators.
model/common/tests/common/interpolation/stencil_tests/test_diagnose_pressure.py Switches reference/input_data to the new decorators.
model/common/tests/common/interpolation/stencil_tests/test_compute_cell_2_vertex_interpolation.py Switches reference/input_data to the new decorators.
model/common/tests/common/interpolation/stencil_tests/test_cell_2_edge_interpolation.py Switches reference/input_data to the new decorators.
model/atmosphere/subgrid_scale_physics/muphys/tests/muphys/stencil_tests/test_vel_scale_factor_snow.py Switches reference/input_data to the new decorators.
model/atmosphere/subgrid_scale_physics/muphys/tests/muphys/stencil_tests/test_vel_scale_factor_ice.py Switches reference/input_data to the new decorators.
model/atmosphere/subgrid_scale_physics/muphys/tests/muphys/stencil_tests/test_vapor_x_snow.py Switches reference/input_data to the new decorators.
model/atmosphere/subgrid_scale_physics/muphys/tests/muphys/stencil_tests/test_vapor_x_snow_default.py Switches reference/input_data to the new decorators.
model/atmosphere/subgrid_scale_physics/muphys/tests/muphys/stencil_tests/test_vapor_x_ice.py Switches reference/input_data to the new decorators.
model/atmosphere/subgrid_scale_physics/muphys/tests/muphys/stencil_tests/test_vapor_x_ice_default.py Switches reference/input_data to the new decorators.
model/atmosphere/subgrid_scale_physics/muphys/tests/muphys/stencil_tests/test_vapor_x_graupel.py Switches reference/input_data to the new decorators.
model/atmosphere/subgrid_scale_physics/muphys/tests/muphys/stencil_tests/test_vapor_x_graupel_default.py Switches reference/input_data to the new decorators.
model/atmosphere/subgrid_scale_physics/muphys/tests/muphys/stencil_tests/test_T_from_internal_energy.py Switches reference/input_data to the new decorators.
model/atmosphere/subgrid_scale_physics/muphys/tests/muphys/stencil_tests/test_snow_to_rain.py Switches reference/input_data to the new decorators.
model/atmosphere/subgrid_scale_physics/muphys/tests/muphys/stencil_tests/test_snow_to_rain_default.py Switches reference/input_data to the new decorators.
model/atmosphere/subgrid_scale_physics/muphys/tests/muphys/stencil_tests/test_snow_to_graupel.py Switches reference/input_data to the new decorators.
model/atmosphere/subgrid_scale_physics/muphys/tests/muphys/stencil_tests/test_snow_to_graupel_default.py Switches reference/input_data to the new decorators.
model/atmosphere/subgrid_scale_physics/muphys/tests/muphys/stencil_tests/test_snow_number.py Switches reference/input_data to the new decorators.
model/atmosphere/subgrid_scale_physics/muphys/tests/muphys/stencil_tests/test_snow_number_default.py Switches reference/input_data to the new decorators.
model/atmosphere/subgrid_scale_physics/muphys/tests/muphys/stencil_tests/test_snow_lambda.py Switches reference/input_data to the new decorators.
model/atmosphere/subgrid_scale_physics/muphys/tests/muphys/stencil_tests/test_saturation_adjustment.py Switches reference/input_data to the new decorators.
model/atmosphere/subgrid_scale_physics/muphys/tests/muphys/stencil_tests/test_sat_pres_water.py Switches reference/input_data to the new decorators.
model/atmosphere/subgrid_scale_physics/muphys/tests/muphys/stencil_tests/test_sat_pres_ice.py Switches reference/input_data to the new decorators.
model/atmosphere/subgrid_scale_physics/muphys/tests/muphys/stencil_tests/test_rain_to_vapor.py Switches reference/input_data to the new decorators.
model/atmosphere/subgrid_scale_physics/muphys/tests/muphys/stencil_tests/test_rain_to_vapor_default.py Switches reference/input_data to the new decorators.
model/atmosphere/subgrid_scale_physics/muphys/tests/muphys/stencil_tests/test_rain_to_graupel_default.py Switches reference/input_data to the new decorators.
model/atmosphere/subgrid_scale_physics/muphys/tests/muphys/stencil_tests/test_rain_to_graupel_3.py Switches reference/input_data to the new decorators.
model/atmosphere/subgrid_scale_physics/muphys/tests/muphys/stencil_tests/test_rain_to_graupel_2.py Switches reference/input_data to the new decorators.
model/atmosphere/subgrid_scale_physics/muphys/tests/muphys/stencil_tests/test_rain_to_graupel_1.py Switches reference/input_data to the new decorators.
model/atmosphere/subgrid_scale_physics/muphys/tests/muphys/stencil_tests/test_qsat_rho.py Switches reference/input_data to the new decorators.
model/atmosphere/subgrid_scale_physics/muphys/tests/muphys/stencil_tests/test_qsat_rho_tmelt.py Switches reference/input_data to the new decorators.
model/atmosphere/subgrid_scale_physics/muphys/tests/muphys/stencil_tests/test_qsat_ice_rho.py Switches reference/input_data to the new decorators.
model/atmosphere/subgrid_scale_physics/muphys/tests/muphys/stencil_tests/test_internal_energy.py Switches reference/input_data to the new decorators.
model/atmosphere/subgrid_scale_physics/muphys/tests/muphys/stencil_tests/test_ice_to_snow.py Switches reference/input_data to the new decorators.
model/atmosphere/subgrid_scale_physics/muphys/tests/muphys/stencil_tests/test_ice_to_snow_default.py Switches reference/input_data to the new decorators.
model/atmosphere/subgrid_scale_physics/muphys/tests/muphys/stencil_tests/test_ice_to_graupel.py Switches reference/input_data to the new decorators.
model/atmosphere/subgrid_scale_physics/muphys/tests/muphys/stencil_tests/test_ice_to_graupel_default.py Switches reference/input_data to the new decorators.
model/atmosphere/subgrid_scale_physics/muphys/tests/muphys/stencil_tests/test_ice_sticking.py Switches reference/input_data to the new decorators.
model/atmosphere/subgrid_scale_physics/muphys/tests/muphys/stencil_tests/test_ice_number.py Switches reference/input_data to the new decorators.
model/atmosphere/subgrid_scale_physics/muphys/tests/muphys/stencil_tests/test_ice_mass.py Switches reference/input_data to the new decorators.
model/atmosphere/subgrid_scale_physics/muphys/tests/muphys/stencil_tests/test_ice_deposition_nucleation.py Switches reference/input_data to the new decorators.
model/atmosphere/subgrid_scale_physics/muphys/tests/muphys/stencil_tests/test_ice_deposition_nucleation_default.py Switches reference/input_data to the new decorators.
model/atmosphere/subgrid_scale_physics/muphys/tests/muphys/stencil_tests/test_graupel_to_rain.py Switches reference/input_data to the new decorators.
model/atmosphere/subgrid_scale_physics/muphys/tests/muphys/stencil_tests/test_graupel_to_rain_default.py Switches reference/input_data to the new decorators.
model/atmosphere/subgrid_scale_physics/muphys/tests/muphys/stencil_tests/test_fall_speed.py Switches reference/input_data to the new decorators.
model/atmosphere/subgrid_scale_physics/muphys/tests/muphys/stencil_tests/test_dqsatdT_rho.py Switches reference/input_data to the new decorators.
model/atmosphere/subgrid_scale_physics/muphys/tests/muphys/stencil_tests/test_deposition_factor.py Switches reference/input_data to the new decorators.
model/atmosphere/subgrid_scale_physics/muphys/tests/muphys/stencil_tests/test_deposition_auto_conversion.py Switches reference/input_data to the new decorators.
model/atmosphere/subgrid_scale_physics/muphys/tests/muphys/stencil_tests/test_deposition_auto_conversion_default.py Switches reference/input_data to the new decorators.
model/atmosphere/subgrid_scale_physics/muphys/tests/muphys/stencil_tests/test_cloud_x_ice.py Switches reference/input_data to the new decorators.
model/atmosphere/subgrid_scale_physics/muphys/tests/muphys/stencil_tests/test_cloud_x_ice_default.py Switches reference/input_data to the new decorators.
model/atmosphere/subgrid_scale_physics/muphys/tests/muphys/stencil_tests/test_cloud_to_snow.py Switches reference/input_data to the new decorators.
model/atmosphere/subgrid_scale_physics/muphys/tests/muphys/stencil_tests/test_cloud_to_snow_default.py Switches reference/input_data to the new decorators.
model/atmosphere/subgrid_scale_physics/muphys/tests/muphys/stencil_tests/test_cloud_to_rain.py Switches reference/input_data to the new decorators.
model/atmosphere/subgrid_scale_physics/muphys/tests/muphys/stencil_tests/test_cloud_to_rain_default.py Switches reference/input_data to the new decorators.
model/atmosphere/subgrid_scale_physics/muphys/tests/muphys/stencil_tests/test_cloud_to_graupel.py Switches reference/input_data to the new decorators.
model/atmosphere/subgrid_scale_physics/muphys/tests/muphys/stencil_tests/test_cloud_to_graupel_default.py Switches reference/input_data to the new decorators.
model/atmosphere/dycore/tests/dycore/stencil_tests/test_vertically_implicit_dycore_solver_at_predictor_step.py Switches reference/input_data decorators and reorders fixture args to satisfy enforced signature.
model/atmosphere/dycore/tests/dycore/stencil_tests/test_vertically_implicit_dycore_solver_at_corrector_step.py Switches reference/input_data decorators and reorders fixture args to satisfy enforced signature.
model/atmosphere/dycore/tests/dycore/stencil_tests/test_update_wind.py Switches reference/input_data to the new decorators.
model/atmosphere/dycore/tests/dycore/stencil_tests/test_update_theta_and_exner_in_halo.py Switches reference/input_data to the new decorators.
model/atmosphere/dycore/tests/dycore/stencil_tests/test_update_mass_volume_flux.py Switches reference/input_data to the new decorators.
model/atmosphere/dycore/tests/dycore/stencil_tests/test_update_mass_flux_weighted.py Switches reference/input_data to the new decorators.
model/atmosphere/dycore/tests/dycore/stencil_tests/test_update_dynamical_exner_time_increment.py Switches reference/input_data to the new decorators.
model/atmosphere/dycore/tests/dycore/stencil_tests/test_update_density_exner_wind.py Switches reference/input_data to the new decorators.
model/atmosphere/dycore/tests/dycore/stencil_tests/test_spatially_average_flux_or_velocity.py Switches reference/input_data to the new decorators.
model/atmosphere/dycore/tests/dycore/stencil_tests/test_solve_tridiagonal_matrix_for_w_forward_sweep.py Switches reference/input_data to the new decorators.
model/atmosphere/dycore/tests/dycore/stencil_tests/test_solve_tridiagonal_matrix_for_w_back_substitution.py Switches reference/input_data to the new decorators.
model/atmosphere/dycore/tests/dycore/stencil_tests/test_set_theta_v_prime_ic_at_lower_boundary.py Switches reference/input_data to the new decorators.
model/atmosphere/dycore/tests/dycore/stencil_tests/test_set_lower_boundary_condition_for_w_and_contravariant_correction.py Switches reference/input_data to the new decorators.
model/atmosphere/dycore/tests/dycore/stencil_tests/test_mo_math_divrot_rot_vertex_ri_dsl.py Switches reference/input_data to the new decorators.
model/atmosphere/dycore/tests/dycore/stencil_tests/test_mo_icon_interpolation_scalar_cells2verts_scalar_ri_dsl.py Switches reference/input_data to the new decorators.
model/atmosphere/dycore/tests/dycore/stencil_tests/test_interpolate_vt_to_interface_edges.py Switches reference/input_data to the new decorators.
model/atmosphere/dycore/tests/dycore/stencil_tests/test_interpolate_vn_to_half_levels_and_compute_kinetic_energy_on_edges.py Switches reference/input_data to the new decorators.
model/atmosphere/dycore/tests/dycore/stencil_tests/test_interpolate_vn_and_vt_to_ie_and_compute_ekin_on_edges.py Switches reference/input_data to the new decorators.
model/atmosphere/dycore/tests/dycore/stencil_tests/test_interpolate_to_surface.py Switches reference/input_data to the new decorators.
model/atmosphere/dycore/tests/dycore/stencil_tests/test_interpolate_to_cell_center.py Switches reference/input_data to the new decorators.
model/atmosphere/dycore/tests/dycore/stencil_tests/test_interpolate_rho_theta_v_to_half_levels_and_compute_temperature_vertical_gradient.py Switches reference/input_data to the new decorators.
model/atmosphere/dycore/tests/dycore/stencil_tests/test_interpolate_contravariant_vertical_velocity_to_full_levels.py Switches reference/input_data to the new decorators.
model/atmosphere/dycore/tests/dycore/stencil_tests/test_interpolate_cell_field_to_half_levels_vp.py Switches reference/input_data to the new decorators.
model/atmosphere/dycore/tests/dycore/stencil_tests/test_init_two_edge_kdim_fields_with_zero_wp.py Switches reference/input_data to the new decorators.
model/atmosphere/dycore/tests/dycore/stencil_tests/test_init_cell_kdim_field_with_zero_wp.py Switches reference/input_data to the new decorators.
model/atmosphere/dycore/tests/dycore/stencil_tests/test_extrapolate_temporally_exner_pressure.py Switches reference/input_data to the new decorators.
model/atmosphere/dycore/tests/dycore/stencil_tests/test_extrapolate_at_top.py Switches reference/input_data to the new decorators.
model/atmosphere/dycore/tests/dycore/stencil_tests/test_copy_cell_kdim_field_to_vp.py Switches reference/input_data to the new decorators.
model/atmosphere/dycore/tests/dycore/stencil_tests/test_compute_vn_on_lateral_boundary.py Switches reference/input_data to the new decorators.
model/atmosphere/dycore/tests/dycore/stencil_tests/test_compute_virtual_potential_temperatures_and_pressure_gradient.py Switches reference/input_data to the new decorators.
model/atmosphere/dycore/tests/dycore/stencil_tests/test_compute_theta_rho_face_values_and_pressure_gradient_and_update_vn.py Switches reference/input_data decorators and reorders fixture args to satisfy enforced signature.
model/atmosphere/dycore/tests/dycore/stencil_tests/test_compute_tangential_wind.py Switches reference/input_data to the new decorators.
model/atmosphere/dycore/tests/dycore/stencil_tests/test_compute_solver_coefficients_matrix.py Switches reference/input_data to the new decorators.
model/atmosphere/dycore/tests/dycore/stencil_tests/test_compute_rho_virtual_potential_temperatures_and_pressure_gradient.py Switches reference/input_data to the new decorators.
model/atmosphere/dycore/tests/dycore/stencil_tests/test_compute_results_for_thermodynamic_variables.py Switches reference/input_data to the new decorators.
model/atmosphere/dycore/tests/dycore/stencil_tests/test_compute_perturbed_quantities_and_interpolation.py Switches reference/input_data to the new decorators.
model/atmosphere/dycore/tests/dycore/stencil_tests/test_compute_perturbation_of_rho_and_theta.py Switches reference/input_data to the new decorators.
model/atmosphere/dycore/tests/dycore/stencil_tests/test_compute_perturbation_of_rho_and_theta_and_rho_interface_cell_centers.py Switches reference/input_data to the new decorators.
model/atmosphere/dycore/tests/dycore/stencil_tests/test_compute_maximum_cfl_and_clip_contravariant_vertical_velocity.py Switches reference/input_data to the new decorators.
model/atmosphere/dycore/tests/dycore/stencil_tests/test_compute_mass_flux.py Switches reference/input_data to the new decorators.
model/atmosphere/dycore/tests/dycore/stencil_tests/test_compute_hydrostatic_correction_term.py Switches reference/input_data to the new decorators.
model/atmosphere/dycore/tests/dycore/stencil_tests/test_compute_horizontal_velocity_quantities_and_fluxes.py Switches reference/input_data to the new decorators.
model/atmosphere/dycore/tests/dycore/stencil_tests/test_compute_horizontal_kinetic_energy.py Switches reference/input_data to the new decorators.
model/atmosphere/dycore/tests/dycore/stencil_tests/test_compute_horizontal_gradient_of_exner_pressure_for_nonflat_coordinates.py Switches reference/input_data to the new decorators.
model/atmosphere/dycore/tests/dycore/stencil_tests/test_compute_horizontal_gradient_of_exner_pressure_for_multiple_levels.py Switches reference/input_data to the new decorators.
model/atmosphere/dycore/tests/dycore/stencil_tests/test_compute_horizontal_gradient_of_exner_pressure_for_flat_coordinates.py Switches reference/input_data to the new decorators.
model/atmosphere/dycore/tests/dycore/stencil_tests/test_compute_horizontal_advection_term_for_vertical_velocity.py Switches reference/input_data to the new decorators.
model/atmosphere/dycore/tests/dycore/stencil_tests/test_compute_horizontal_advection_of_rho_and_theta.py Switches reference/input_data to the new decorators.
model/atmosphere/dycore/tests/dycore/stencil_tests/test_compute_graddiv2_of_vn.py Switches reference/input_data to the new decorators.
model/atmosphere/dycore/tests/dycore/stencil_tests/test_compute_explicit_vertical_wind_speed_and_vertical_wind_times_density.py Switches reference/input_data to the new decorators.
model/atmosphere/dycore/tests/dycore/stencil_tests/test_compute_explicit_vertical_wind_from_advection_and_vertical_wind_density.py Switches reference/input_data to the new decorators.
model/atmosphere/dycore/tests/dycore/stencil_tests/test_compute_explicit_part_for_rho_and_exner.py Switches reference/input_data to the new decorators.
model/atmosphere/dycore/tests/dycore/stencil_tests/test_compute_exner_from_rhotheta.py Switches reference/input_data to the new decorators.
model/atmosphere/dycore/tests/dycore/stencil_tests/test_compute_dwdz_for_divergence_damping.py Switches reference/input_data to the new decorators.
model/atmosphere/dycore/tests/dycore/stencil_tests/test_compute_divergence_of_fluxes_of_rho_and_theta.py Switches reference/input_data to the new decorators.
model/atmosphere/dycore/tests/dycore/stencil_tests/test_compute_diagnostics_from_normal_wind.py Converts reference to static_reference and switches input_data to the new decorator.
model/atmosphere/dycore/tests/dycore/stencil_tests/test_compute_contravariant_correction.py Switches reference/input_data to the new decorators.
model/atmosphere/dycore/tests/dycore/stencil_tests/test_compute_contravariant_correction_of_w.py Switches reference/input_data to the new decorators.
model/atmosphere/dycore/tests/dycore/stencil_tests/test_compute_contravariant_correction_of_w_for_lower_boundary.py Switches reference/input_data to the new decorators.
model/atmosphere/dycore/tests/dycore/stencil_tests/test_compute_avg_vn_and_graddiv_vn_and_vt.py Switches reference/input_data to the new decorators.
model/atmosphere/dycore/tests/dycore/stencil_tests/test_compute_averaged_vn_and_fluxes_and_prepare_tracer_advection.py Switches reference/input_data decorators and reorders fixture args to satisfy enforced signature.
model/atmosphere/dycore/tests/dycore/stencil_tests/test_compute_approx_of_2nd_vertical_derivative_of_exner.py Switches reference/input_data to the new decorators.
model/atmosphere/dycore/tests/dycore/stencil_tests/test_compute_airmass.py Switches reference/input_data to the new decorators.
model/atmosphere/dycore/tests/dycore/stencil_tests/test_compute_advective_vertical_wind_tendency.py Switches reference/input_data to the new decorators.
model/atmosphere/dycore/tests/dycore/stencil_tests/test_compute_advection_in_vertical_momentum_equation.py Switches reference/input_data to the new decorators (incl. parametrized input_data).
model/atmosphere/dycore/tests/dycore/stencil_tests/test_compute_advection_in_horizontal_momentum_equation.py Switches decorators and reorders fixture args to satisfy enforced signature.
model/atmosphere/dycore/tests/dycore/stencil_tests/test_apply_weighted_2nd_and_4th_order_divergence_damping.py Switches reference/input_data to the new decorators.
model/atmosphere/dycore/tests/dycore/stencil_tests/test_apply_rayleigh_damping_mechanism.py Switches reference/input_data to the new decorators.
model/atmosphere/dycore/tests/dycore/stencil_tests/test_apply_divergence_damping_and_update_vn.py Migrates imports and switches decorators; reorders fixture args for enforced signature.
model/atmosphere/dycore/tests/dycore/stencil_tests/test_apply_4th_order_divergence_damping.py Switches reference/input_data to the new decorators.
model/atmosphere/dycore/tests/dycore/stencil_tests/test_apply_2nd_order_divergence_damping.py Switches reference/input_data to the new decorators.
model/atmosphere/dycore/tests/dycore/stencil_tests/test_add_vertical_wind_derivative_to_divergence_damping.py Switches reference/input_data to the new decorators.
model/atmosphere/dycore/tests/dycore/stencil_tests/test_add_temporal_tendencies_to_vn.py Switches reference/input_data to the new decorators.
model/atmosphere/dycore/tests/dycore/stencil_tests/test_add_temporal_tendencies_to_vn_by_interpolating_between_time_levels.py Switches reference/input_data to the new decorators.
model/atmosphere/dycore/tests/dycore/stencil_tests/test_add_interpolated_horizontal_advection_of_w.py Switches reference/input_data to the new decorators.
model/atmosphere/dycore/tests/dycore/stencil_tests/test_add_extra_diffusion_for_w_con_approaching_cfl.py Switches reference/input_data to the new decorators.
model/atmosphere/dycore/tests/dycore/stencil_tests/test_add_extra_diffusion_for_normal_wind_tendency_approaching_cfl.py Switches reference/input_data to the new decorators.
model/atmosphere/dycore/tests/dycore/stencil_tests/test_add_analysis_increments_to_vn.py Switches reference/input_data to the new decorators.
model/atmosphere/dycore/tests/dycore/stencil_tests/test_add_analysis_increments_from_data_assimilation.py Switches reference/input_data to the new decorators.
model/atmosphere/dycore/tests/dycore/stencil_tests/test_accumulate_prep_adv_fields.py Switches reference/input_data to the new decorators.
model/atmosphere/diffusion/tests/diffusion/stencil_tests/test_update_theta_and_exner.py Switches reference/input_data to the new decorators.
model/atmosphere/diffusion/tests/diffusion/stencil_tests/test_truly_horizontal_diffusion_nabla_of_theta_over_steep_points.py Switches reference/input_data to the new decorators.
model/atmosphere/diffusion/tests/diffusion/stencil_tests/test_temporary_fields_for_turbulence_diagnostics.py Switches reference/input_data to the new decorators.
model/atmosphere/diffusion/tests/diffusion/stencil_tests/test_temporary_field_for_grid_point_cold_pools_enhancement.py Switches reference/input_data to the new decorators.
model/atmosphere/diffusion/tests/diffusion/stencil_tests/test_enhance_diffusion_coefficient_for_grid_point_cold_pools.py Switches reference/input_data to the new decorators.
model/atmosphere/diffusion/tests/diffusion/stencil_tests/test_calculate_nabla4.py Switches reference/input_data to the new decorators.
model/atmosphere/diffusion/tests/diffusion/stencil_tests/test_calculate_nabla2_of_theta.py Switches reference/input_data to the new decorators.
model/atmosphere/diffusion/tests/diffusion/stencil_tests/test_calculate_nabla2_for_z.py Switches reference/input_data to the new decorators.
model/atmosphere/diffusion/tests/diffusion/stencil_tests/test_calculate_nabla2_for_w.py Switches reference/input_data to the new decorators.
model/atmosphere/diffusion/tests/diffusion/stencil_tests/test_calculate_nabla2_and_smag_coefficients_for_vn.py Switches reference/input_data to the new decorators and simplifies imports.
model/atmosphere/diffusion/tests/diffusion/stencil_tests/test_calculate_horizontal_gradients_for_turbulence.py Switches reference/input_data to the new decorators.
model/atmosphere/diffusion/tests/diffusion/stencil_tests/test_calculate_diagnostics_for_turbulence.py Switches reference/input_data to the new decorators.
model/atmosphere/diffusion/tests/diffusion/stencil_tests/test_apply_nabla2_to_w.py Switches reference/input_data to the new decorators.
model/atmosphere/diffusion/tests/diffusion/stencil_tests/test_apply_nabla2_to_w_in_upper_damping_layer.py Switches reference/input_data to the new decorators.
model/atmosphere/diffusion/tests/diffusion/stencil_tests/test_apply_nabla2_to_vn_in_lateral_boundary.py Switches reference/input_data to the new decorators.
model/atmosphere/diffusion/tests/diffusion/stencil_tests/test_apply_nabla2_and_nabla4_to_vn.py Switches reference/input_data to the new decorators.
model/atmosphere/diffusion/tests/diffusion/stencil_tests/test_apply_nabla2_and_nabla4_global_to_vn.py Switches reference/input_data to the new decorators.
model/atmosphere/diffusion/tests/diffusion/stencil_tests/test_apply_diffusion_to_w_and_compute_horizontal_gradients_for_turbulence.py Switches reference/input_data to the new decorators.
model/atmosphere/diffusion/tests/diffusion/stencil_tests/test_apply_diffusion_to_vn.py Switches reference/input_data to the new decorators.
model/atmosphere/diffusion/tests/diffusion/stencil_tests/test_apply_diffusion_to_theta_and_exner.py Switches reference/input_data to the new decorators.
model/atmosphere/advection/tests/advection/stencil_tests/test_reconstruct_cubic_coefficients_svd.py Switches reference/input_data to the new decorators.
model/atmosphere/advection/tests/advection/stencil_tests/test_postprocess_antidiffusive_cell_fluxes_and_min_max.py Switches reference/input_data to the new decorators.
model/atmosphere/advection/tests/advection/stencil_tests/test_limit_vertical_slope_semi_monotonically.py Switches reference/input_data to the new decorators.
model/atmosphere/advection/tests/advection/stencil_tests/test_limit_vertical_parabola_semi_monotonically.py Switches reference/input_data to the new decorators.
model/atmosphere/advection/tests/advection/stencil_tests/test_integrate_tracer_vertically.py Switches reference/input_data to the new decorators.
model/atmosphere/advection/tests/advection/stencil_tests/test_integrate_tracer_horizontally.py Switches reference/input_data to the new decorators.
model/atmosphere/advection/tests/advection/stencil_tests/test_integrate_tracer_density_horizontally.py Switches reference/input_data to the new decorators.
model/atmosphere/advection/tests/advection/stencil_tests/test_compute_vertical_tracer_flux_upwind.py Switches reference/input_data to the new decorators.
model/atmosphere/advection/tests/advection/stencil_tests/test_compute_vertical_parabola_limiter_condition.py Switches reference/input_data to the new decorators.
model/atmosphere/advection/tests/advection/stencil_tests/test_compute_tendency.py Switches reference/input_data to the new decorators.
model/atmosphere/advection/tests/advection/stencil_tests/test_compute_ppm4gpu_parabola_coefficients.py Switches reference/input_data to the new decorators.
model/atmosphere/advection/tests/advection/stencil_tests/test_compute_ppm_slope.py Switches reference/input_data to the new decorators.
model/atmosphere/advection/tests/advection/stencil_tests/test_compute_ppm_quartic_face_values.py Switches reference/input_data to the new decorators.
model/atmosphere/advection/tests/advection/stencil_tests/test_compute_ppm_quadratic_face_values.py Switches reference/input_data to the new decorators.
model/atmosphere/advection/tests/advection/stencil_tests/test_compute_ppm_all_face_values.py Switches reference/input_data to the new decorators.
model/atmosphere/advection/tests/advection/stencil_tests/test_compute_positive_definite_horizontal_multiplicative_flux_factor.py Switches reference/input_data to the new decorators.
model/atmosphere/advection/tests/advection/stencil_tests/test_compute_horizontal_tracer_flux_from_linear_coefficients.py Switches reference/input_data to the new decorators.
model/atmosphere/advection/tests/advection/stencil_tests/test_compute_horizontal_tracer_flux_from_linear_coefficients_alt.py Switches reference/input_data to the new decorators.
model/atmosphere/advection/tests/advection/stencil_tests/test_compute_horizontal_tracer_flux_from_cubic_coefficients.py Switches reference/input_data to the new decorators.
model/atmosphere/advection/tests/advection/stencil_tests/test_compute_ffsl_backtrajectory.py Switches reference/input_data to the new decorators.
model/atmosphere/advection/tests/advection/stencil_tests/test_compute_ffsl_backtrajectory_length_indicator.py Switches reference/input_data to the new decorators.
model/atmosphere/advection/tests/advection/stencil_tests/test_compute_ffsl_backtrajectory_counterclockwise_indicator.py Switches reference/input_data to the new decorators.
model/atmosphere/advection/tests/advection/stencil_tests/test_compute_barycentric_backtrajectory.py Switches reference/input_data to the new decorators.
model/atmosphere/advection/tests/advection/stencil_tests/test_compute_barycentric_backtrajectory_alt.py Switches reference/input_data to the new decorators.
model/atmosphere/advection/tests/advection/stencil_tests/test_compute_antidiffusive_cell_fluxes_and_min_max.py Switches reference/input_data to the new decorators.
model/atmosphere/advection/tests/advection/stencil_tests/test_average_horizontal_flux_subcycling_3.py Switches reference/input_data to the new decorators.
model/atmosphere/advection/tests/advection/stencil_tests/test_average_horizontal_flux_subcycling_2.py Switches reference/input_data to the new decorators.
model/atmosphere/advection/tests/advection/stencil_tests/test_apply_vertical_density_increment.py Switches reference/input_data to the new decorators.
model/atmosphere/advection/tests/advection/stencil_tests/test_apply_interpolated_tracer_time_tendency.py Switches reference/input_data to the new decorators.
model/atmosphere/advection/tests/advection/stencil_tests/test_apply_horizontal_density_increment.py Switches reference/input_data to the new decorators.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Copy link
Contributor

@edopao edopao left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

yield device_data
finally:
# explicitly clear data dict after test to prevent potential memory leaks
device_data.clear()
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good idea to make this explicit.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants