Skip to content

Console Output

+ source /etc/profile.d/larson-group.sh
++ export GIT_EDITOR=vi
++ GIT_EDITOR=vi
++ export SVN_EDITOR=vi
++ SVN_EDITOR=vi
++ export OMP_STACKSIZE=1048579
++ OMP_STACKSIZE=1048579
++ export LMOD_ROOT=/opt/lmod/
++ LMOD_ROOT=/opt/lmod/
++ source /opt/lmod//lmod/lmod/init/bash
+++ '[' -z '' ']'
+++ case "$-" in
+++ __lmod_vx=x
+++ '[' -n x ']'
+++ set +x
Shell debugging temporarily silenced: export LMOD_SH_DBG_ON=1 for this output (/usr/local/spack/opt/spack/linux-pop22-cascadelake/gcc-12.2.0/lmod-8.7.37-bi3kyxcdrfgw3y7vv2k7c5rjxg75qzju/lmod/lmod/init/bash)
Shell debugging restarted
+++ unset __lmod_vx
+++ find /usr/local/spack/share/spack/lmod/linux-pop22-x86_64/Core -print -quit
++ export MODULEPATH=/usr/local/spack/share/spack/lmod/linux-pop22-x86_64/Core
++ MODULEPATH=/usr/local/spack/share/spack/lmod/linux-pop22-x86_64/Core
+ module load gcc netcdf-fortran
+ '[' -z '' ']'
+ case "$-" in
+ __lmod_sh_dbg=x
+ '[' -n x ']'
+ set +x
Shell debugging temporarily silenced: export LMOD_SH_DBG_ON=1 for Lmod's output
Lmod Warning:
-------------------------------------------------------------------------------
The following dependent module(s) are not currently loaded:
gcc-runtime/13.1.0-gzedt3f (required by: mpich/4.2.1, hdf5/1.14.3-42x3zrv,
netcdf-c/4.9.2, netcdf-fortran/4.5.3)
-------------------------------------------------------------------------------



Shell debugging restarted
+ unset __lmod_sh_dbg
+ return 0
+ bash clubb_python_api/run_pytests.sh -v
============================= test session starts ==============================
platform linux -- Python 3.10.13, pytest-9.0.2, pluggy-1.6.0 -- /usr/bin/python3
cachedir: .pytest_cache
rootdir: /home/jenkins/workspace/clubb_python_test/clubb_python_api
collecting ... collected 224 items

tests/test_advance_core_subs.py::TestComputeSigmaSqdW::test_basic_call PASSED [  0%]
tests/test_advance_core_subs.py::TestComputeSigmaSqdW::test_sigma_bounded PASSED [  0%]
tests/test_advance_core_subs.py::TestComputeSigmaSqdW::test_zero_variance PASSED [  1%]
tests/test_advance_core_subs.py::TestFillHolesVertical::test_no_holes PASSED [  1%]
tests/test_advance_core_subs.py::TestFillHolesVertical::test_fills_negative PASSED [  2%]
tests/test_advance_core_subs.py::TestFillHolesWp2FromHorzTke::test_fills_wp2_and_conserves_tke PASSED [  2%]
tests/test_advance_core_subs.py::TestClipRcm::test_rcm_clipped_to_rtm PASSED [  3%]
tests/test_advance_core_subs.py::TestClipRcm::test_negative_rcm_unchanged PASSED [  3%]
tests/test_advance_core_subs.py::TestClipRcm::test_valid_rcm_unchanged PASSED [  4%]
tests/test_advance_core_subs.py::TestClipCovar::test_basic_call PASSED   [  4%]
tests/test_advance_core_subs.py::TestClipCovar::test_clips_excess_covariance PASSED [  4%]
tests/test_advance_core_subs.py::TestClipSkewness::test_clip_skewness_limits_wp3 PASSED [  5%]
tests/test_advance_core_subs.py::TestClipVariance::test_clips_to_threshold PASSED [  5%]
tests/test_advance_core_subs.py::TestClipVariance::test_above_threshold_unchanged PASSED [  6%]
tests/test_advance_core_subs.py::TestBruntVaisala::test_basic_call PASSED [  6%]
tests/test_advance_core_subs.py::TestBruntVaisala::test_stable_positive_n2 PASSED [  7%]
tests/test_advance_core_subs.py::TestCxFncRichardson::test_basic_call PASSED [  7%]
tests/test_advance_core_subs.py::TestStabilityCorrection::test_basic_call PASSED [  8%]
tests/test_advance_core_subs.py::TestStabilityCorrection::test_nonnegative PASSED [  8%]
tests/test_advance_core_subs.py::TestClipCovarsDenom::test_basic_call PASSED [  8%]
tests/test_argument_contract_audit.py::test_argument_order_checker_finds_no_issues PASSED [  9%]
tests/test_call_tree_advance_core.py::test_advance_clubb_core_returns_finite_arrays PASSED [  9%]
tests/test_call_tree_advance_core.py::test_advance_clubb_core_repeatability_for_identical_inputs PASSED [ 10%]
tests/test_call_tree_advance_windm_edsclrm.py::test_advance_windm_edsclrm_returns_finite_arrays PASSED [ 10%]
tests/test_call_tree_advance_windm_edsclrm.py::test_advance_windm_edsclrm_updates_match_return_values PASSED [ 11%]
tests/test_call_tree_advance_wp2_wp3.py::test_advance_wp2_wp3_returns_finite_arrays PASSED [ 11%]
tests/test_call_tree_advance_wp2_wp3.py::test_advance_wp2_wp3_updates_match_return_values PASSED [ 12%]
tests/test_call_tree_advance_xm_wpxp.py::test_advance_xm_wpxp_returns_finite_arrays PASSED [ 12%]
tests/test_call_tree_advance_xm_wpxp.py::test_advance_xm_wpxp_updates_match_return_values PASSED [ 12%]
tests/test_call_tree_advance_xp2_xpyp.py::test_advance_xp2_xpyp_returns_finite_arrays PASSED [ 13%]
tests/test_call_tree_advance_xp2_xpyp.py::test_advance_xp2_xpyp_updates_match_return_values PASSED [ 13%]
tests/test_call_tree_advance_xp2_xpyp.py::test_update_xp2_mc_returns_finite_arrays PASSED [ 14%]
tests/test_call_tree_advance_xp3.py::test_advance_xp3_returns_finite_arrays PASSED [ 14%]
tests/test_call_tree_advance_xp3.py::test_advance_xp3_updates_match_return_values PASSED [ 15%]
tests/test_call_tree_bicgstab_solvers.py::test_penta_bicgstab_solve_solves_diagonal_system PASSED [ 15%]
tests/test_call_tree_calc_roots.py::test_quadratic_solve_known_roots PASSED [ 16%]
tests/test_call_tree_calc_roots.py::test_cubic_solve_known_roots PASSED  [ 16%]
tests/test_call_tree_corr_varnce_module.py::test_assert_corr_symmetric_accepts_identity_and_flags_bad_matrix PASSED [ 16%]
tests/test_call_tree_diagnose_correlations_module.py::test_diagnose_correlations_preserves_identity_matrix PASSED [ 17%]
tests/test_call_tree_diagnose_correlations_module.py::test_calc_cholesky_corr_mtx_approx_handles_identity_matrix PASSED [ 17%]
tests/test_call_tree_error_code.py::test_initialize_error_headers_callable PASSED [ 18%]
tests/test_call_tree_file_functions.py::test_file_read_1d_reads_flat_rows PASSED [ 18%]
tests/test_call_tree_index_mapping.py::test_pdf_and_hydrometeor_index_maps_are_consistent PASSED [ 19%]
tests/test_call_tree_index_mapping.py::test_rx_nx_index_maps_are_consistent PASSED [ 19%]
tests/test_call_tree_index_mapping.py::test_mvr_hm_max_matches_fortran_constants PASSED [ 20%]
tests/test_call_tree_interpolation.py::test_mono_cubic_interp_linear_profile PASSED [ 20%]
tests/test_call_tree_interpolation.py::test_zlinterp_fnc_zero_outside_domain PASSED [ 20%]
tests/test_call_tree_lapack_interfaces.py::test_lapack_gtsv_and_gtsvx_solve_diagonal_system PASSED [ 21%]
tests/test_call_tree_lapack_interfaces.py::test_lapack_gbsv_and_gbsvx_solve_diagonal_band_system PASSED [ 21%]
tests/test_call_tree_lapack_interfaces.py::test_lapack_factorization_and_eigen_helpers_work_on_spd_matrix PASSED [ 22%]
tests/test_call_tree_lapack_wrap.py::test_lapack_tridiag_wrappers_solve_diagonal_system PASSED [ 22%]
tests/test_call_tree_lapack_wrap.py::test_lapack_band_wrappers_solve_diagonal_system PASSED [ 23%]
tests/test_call_tree_luhar.py::test_calc_luhar_params_matches_formula PASSED [ 23%]
tests/test_call_tree_luhar.py::test_close_luhar_pdf_matches_formula PASSED [ 24%]
tests/test_call_tree_luhar.py::test_adg1_w_closure_matches_formula PASSED [ 24%]
tests/test_call_tree_luhar.py::test_adg2_pdf_driver_column_consistency PASSED [ 25%]
tests/test_call_tree_luhar.py::test_adg1_pdf_driver_column_consistency PASSED [ 25%]
tests/test_call_tree_luhar.py::test_luhar_3d_pdf_driver_column_consistency PASSED [ 25%]
tests/test_call_tree_ly93.py::test_calc_params_ly93_matches_formula PASSED [ 26%]
tests/test_call_tree_ly93.py::test_ly93_driver_matches_formula_for_low_skewness PASSED [ 26%]
tests/test_call_tree_matrix_operations.py::test_mirror_lower_triangular_matrix_reflects_lower_triangle PASSED [ 27%]
tests/test_call_tree_matrix_operations.py::test_cholesky_factor_reconstructs_spd_matrix PASSED [ 27%]
tests/test_call_tree_matrix_solver_wrapper.py::test_band_solve_multiple_rhs_solves_diagonal_system PASSED [ 28%]
tests/test_call_tree_matrix_solver_wrapper.py::test_tridiag_solve_single_rhs_multiple_lhs_solves_diagonal_system PASSED [ 28%]
tests/test_call_tree_matrix_solver_wrapper.py::test_tridiag_solve_multiple_rhs_solves_diagonal_system PASSED [ 29%]
tests/test_call_tree_meta.py::test_call_tree_api_bindings_exist PASSED   [ 29%]
tests/test_call_tree_meta.py::test_call_tree_api_bindings_are_tested PASSED [ 29%]
tests/test_call_tree_mixing_length.py::test_zero_pdf_implicit_coefs_terms_resets_state PASSED [ 30%]
tests/test_call_tree_mixing_length.py::test_diagnose_lscale_from_tau_basic PASSED [ 30%]
tests/test_call_tree_mixing_length.py::test_calc_lscale_directly_basic PASSED [ 31%]
tests/test_call_tree_mono_flux.py::test_calc_turb_adv_range_basic_bounds PASSED [ 31%]
tests/test_call_tree_mono_flux.py::test_monotonic_turbulent_flux_limit_preserves_zero_flux_state PASSED [ 32%]
tests/test_call_tree_nc_ncn_eqns.py::test_nc_in_cloud_to_ncnm_returns_nc_in_cloud_for_clear_or_constant_case PASSED [ 32%]
tests/test_call_tree_new_hybrid_pdf.py::test_calculate_w_params_matches_formula_branches PASSED [ 33%]
tests/test_call_tree_new_hybrid_pdf.py::test_calculate_responder_params_matches_formula_branches PASSED [ 33%]
tests/test_call_tree_new_hybrid_pdf.py::test_calculate_coef_wp4_implicit_matches_formula PASSED [ 33%]
tests/test_call_tree_new_hybrid_pdf.py::test_calc_coef_wp2xp_implicit_matches_formula_branches PASSED [ 34%]
tests/test_call_tree_new_hybrid_pdf.py::test_calc_coefs_wpxp2_semiimpl_matches_formula_branches PASSED [ 34%]
tests/test_call_tree_new_pdf.py::test_calc_setter_var_params_matches_formula PASSED [ 35%]
tests/test_call_tree_new_pdf.py::test_calc_responder_params_matches_formula_branches PASSED [ 35%]
tests/test_call_tree_new_pdf.py::test_calc_limits_f_x_responder_matches_root_selection_logic PASSED [ 36%]
tests/test_call_tree_new_pdf.py::test_calc_coef_wp4_implicit_matches_formula PASSED [ 36%]
tests/test_call_tree_new_pdf.py::test_calc_coef_wpxp2_implicit_matches_formula_branches PASSED [ 37%]
tests/test_call_tree_new_pdf.py::test_calc_coefs_wp2xp_semiimpl_matches_formula_branches PASSED [ 37%]
tests/test_call_tree_new_pdf.py::test_calc_coefs_wpxpyp_semiimpl_matches_formula_branches PASSED [ 37%]
tests/test_call_tree_new_pdf.py::test_new_pdf_driver_column_consistency PASSED [ 38%]
tests/test_call_tree_new_pdf.py::test_new_hybrid_pdf_driver_column_consistency PASSED [ 38%]
tests/test_call_tree_new_tsdadg.py::test_calc_l_x_skx_fnc_sign_branching_matches_formula PASSED [ 39%]
tests/test_call_tree_new_tsdadg.py::test_calc_setter_parameters_tsdadg_matches_formula PASSED [ 39%]
tests/test_call_tree_new_tsdadg.py::test_tsdadg_pdf_driver_column_consistency PASSED [ 40%]
tests/test_call_tree_numerical_check.py::test_calculate_spurious_source_matches_formula PASSED [ 40%]
tests/test_call_tree_numerical_check.py::test_sfc_varnce_check_sets_error_for_nan PASSED [ 41%]
tests/test_call_tree_numerical_check.py::test_parameterization_check_sets_error_for_nan PASSED [ 41%]
tests/test_call_tree_numerical_check.py::test_pdf_closure_check_sets_error_for_nan PASSED [ 41%]
tests/test_call_tree_numerical_check.py::test_length_check_sets_error_for_nan PASSED [ 42%]
tests/test_call_tree_pdf_closure.py::test_calc_wp4_pdf_matches_formula PASSED [ 42%]
tests/test_call_tree_pdf_closure.py::test_calc_wp2xp_pdf_matches_formula PASSED [ 43%]
tests/test_call_tree_pdf_closure.py::test_calc_wpxp2_pdf_matches_formula PASSED [ 43%]
tests/test_call_tree_pdf_closure.py::test_calc_wpxpyp_pdf_matches_formula PASSED [ 44%]
tests/test_call_tree_pdf_closure.py::test_calc_w_up_in_cloud_zero_variance_component_split PASSED [ 44%]
tests/test_call_tree_pdf_closure_driver.py::test_pdf_closure_driver_returns_finite_arrays PASSED [ 45%]
tests/test_call_tree_pdf_closure_driver.py::test_pdf_closure_driver_is_repeatable PASSED [ 45%]
tests/test_call_tree_pdf_closure_driver.py::test_pdf_closure_driver_allows_zero_dims PASSED [ 45%]
tests/test_call_tree_pdf_closure_driver.py::test_pdf_closure_driver_can_return_pdf_udt_state PASSED [ 46%]
tests/test_call_tree_pdf_utils.py::test_smooth_corr_quotient_bounds PASSED [ 46%]
tests/test_call_tree_pdf_utils.py::test_calc_comp_corrs_binormal_basic PASSED [ 47%]
tests/test_call_tree_pdf_utils.py::test_lognormal_conversion_helpers_match_formulas PASSED [ 47%]
tests/test_call_tree_pdf_utils.py::test_corr_nn2n_family_matches_expected_formulas PASSED [ 48%]
tests/test_call_tree_pdf_utils.py::test_binormal_and_chi_eta_helpers_match_formulas PASSED [ 48%]
tests/test_call_tree_penta_lu_solvers.py::test_penta_lu_solve_single_rhs_multiple_lhs_solves_diagonal_system PASSED [ 49%]
tests/test_call_tree_penta_lu_solvers.py::test_penta_lu_solve_multiple_rhs_lhs_solves_diagonal_system PASSED [ 49%]
tests/test_call_tree_pos_definite_module.py::test_pos_definite_adj_preserves_nonnegative_state_with_zero_flux PASSED [ 50%]
tests/test_call_tree_precipitation_fraction.py::test_precip_fraction_returns_zero_when_no_hydrometeors PASSED [ 50%]
tests/test_call_tree_remap.py::test_remap_vals_to_target_identity_zt PASSED [ 50%]
tests/test_call_tree_remap.py::test_remap_vals_to_target_identity_zm PASSED [ 51%]
tests/test_call_tree_saturation.py::test_sat_mixrat_ice_returns_finite_positive_values PASSED [ 51%]
tests/test_call_tree_sfc_varnce.py::test_calc_sfc_varnce_basic_finite_outputs PASSED [ 52%]
tests/test_call_tree_skx.py::test_skx_func_matches_xp3_over_xp2_to_three_halves_when_xtol_zero PASSED [ 52%]
tests/test_call_tree_skx.py::test_lg_2005_ansatz_zero_flux_gives_zero_skewness PASSED [ 53%]
tests/test_call_tree_skx.py::test_xp3_lg_2005_ansatz_matches_two_step_reconstruction PASSED [ 53%]
tests/test_call_tree_splat.py::test_smooth_heaviside_peskin_limits_and_center PASSED [ 54%]
tests/test_call_tree_splat.py::test_lscale_width_vert_avg_constant_profile PASSED [ 54%]
tests/test_call_tree_splat.py::test_wp2_term_splat_lhs_zero_bv PASSED    [ 54%]
tests/test_call_tree_splat.py::test_wp2_term_splat_lhs_constant_bv PASSED [ 55%]
tests/test_call_tree_splat.py::test_wp3_term_splat_lhs_constant_bv PASSED [ 55%]
tests/test_call_tree_sponge.py::test_sponge_damp_xm_simple_midpoint_case PASSED [ 56%]
tests/test_call_tree_sponge.py::test_sponge_damp_xp2_respects_floor PASSED [ 56%]
tests/test_call_tree_sponge.py::test_sponge_damp_xp3_full_damping_to_zero PASSED [ 57%]
tests/test_call_tree_stats_accumulate.py::test_stats_accumulate_smoke PASSED [ 57%]
tests/test_call_tree_t_in_k_module.py::test_thlm2t_in_k_returns_finite_physical_values PASSED [ 58%]
tests/test_call_tree_t_in_k_module.py::test_thlm2t_in_k_increases_with_thlm PASSED [ 58%]
tests/test_call_tree_t_in_k_module.py::test_thlm2t_in_k_increases_with_rcm PASSED [ 58%]
tests/test_call_tree_transport.py::test_compute_current_date_one_day_and_hour PASSED [ 59%]
tests/test_call_tree_transport.py::test_set_lscale_max_behavior PASSED   [ 59%]
tests/test_call_tree_transport.py::test_term_ma_zt_lhs_zero_w PASSED     [ 60%]
tests/test_call_tree_transport.py::test_term_ma_zm_lhs_zero_w PASSED     [ 60%]
tests/test_call_tree_transport.py::test_diffusion_zt_lhs_zero_coeffs PASSED [ 61%]
tests/test_call_tree_transport.py::test_diffusion_zm_lhs_zero_coeffs PASSED [ 61%]
tests/test_call_tree_tridiag_lu_solvers.py::test_tridiag_lu_solve_single_rhs_lhs_solves_diagonal_system PASSED [ 62%]
tests/test_call_tree_tridiag_lu_solvers.py::test_tridiag_lu_solve_single_rhs_multiple_lhs_solves_diagonal_system PASSED [ 62%]
tests/test_call_tree_tridiag_lu_solvers.py::test_tridiag_lu_solve_multiple_rhs_lhs_solves_diagonal_system PASSED [ 62%]
tests/test_call_tree_turbulent_adv_pdf.py::test_turbulent_adv_pdf_zero_inputs_return_zero_outputs PASSED [ 63%]
tests/test_call_tree_utils.py::test_julian2gregorian_date_known PASSED   [ 63%]
tests/test_call_tree_utils.py::test_gregorian2julian_day_and_leap_year_known PASSED [ 64%]
tests/test_call_tree_utils.py::test_lin_interpolate_two_points_midpoint PASSED [ 64%]
tests/test_call_tree_utils.py::test_calculate_thvm_basic PASSED          [ 65%]
tests/test_call_tree_utils.py::test_calc_ri_zm_matches_formula PASSED    [ 65%]
tests/test_call_tree_utils.py::test_vertical_avg_and_integral PASSED     [ 66%]
tests/test_call_tree_utils.py::test_zm2zt2zm_preserves_constant_field PASSED [ 66%]
tests/test_call_tree_utils.py::test_zt2zm2zt_preserves_constant_field PASSED [ 66%]
tests/test_call_tree_utils.py::test_ddzm_matches_grid_spacing_formula PASSED [ 67%]
tests/test_call_tree_utils.py::test_ddzt_matches_grid_spacing_formula PASSED [ 67%]
tests/test_call_tree_utils.py::test_pvertinterp_hits_exact_level PASSED  [ 68%]
tests/test_call_tree_utils.py::test_smooth_max_supports_scalar_array_and_array_scalar PASSED [ 68%]
tests/test_call_tree_utils.py::test_smooth_min_supports_scalar_array_and_array_scalar PASSED [ 69%]
tests/test_call_tree_utils.py::test_read_grid_heights_reads_momentum_grid_file PASSED [ 69%]
tests/test_call_tree_utils.py::test_setup_grid_heights_updates_stored_grid PASSED [ 70%]
tests/test_call_tree_utils.py::test_calc_xpwp_matches_centered_difference_formula PASSED [ 70%]
tests/test_init_pressure.py::TestInitPressure::test_pressure_decreases_with_height PASSED [ 70%]
tests/test_init_pressure.py::TestInitPressure::test_exner_decreases_with_height PASSED [ 71%]
tests/test_init_pressure.py::TestInitPressure::test_physically_reasonable_values PASSED [ 71%]
tests/test_init_pressure.py::TestInitPressure::test_output_shapes PASSED [ 72%]
tests/test_init_pressure.py::TestInitPressure::test_higher_surface_pressure PASSED [ 72%]
tests/test_init_pressure.py::TestInitPressure::test_multi_column PASSED  [ 73%]
tests/test_init_sequence.py::TestConfigFlags::test_default_flags_returns_namedtuple PASSED [ 73%]
tests/test_init_sequence.py::TestConfigFlags::test_default_integer_flags_positive PASSED [ 74%]
tests/test_init_sequence.py::TestConfigFlags::test_default_logical_flags_are_bool PASSED [ 74%]
tests/test_init_sequence.py::TestConfigFlags::test_known_defaults PASSED [ 75%]
tests/test_init_sequence.py::TestConfigFlags::test_init_config_flags_roundtrip PASSED [ 75%]
tests/test_init_sequence.py::TestConfigFlags::test_modified_flags PASSED [ 75%]
tests/test_init_sequence.py::TestErrInfo::test_init_err_info PASSED      [ 76%]
tests/test_init_sequence.py::TestSetupGrid::test_evenly_spaced_ascending PASSED [ 76%]
tests/test_init_sequence.py::TestSetupGrid::test_multi_column_grid PASSED [ 77%]
tests/test_init_sequence.py::TestClubbParams::test_default_params_shape PASSED [ 77%]
tests/test_init_sequence.py::TestClubbParams::test_default_params_finite PASSED [ 78%]
tests/test_init_sequence.py::TestClubbParams::test_multi_column_params PASSED [ 78%]
tests/test_init_sequence.py::TestCalcDerrivedParams::test_produces_finite_outputs PASSED [ 79%]
tests/test_init_sequence.py::TestPdfInit::test_init_pdf_params PASSED    [ 79%]
tests/test_init_sequence.py::TestPdfInit::test_init_pdf_params_zm PASSED [ 79%]
tests/test_init_sequence.py::TestPdfInit::test_init_pdf_implicit PASSED  [ 80%]
tests/test_init_sequence.py::TestPdfInit::test_init_pdf_implicit_with_scalars PASSED [ 80%]
tests/test_init_sequence.py::TestPdfInit::test_init_pdf_implicit_coefs_terms_alias PASSED [ 81%]
tests/test_init_sequence.py::TestFullInitSequence::test_full_init_no_errors PASSED [ 81%]
tests/test_python_port_api_coverage.py::test_full_clubb_core_cross_module_api_coverage PASSED [ 82%]
tests/test_stats.py::TestStatsConfig::test_disabled_by_default PASSED    [ 82%]
tests/test_stats.py::TestStatsConfig::test_init_enables_stats PASSED     [ 83%]
tests/test_stats.py::TestStatsConfig::test_config_fields PASSED          [ 83%]
tests/test_stats.py::TestStatsConfig::test_sampling_params PASSED        [ 83%]
tests/test_stats.py::TestStatsConfig::test_finalize_disables PASSED      [ 84%]
tests/test_stats.py::TestVarMeta::test_first_var_is_thlm PASSED          [ 84%]
tests/test_stats.py::TestVarMeta::test_zm_var PASSED                     [ 85%]
tests/test_stats.py::TestVarMeta::test_sfc_var PASSED                    [ 85%]
tests/test_stats.py::TestVarMeta::test_var_long_name PASSED              [ 86%]
tests/test_stats.py::TestVarOnStatsList::test_registered_var PASSED      [ 86%]
tests/test_stats.py::TestVarOnStatsList::test_unregistered_var PASSED    [ 87%]
tests/test_stats.py::TestDataRoundtrip::test_initial_buffer_zeros PASSED [ 87%]
tests/test_stats.py::TestDataRoundtrip::test_push_pull_roundtrip PASSED  [ 87%]
tests/test_stats.py::TestTimestepAndUpdate::test_begin_timestep_sets_l_sample PASSED [ 88%]
tests/test_stats.py::TestTimestepAndUpdate::test_update_scalar PASSED    [ 88%]
tests/test_stats.py::TestTimestepAndUpdate::test_update_1d PASSED        [ 89%]
tests/test_stats.py::TestTimestepAndUpdate::test_update_2d PASSED        [ 89%]
tests/test_stats.py::TestNetcdfMetadata::test_init_writes_param_names_and_values PASSED [ 90%]
tests/test_string_conversion.py::test_python_strings_to_fortran_char_matrix PASSED [ 90%]
tests/test_string_conversion.py::test_fortran_char_matrix_to_python_strings PASSED [ 91%]
tests/test_string_conversion.py::test_python_strings_to_fortran_char_matrix_truncates PASSED [ 91%]
tests/test_string_conversion.py::test_fortran_char_matrix_to_python_strings_handles_empty PASSED [ 91%]
tests/test_udt_return_contract.py::test_udt_arg_wrapper_return_manifest_matches_source PASSED [ 92%]
tests/test_udt_return_contract.py::test_noarg_udt_return_wrappers_match_source PASSED [ 92%]
tests/test_udt_return_contract.py::test_full_return_patterns_match_source PASSED [ 93%]
tests/test_udt_return_contract.py::test_source_order_manifest_matches_wrapper_slices PASSED [ 93%]
tests/test_udt_roundtrip.py::TestGrid::test_single_column_roundtrip PASSED [ 94%]
tests/test_udt_roundtrip.py::TestGrid::test_multi_column_roundtrip PASSED [ 94%]
tests/test_udt_roundtrip.py::TestGrid::test_overwrite PASSED             [ 95%]
tests/test_udt_roundtrip.py::TestSclrIdx::test_roundtrip PASSED          [ 95%]
tests/test_udt_roundtrip.py::TestSclrIdx::test_zero_values PASSED        [ 95%]
tests/test_udt_roundtrip.py::TestSclrIdx::test_overwrite PASSED          [ 96%]
tests/test_udt_roundtrip.py::TestNuVertResDep::test_roundtrip PASSED     [ 96%]
tests/test_udt_roundtrip.py::TestNuVertResDep::test_overwrite_different_size PASSED [ 97%]
tests/test_udt_roundtrip.py::TestPdfParams::test_init_pull_zeros PASSED  [ 97%]
tests/test_udt_roundtrip.py::TestPdfParams::test_roundtrip PASSED        [ 98%]
tests/test_udt_roundtrip.py::TestPdfParams::test_zm_roundtrip PASSED     [ 98%]
tests/test_udt_roundtrip.py::TestImplicitCoefs::test_init_pull_zeros_no_sclr PASSED [ 99%]
tests/test_udt_roundtrip.py::TestImplicitCoefs::test_2d_roundtrip PASSED [ 99%]
tests/test_udt_roundtrip.py::TestImplicitCoefs::test_3d_roundtrip PASSED [100%]

============================= 224 passed in 7.17s ==============================