Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Speed up test times 🚀 #1158

Open
wd60622 opened this issue Nov 3, 2024 · 3 comments
Open

Speed up test times 🚀 #1158

wd60622 opened this issue Nov 3, 2024 · 3 comments
Labels

Comments

@wd60622
Copy link
Contributor

wd60622 commented Nov 3, 2024

If you are motivated to help speed up some tests, we would appreciate it!

Here are some of the slowest test times:

(12 minutes 39 seconds) test_slow (tests/clv/models/test_beta_geo_beta_binom.py)
============================= slowest 50 durations =============================
639.94s call     tests/clv/models/test_beta_geo_beta_binom.py::TestBetaGeoBetaBinomModel::test_model_convergence[mcmc-0.3]
20.14s call     tests/clv/models/test_beta_geo_beta_binom.py::TestBetaGeoBetaBinomModel::test_model_convergence[map-0.2]
0.06s setup    tests/clv/models/test_beta_geo_beta_binom.py::TestBetaGeoBetaBinomModel::test_model_convergence[mcmc-0.3]

0.005s hidden.  Use -vv to show these durations.)
============= 2 passed, 16 skipped, 1 warning in 662.18s (0:11:02) =============
(8 minutes 43 seconds) test_slow (tests/clv/models/test_pareto_nbd.py)
============================= slowest 50 durations =============================
391.39s call     tests/clv/models/test_pareto_nbd.py::TestParetoNBDModel::test_model_convergence[mcmc-0.1]
26.63s call     tests/clv/models/test_pareto_nbd.py::TestParetoNBDModel::test_model_convergence[map-0.2]
8.20s call     tests/clv/models/test_pareto_nbd.py::TestParetoNBDModel::test_model_convergence[demz-0.2]
0.05s setup    tests/clv/models/test_pareto_nbd.py::TestParetoNBDModel::test_model_convergence[mcmc-0.1]

0.005s hidden.  Use -vv to show these durations.)
=========== 3 passed, 24 skipped, 4000 warnings in 428.61s (0:07:08) ===========
(4 minutes 59 seconds) test (3.10, false, --ignore tests/mmm --ignore tests/clv)
============================= slowest 50 durations =============================
69.53s call     tests/test_mlflow.py::test_autolog_mmm
28.89s call     tests/test_mlflow.py::test_clv_fit_mcmc[BetaGeoModel]
20.26s call     tests/test_mlflow.py::test_clv_fit_map[BetaGeoModel]
13.64s call     tests/test_mlflow.py::test_file_system_uri_supported
12.36s call     tests/test_mlflow.py::test_autolog_pymc_model[nutpie]
9.24s call     tests/test_prior.py::test_censored_logp[scalar]
6.72s setup    tests/test_prior.py::test_censored_normal_logp[-10]
5.91s setup    tests/customer_choice/test_mv_its.py::test_MVITS_saturated[plot_fit]
3.63s call     tests/test_mlflow.py::test_log_with_data_in_likelihood
3.48s call     tests/test_mlflow.py::test_autolog_pymc_model[blackjax]
3.11s call     tests/test_mlflow.py::test_autolog_pymc_model[numpyro]
2.84s call     tests/test_mlflow.py::test_log_data_no_data
1.94s call     tests/customer_choice/test_mv_its.py::test_MVITS_unsaturated[plot_fit-unsaturated_model_bad]
1.39s call     tests/test_mlflow.py::test_logging_callback
1.15s call     tests/test_mlflow.py::test_autolog_pymc_model[pymc]
1.02s call     tests/test_prior.py::test_censored_logp[vector]
0.89s call     tests/test_model_builder.py::test_xarray_model_builder[DataArray]
0.71s call     tests/test_prior.py::test_sample_prior_arbitrary_no_name
0.70s setup    tests/test_model_builder.py::test_save_input_params
0.63s call     tests/customer_choice/test_mv_its.py::test_save_load
0.62s call     tests/test_prior.py::test_censored_sample_prior
0.55s call     tests/test_prior.py::test_custom_transform
0.52s call     tests/customer_choice/test_mv_its.py::test_MVITS_unsaturated[plot_fit-unsaturated_model_good]
0.36s call     tests/test_plot.py::test_plot_functions[no_legend-different_axes-plot_samples]
0.34s call     tests/test_plot.py::test_plot_curve
0.34s call     tests/test_plot.py::test_plot_curve_custom_sel_to_string
0.32s call     tests/test_plot.py::test_plot_functions[legend-different_axes-plot_samples]
0.32s call     tests/test_plot.py::test_plot_curve_custom_colors
0.30s call     tests/test_model_builder.py::test_fit_after_prior_keeps_prior
0.29s call     tests/test_model_builder.py::test_save_load
0.18s call     tests/test_model_builder.py::test_second_fit
0.17s call     tests/test_plot.py::test_plot_functions[legend-same_axes-plot_samples]
0.16s call     tests/test_plot.py::test_plot_functions[no_legend-same_axes-plot_samples]
0.15s call     tests/test_model_builder.py::test_X_pred_prior_deprecation
0.15s call     tests/test_plot.py::test_plot_curve_supply_axes_same_axes
0.15s call     tests/test_model_builder.py::test_fit_random_seed_reproducibility[int]
0.15s call     tests/test_model_builder.py::test_sample_xxx_predictive_keeps_second[prior_predictive]
0.15s call     tests/test_model_builder.py::test_fit_sampler_config_seed_reproducibility
0.15s call     tests/test_model_builder.py::test_fit_random_seed_reproducibility[rng]
0.13s call     tests/test_model_builder.py::test_sample_xxx_predictive_keeps_second[posterior_predictive]
0.12s call     tests/customer_choice/test_mv_its.py::test_MVITS_saturated[plot_fit]
0.12s call     tests/test_model_builder.py::test_fit
0.11s call     tests/test_model_builder.py::test_xarray_model_builder[Dataset]
0.10s call     tests/test_prior.py::test_create_variable
0.10s call     tests/test_model_builder.py::test_fit_no_t
0.10s call     tests/test_model_builder.py::test_empty_sampler_config_fit
0.09s call     tests/test_model_builder.py::test_incorrect_set_idata_attrs_override
0.09s call     tests/test_model_builder.py::test_insufficient_attrs
0.09s call     tests/customer_choice/test_mv_its.py::test_MVITS_unsaturated[plot_counterfactual-unsaturated_model_bad]
0.09s call     tests/customer_choice/test_mv_its.py::test_MVITS_unsaturated[plot_counterfactual-unsaturated_model_good]
================= 233 passed, 18 warnings in 201.09s (0:03:21) =================
(5 minutes 54 seconds) test_slow (--ignore tests/clv/models/test_beta_geo_beta_binom.py --ignore tests/clv/models/test_p...
============================= slowest 50 durations =============================
46.39s call     tests/clv/models/test_beta_geo.py::TestBetaGeoModel::test_model_convergence[mcmc-0.1]
45.80s call     tests/clv/models/test_beta_geo.py::TestBetaGeoModel::test_model_convergence[advi-0.25]
32.78s call     tests/clv/models/test_shifted_beta_geo.py::TestShiftedBetaGeoModel::test_model_convergence
30.66s call     tests/clv/models/test_gamma_gamma.py::TestGammaGammaModelIndividual::test_model_convergence
25.31s call     tests/clv/models/test_modified_beta_geo.py::TestModifiedBetaGeoModel::test_model_convergence[mcmc-0.075]
22.99s call     tests/clv/models/test_gamma_gamma.py::TestGammaGammaModel::test_model_convergence
17.34s call     tests/clv/models/test_beta_geo.py::TestBetaGeoModel::test_model_convergence[map-0.2]
13.35s call     tests/clv/models/test_modified_beta_geo.py::TestModifiedBetaGeoModel::test_model_convergence[advi-0.175]
8.10s call     tests/clv/models/test_modified_beta_geo.py::TestModifiedBetaGeoModel::test_model_convergence[map-0.15]
0.66s setup    tests/clv/models/test_gamma_gamma.py::TestGammaGammaModel::test_model_convergence
0.06s setup    tests/clv/models/test_gamma_gamma.py::TestGammaGammaModelIndividual::test_model_convergence
0.05s setup    tests/clv/models/test_beta_geo.py::TestBetaGeoModel::test_model_convergence[mcmc-0.1]
0.04s setup    tests/clv/models/test_modified_beta_geo.py::TestModifiedBetaGeoModel::test_model_convergence[mcmc-0.075]

0.005s hidden.  Use -vv to show these durations.)
=========== 9 passed, 1923 skipped, 9 warnings in 256.24s (0:04:16) ============
(11 minutes 9 seconds) test (3.10, false, tests/mmm --ignore tests/mmm/test_tvp.py --ignore tests/mmm/test_budget_optimi...
============================= slowest 50 durations =============================
20.76s call     tests/mmm/test_mmm.py::TestMMM::test_allocate_budget_to_maximize_response
15.69s call     tests/mmm/test_mmm.py::TestMMM::test_init[no_time_varying_media-time_varying_intercept-no_yearly_seasonality-single_channel-no_control-adstock_max_lag=1]
12.45s call     tests/mmm/test_lift_test.py::test_works_with_negative_delta
10.69s call     tests/mmm/test_multidimensional.py::test_fit[tvp intercept only, no fourier-Marginal model]
10.54s call     tests/mmm/components/test_adstock.py::test_apply[x0-None-delayed]
10.30s call     tests/mmm/components/test_adstock.py::test_apply[x1-channel-delayed]
8.72s call     tests/mmm/components/test_adstock.py::test_apply[x0-None-weibull_pdf]
8.63s call     tests/mmm/test_linear_trend.py::test_apply[with_intercept]
8.42s call     tests/mmm/test_multidimensional.py::test_fit[tvp intercept only, no fourier-County model]
7.63s setup    tests/mmm/test_multidimensional.py::test_simple_fit
7.05s call     tests/mmm/test_media_transformation.py::test_apply_media_transformation[scalar-vector]
6.79s call     tests/mmm/test_mmm.py::TestMMM::test_channel_contributions_forward_pass_is_consistent
6.14s call     tests/mmm/test_linear_trend.py::test_apply_additional_dims[scalar]
6.14s call     tests/mmm/test_utility.py::test_mean_tightness_score
6.00s call     tests/mmm/test_media_transformation.py::test_apply_media_transformation[scalar-scalar]
5.73s call     tests/mmm/test_utility.py::test_conditional_value_at_risk
4.43s call     tests/mmm/test_multidimensional.py::test_fit[tvp media only with fourier-County model]
4.22s call     tests/mmm/test_mmm.py::TestMMM::test_init[time_varying_media-time_varying_intercept-no_yearly_seasonality-single_channel-no_control-adstock_max_lag=1]
3.96s call     tests/mmm/test_media_transformation.py::test_apply_media_transformation[vector-scalar]
3.85s call     tests/mmm/test_multidimensional.py::test_fit[tvp media only with fourier-Marginal model]
3.81s call     tests/mmm/components/test_adstock.py::test_apply[x0-None-weibull_cdf]
3.75s call     tests/mmm/test_multidimensional.py::test_fit[no tvps or fourier-Marginal model]
3.73s call     tests/mmm/test_mmm.py::test_save_load_with_tvp[True-True]
3.69s call     tests/mmm/test_multidimensional.py::test_mmm_with_events
3.51s call     tests/mmm/test_mmm.py::TestMMM::test_init[time_varying_media-time_varying_intercept-no_yearly_seasonality-single_channel-one_control-adstock_max_lag=1]
3.43s call     tests/mmm/components/test_adstock.py::test_apply[x0-None-geometric]
3.42s call     tests/mmm/test_fourier.py::test_sample_curve[yearly]
3.29s setup    tests/mmm/test_mmm.py::test_save_load_with_media_transformation
3.27s call     tests/mmm/test_multidimensional.py::test_fit[tvps and fourier-County model]
3.23s call     tests/mmm/test_mmm.py::TestMMM::test_init[time_varying_media-no_time_varying_intercept-no_yearly_seasonality-single_channel-no_control-adstock_max_lag=1]
3.23s call     tests/mmm/components/test_base.py::test_transform_sample_curve_with_variable_factory
3.05s call     tests/mmm/test_multidimensional.py::test_different_target_scaling
2.98s call     tests/mmm/test_mmm.py::TestMMM::test_init[no_time_varying_media-no_time_varying_intercept-yearly_seasonality-single_channel-no_control-adstock_max_lag=1]
2.95s call     tests/mmm/test_mmm.py::test_save_load_with_tvp[True-False]
2.94s setup    tests/mmm/test_mmm.py::test_plotting_media_transform_workflow[adstock]
2.93s call     tests/mmm/test_utility.py::test_covariance_matrix_matches_numpy[data0]
2.90s call     tests/mmm/test_utility.py::test_sharpe_ratio
2.67s call     tests/mmm/test_mmm.py::TestMMM::test_init[time_varying_media-time_varying_intercept-yearly_seasonality-single_channel-one_control-adstock_max_lag=1]
2.58s call     tests/mmm/test_multidimensional.py::test_fit[tvps and fourier-Marginal model]
2.54s call     tests/mmm/test_mmm.py::test_save_load_with_tvp[False-True]
2.43s call     tests/mmm/test_mmm.py::test_plotting_media_transform_workflow[adstock]
2.40s call     tests/mmm/test_mmm.py::TestMMM::test_init[time_varying_media-time_varying_intercept-no_yearly_seasonality-single_channel-no_control-adstock_max_lag=4]
2.22s call     tests/mmm/test_mmm.py::TestMMM::test_init[no_time_varying_media-time_varying_intercept-no_yearly_seasonality-single_channel-no_control-adstock_max_lag=4]
2.22s call     tests/mmm/test_mmm.py::TestMMM::test_init[time_varying_media-time_varying_intercept-yearly_seasonality-multiple_channel-no_control-adstock_max_lag=4]
2.22s call     tests/mmm/test_multidimensional.py::test_fit[no tvps with fourier-County model]
2.20s call     tests/mmm/test_mmm.py::TestMMM::test_init[time_varying_media-time_varying_intercept-yearly_seasonality-single_channel-no_control-adstock_max_lag=4]
2.20s call     tests/mmm/test_mmm.py::TestMMM::test_init[time_varying_media-time_varying_intercept-yearly_seasonality-single_channel-two_controls-adstock_max_lag=1]
2.19s call     tests/mmm/test_fourier.py::test_additional_dimension[yearly]
2.18s call     tests/mmm/test_mmm.py::TestMMM::test_init[no_time_varying_media-time_varying_intercept-yearly_seasonality-single_channel-one_control-adstock_max_lag=1]
2.18s call     tests/mmm/test_mmm.py::TestMMM::test_init[time_varying_media-time_varying_intercept-yearly_seasonality-multiple_channel-two_controls-adstock_max_lag=1]
================ 1226 passed, 88 warnings in 564.61s (0:09:24) =================
(7 minutes 13 seconds) test (3.10, false, tests/mmm/test_tvp.py tests/mmm/test_budget_optimizer.py tests/mmm/test_hsgp.p...
============================= slowest 50 durations =============================
55.71s call     tests/mmm/test_tvp.py::test_time_varying_prior
29.68s call     tests/mmm/test_budget_optimizer.py::test_allocate_budget[default_minimizer_kwargs]
25.94s call     tests/mmm/test_tvp.py::test_multidimensional
16.00s call     tests/mmm/test_transformers.py::TestsAdstockTransformers::test_weibull_adstock_vectorized[PDF]
14.41s call     tests/mmm/test_hsgp.py::test_curve_workflow[HSGP]
12.64s call     tests/mmm/test_budget_optimizer.py::test_allocate_budget_custom_response_constraint[budget=10->resp=5]
9.33s call     tests/mmm/test_hsgp.py::test_curve_workflow[HSGPPeriodic]
8.43s call     tests/mmm/test_transformers.py::TestsAdstockTransformers::test_weibull_adstock_vectorized[CDF]
7.35s call     tests/mmm/test_hsgp.py::test_higher_dimension_hsgp
7.01s call     tests/mmm/test_transformers.py::TestsAdstockTransformers::test_weibull_pdf_adstock[x0-1-1-4]
6.80s call     tests/mmm/test_transformers.py::TestsAdstockTransformers::test_geometric_adstock_vectorized[After]
5.82s call     tests/mmm/test_transformers.py::TestsAdstockTransformers::test_weibull_cdf_adsotck[x2-0.7-1-100]
4.76s call     tests/mmm/test_transformers.py::TestTransformersComposition::test_geometric_adstock_vectorized_logistic_saturation
4.53s call     tests/mmm/test_hsgp.py::test_soft_plus_hsgp_continous_with_new_data
3.91s call     tests/mmm/test_hsgp.py::test_hsgp_with_shared_data
3.86s call     tests/mmm/test_transformers.py::TestsAdstockTransformers::test_weibull_pdf_adstock[x2-0.7-1-100]
3.62s call     tests/mmm/test_transformers.py::TestsAdstockTransformers::test_delayed_adstock_vectorized[After]
3.56s call     tests/mmm/test_transformers.py::TestSaturationTransformers::test_tanh_saturation_parameterization_transformation[x0-20-0.5]
3.55s call     tests/mmm/test_transformers.py::TestsAdstockTransformers::test_weibull_cdf_adsotck[x6-0.8-1-50]
3.28s call     tests/mmm/test_transformers.py::TestsAdstockTransformers::test_weibull_cdf_adsotck[x0-1-1-4]
3.26s call     tests/mmm/test_transformers.py::TestSaturationTransformers::test_tanh_saturation_parameterization_transformation[x1-100-0.5]
3.17s call     tests/mmm/test_hsgp.py::test_hsgp_periodic_with_transform
3.05s call     tests/mmm/test_transformers.py::TestsAdstockTransformers::test_geometric_adstock_good_alpha[x1-0.7-100]
2.85s call     tests/mmm/test_transformers.py::TestsAdstockTransformers::test_weibull_pdf_adstock[x1-0.3-0.5-10]
2.84s call     tests/mmm/test_transformers.py::test_batched_convolution_broadcasting
2.84s call     tests/mmm/test_hsgp.py::test_soft_plus_hsgp_is_centered_around_1
2.78s call     tests/mmm/test_budget_optimizer.py::test_allocate_budget_infeasible_constraints[100-budget_bounds0-parameters0-custom_constraints0]
2.68s call     tests/mmm/test_transformers.py::TestsAdstockTransformers::test_geometric_adstock_x_zero[After]
2.20s call     tests/mmm/test_tvp.py::test_calling_without_default_args
2.11s call     tests/mmm/test_transformers.py::TestsAdstockTransformers::test_geometric_adstock_vectorized[Before]
2.04s call     tests/mmm/test_budget_optimizer.py::test_allocate_budget_custom_response_constraint[budget=50->resp=10]
2.02s call     tests/mmm/test_transformers.py::TestsAdstockTransformers::test_geometric_adstock_good_alpha[x5-0.8-50]
1.96s call     tests/mmm/test_transformers.py::TestsAdstockTransformers::test_geometric_adstock_bad_alpha[less_than_zero_1]
1.90s call     tests/mmm/test_transformers.py::TestsAdstockTransformers::test_geometric_adstock_good_alpha[x3-0.5-7]
1.90s call     tests/mmm/test_transformers.py::TestsAdstockTransformers::test_geometric_adstock_vectorized[Overlap]
1.89s call     tests/mmm/test_transformers.py::test_batched_convolution[ndarray-0-After]
1.87s call     tests/mmm/test_transformers.py::TestTransformersComposition::test_delayed_adstock_vectorized_logistic_saturation
1.76s call     tests/mmm/test_transformers.py::TestSaturationTransformers::test_tanh_saturation_baselined_range[x0-10-0.5-0.5]
1.75s call     tests/mmm/test_transformers.py::TestSaturationTransformers::test_hill_sigmoid_monotonicity[1-1-0]
1.75s call     tests/mmm/test_transformers.py::TestsAdstockTransformers::test_weibull_cdf_adsotck[x1-0.3-0.5-10]
1.63s call     tests/mmm/test_transformers.py::TestsAdstockTransformers::test_weibull_pdf_adstock[x6-0.8-1-50]
1.58s call     tests/mmm/test_transformers.py::TestsAdstockTransformers::test_delayed_adstock_vectorized[Before]
1.53s call     tests/mmm/test_transformers.py::TestTransformersComposition::test_logistic_saturation_geometric_adstock_composition[x0-0.5-1.0]
1.53s call     tests/mmm/test_transformers.py::TestSaturationTransformers::test_inverse_scaled_logistic_saturation_min_max_value
1.53s call     tests/mmm/test_transformers.py::TestsAdstockTransformers::test_geometric_adstock_good_alpha[x0-0.3-10]
1.51s call     tests/mmm/test_transformers.py::TestTransformersComposition::test_logistic_saturation_geometric_adstock_composition[x1-0.2-19.0]
1.48s call     tests/mmm/test_budget_optimizer.py::test_allocate_budget[zero_total_budget]
1.48s call     tests/mmm/test_transformers.py::test_batched_convolution[TensorVariable--1-After]
1.46s call     tests/mmm/test_transformers.py::TestTransformersComposition::test_logistic_saturation_geometric_adstock_composition[x2-0.6-5.0]
1.32s call     tests/mmm/test_transformers.py::TestsAdstockTransformers::test_delayed_adstock_vectorized[Overlap]
================= 215 passed, 13 warnings in 330.81s (0:05:30) =================
(3 minutes 58 seconds) test (3.10, false, tests/clv/models/test_pareto_nbd.py)
============================= slowest 50 durations =============================
42.37s call     tests/clv/models/test_pareto_nbd.py::TestParetoNBDModelWithCovariates::test_covariate_model_convergence
26.70s call     tests/clv/models/test_pareto_nbd.py::TestParetoNBDModel::test_expected_purchases[1]
18.25s call     tests/clv/models/test_pareto_nbd.py::TestParetoNBDModel::test_posterior_distributions[map]
15.48s call     tests/clv/models/test_pareto_nbd.py::TestParetoNBDModelWithCovariates::test_logp
10.59s call     tests/clv/models/test_pareto_nbd.py::TestParetoNBDModelWithCovariates::test_expectation_method
9.62s call     tests/clv/models/test_pareto_nbd.py::TestParetoNBDModelWithCovariates::test_distribution_method
2.40s call     tests/clv/models/test_pareto_nbd.py::TestParetoNBDModel::test_model
1.87s call     tests/clv/models/test_pareto_nbd.py::TestParetoNBDModel::test_posterior_distributions[mcmc]
1.87s call     tests/clv/models/test_pareto_nbd.py::TestParetoNBDModel::test_posterior_distributions[advi]
1.79s call     tests/clv/models/test_pareto_nbd.py::TestParetoNBDModelWithCovariates::test_extract_predictive_covariates
1.38s call     tests/clv/models/test_pareto_nbd.py::TestParetoNBDModel::test_fit_exception
0.95s call     tests/clv/models/test_pareto_nbd.py::TestParetoNBDModel::test_expected_probability_alive
0.86s call     tests/clv/models/test_pareto_nbd.py::TestParetoNBDModel::test_expected_purchase_probability[1-1]
0.81s call     tests/clv/models/test_pareto_nbd.py::TestParetoNBDModel::test_expected_purchase_probability[2-2]
0.72s call     tests/clv/models/test_pareto_nbd.py::TestParetoNBDModel::test_expected_purchase_probability[0-0]
0.49s call     tests/clv/models/test_pareto_nbd.py::TestParetoNBDModel::test_expected_purchases[6]
0.49s call     tests/clv/models/test_pareto_nbd.py::TestParetoNBDModel::test_expected_purchases[3]
0.21s call     tests/clv/models/test_pareto_nbd.py::TestParetoNBDModel::test_save_load_pareto_nbd
0.08s setup    tests/clv/models/test_pareto_nbd.py::TestParetoNBDModelWithCovariates::test_extract_predictive_covariates
0.05s setup    tests/clv/models/test_pareto_nbd.py::TestParetoNBDModel::test_model
0.01s call     tests/clv/models/test_pareto_nbd.py::TestParetoNBDModel::test_expected_purchases_new_customer[1]
0.01s call     tests/clv/models/test_pareto_nbd.py::TestParetoNBDModel::test_expected_purchases_new_customer[6]
0.01s call     tests/clv/models/test_pareto_nbd.py::TestParetoNBDModel::test_expected_purchases_new_customer[3]
0.01s call     tests/clv/models/test_pareto_nbd.py::TestParetoNBDModel::test_missing_cols

0.005s hidden.  Use -vv to show these durations.)
============ 24 passed, 3 skipped, 2 warnings in 139.27s (0:02:19) =============
(2 minutes 43 seconds) test (3.10, false, tests/clv/models/test_beta_geo_beta_binom.py)
============================= slowest 50 durations =============================
33.48s call     tests/clv/models/test_beta_geo_beta_binom.py::TestBetaGeoBetaBinomModel::test_expected_purchases[1]
5.19s call     tests/clv/models/test_beta_geo_beta_binom.py::TestBetaGeoBetaBinomModel::test_expected_probability_alive[1]
5.18s call     tests/clv/models/test_beta_geo_beta_binom.py::TestBetaGeoBetaBinomModel::test_expected_probability_alive[6]
5.18s call     tests/clv/models/test_beta_geo_beta_binom.py::TestBetaGeoBetaBinomModel::test_expected_probability_alive[3]
4.23s call     tests/clv/models/test_beta_geo_beta_binom.py::TestBetaGeoBetaBinomModel::test_expected_purchases[6]
4.06s call     tests/clv/models/test_beta_geo_beta_binom.py::TestBetaGeoBetaBinomModel::test_expected_purchases[3]
2.94s call     tests/clv/models/test_beta_geo_beta_binom.py::TestBetaGeoBetaBinomModel::test_fit_result_without_fit
2.72s call     tests/clv/models/test_beta_geo_beta_binom.py::TestBetaGeoBetaBinomModel::test_distribution_new_customer
1.27s call     tests/clv/models/test_beta_geo_beta_binom.py::TestBetaGeoBetaBinomModel::test_model
0.75s call     tests/clv/models/test_beta_geo_beta_binom.py::TestBetaGeoBetaBinomModel::test_expected_purchases_new_customer
0.20s call     tests/clv/models/test_beta_geo_beta_binom.py::TestBetaGeoBetaBinomModel::test_save_load
0.18s setup    tests/clv/models/test_beta_geo_beta_binom.py::TestBetaGeoBetaBinomModel::test_model
0.03s call     tests/clv/models/test_beta_geo_beta_binom.py::TestBetaGeoBetaBinomModel::test_model_repr[False]
0.02s call     tests/clv/models/test_beta_geo_beta_binom.py::TestBetaGeoBetaBinomModel::test_model_repr[True]
0.01s call     tests/clv/models/test_beta_geo_beta_binom.py::TestBetaGeoBetaBinomModel::test_missing_cols

0.005s hidden.  Use -vv to show these durations.)
============= 16 passed, 2 skipped, 1 warning in 67.43s (0:01:07) ==============
(3 minutes 22 seconds) test (3.10, false, tests/clv/models/test_beta_geo.py)
============================= slowest 50 durations =============================
22.28s call     tests/clv/models/test_beta_geo.py::TestBetaGeoModelWithCovariates::test_covariate_model_convergence_phi_kappa
21.04s call     tests/clv/models/test_beta_geo.py::TestBetaGeoModel::test_posterior_distributions[map]
20.41s call     tests/clv/models/test_beta_geo.py::TestBetaGeoModelWithCovariates::test_covariate_model_convergence_a_b
12.95s call     tests/clv/models/test_beta_geo.py::TestBetaGeoModelWithCovariates::test_logp
9.32s call     tests/clv/models/test_beta_geo.py::TestBetaGeoModel::test_numerically_stable_logp[0-0--0.59947382]
2.89s call     tests/clv/models/test_beta_geo.py::TestBetaGeoModelWithCovariates::test_extract_predictive_covariates
2.64s call     tests/clv/models/test_beta_geo.py::TestBetaGeoModelWithCovariates::test_distribution_method
2.19s call     tests/clv/models/test_beta_geo.py::TestBetaGeoModel::test_fit_result_without_fit
2.03s call     tests/clv/models/test_beta_geo.py::TestBetaGeoModel::test_posterior_distributions[mcmc]
1.26s call     tests/clv/models/test_beta_geo.py::TestBetaGeoModel::test_model
0.99s call     tests/clv/models/test_beta_geo.py::TestBetaGeoModel::test_numerically_stable_logp[200-38-100.7957]
0.42s call     tests/clv/models/test_beta_geo.py::TestBetaGeoModel::test_distribution_new_customer
0.22s call     tests/clv/models/test_beta_geo.py::TestBetaGeoModel::test_save_load
0.21s call     tests/clv/models/test_beta_geo.py::TestBetaGeoModelWithCovariates::test_expectation_method
0.10s call     tests/clv/models/test_beta_geo.py::TestBetaGeoModel::test_expected_num_purchases_new_customer_warning
0.08s setup    tests/clv/models/test_beta_geo.py::TestBetaGeoModelWithCovariates::test_extract_predictive_covariates
0.08s call     tests/clv/models/test_beta_geo.py::TestBetaGeoModel::test_expected_purchases[6]
0.07s call     tests/clv/models/test_beta_geo.py::TestBetaGeoModel::test_expected_purchases[3]
0.07s call     tests/clv/models/test_beta_geo.py::TestBetaGeoModel::test_expected_purchases_new_customer[6]
0.07s call     tests/clv/models/test_beta_geo.py::TestBetaGeoModel::test_expected_purchases[1]
0.06s call     tests/clv/models/test_beta_geo.py::TestBetaGeoModel::test_expected_purchases_new_customer[3]
0.06s call     tests/clv/models/test_beta_geo.py::TestBetaGeoModel::test_expected_probability_no_purchases_infrequent_customers
0.05s call     tests/clv/models/test_beta_geo.py::TestBetaGeoModel::test_expected_probability_no_purchases_frequent_customers[30]
0.05s call     tests/clv/models/test_beta_geo.py::TestBetaGeoModel::test_expected_probability_no_purchases[90]
0.05s call     tests/clv/models/test_beta_geo.py::TestBetaGeoModel::test_expected_probability_no_purchases[0]
0.05s call     tests/clv/models/test_beta_geo.py::TestBetaGeoModel::test_expected_probability_no_purchases_frequent_customers[90]
0.05s call     tests/clv/models/test_beta_geo.py::TestBetaGeoModel::test_expected_probability_no_purchases_now
0.05s call     tests/clv/models/test_beta_geo.py::TestBetaGeoModel::test_expected_probability_no_purchases[30]
0.05s call     tests/clv/models/test_beta_geo.py::TestBetaGeoModel::test_expected_probability_no_purchases_frequent_customers[120]
0.05s call     tests/clv/models/test_beta_geo.py::TestBetaGeoModel::test_expected_num_purchases
0.05s setup    tests/clv/models/test_beta_geo.py::TestBetaGeoModel::test_model
0.05s call     tests/clv/models/test_beta_geo.py::TestBetaGeoModel::test_expected_purchases_new_customer[1]
0.02s call     tests/clv/models/test_beta_geo.py::TestBetaGeoModel::test_expected_probability_alive
0.01s call     tests/clv/models/test_beta_geo.py::TestBetaGeoModel::test_model_repr
0.01s call     tests/clv/models/test_beta_geo.py::TestBetaGeoModel::test_missing_cols

0.005s hidden.  Use -vv to show these durations.)
============ 34 passed, 3 skipped, 18 warnings in 102.25s (0:01:42) ============
(2 minutes 28 seconds) test (3.10, false, tests/clv/models/test_shifted_beta_geo.py)
============================= slowest 50 durations =============================
28.98s call     tests/clv/models/test_shifted_beta_geo.py::TestShiftedBetaGeoModel::test_distribution_customer_churn_time
9.87s call     tests/clv/models/test_shifted_beta_geo.py::TestShiftedBetaGeoModel::test_distribution_new_customer
9.62s call     tests/clv/models/test_shifted_beta_geo.py::TestShiftedBetaGeoModel::test_save_load
1.74s call     tests/clv/models/test_shifted_beta_geo.py::TestShiftedBetaGeoModel::test_model
0.03s call     tests/clv/models/test_shifted_beta_geo.py::TestShiftedBetaGeoModel::test_model_repr

0.005s hidden.  Use -vv to show these durations.)
======================== 7 passed, 1 skipped in 52.10s =========================
(3 minutes 23 seconds) test (3.10, false, tests/clv/models/test_basic.py)
============================= slowest 50 durations =============================
28.22s call     tests/clv/models/test_basic.py::TestCLVModel::test_fit_advi
8.00s call     tests/clv/models/test_basic.py::TestCLVModel::test_fit_demz
6.63s call     tests/clv/models/test_basic.py::TestCLVModel::test_fit_mcmc
1.70s call     tests/clv/models/test_basic.py::TestCLVModel::test_fit_advi_with_wrong_chains_advi_kwargs
0.29s call     tests/clv/models/test_basic.py::TestCLVModel::test_fit_summary_for_mcmc
0.17s call     tests/clv/models/test_basic.py::TestCLVModel::test_load
0.13s call     tests/clv/models/test_basic.py::TestCLVModel::test_fail_id_after_load
0.08s call     tests/clv/models/test_basic.py::TestCLVModel::test_backwards_compatibility_with_old_config
0.05s call     tests/clv/models/test_basic.py::TestCLVModel::test_fit_map
0.04s call     tests/clv/models/test_basic.py::TestCLVModel::test_fit_exception
0.02s call     tests/clv/models/test_basic.py::TestCLVModel::test_thin_fit_result
0.01s call     tests/clv/models/test_basic.py::TestCLVModel::test_repr
0.01s call     tests/clv/models/test_basic.py::TestCLVModel::test_wrong_method

0.005s hidden.  Use -vv to show these durations.)
======================= 17 passed, 3 warnings in 47.43s ========================
(4 minutes 7 seconds) test (3.10, false, tests/clv/test_distributions.py)
============================= slowest 50 durations =============================
16.71s call     tests/clv/test_distributions.py::TestBetaGeoBetaBinom::test_logp_matches_lifetimes[batch_shape1]
15.92s call     tests/clv/test_distributions.py::TestContNonContract::test_continuous_non_contractual[value3-0.3-p3-10-logp3]
13.53s call     tests/clv/test_distributions.py::TestBetaGeoBetaBinom::test_logp_matches_lifetimes[batch_shape0]
12.98s call     tests/clv/test_distributions.py::TestContNonContract::test_continuous_non_contractual[value1-lam1-0.15-10-logp1]
12.83s call     tests/clv/test_distributions.py::TestContNonContract::test_continuous_non_contractual[value0-0.4-0.15-10--8.39147106159807]
7.42s call     tests/clv/test_distributions.py::TestParetoNBD::test_pareto_nbd[value4-0.55-10.58-0.61-beta4-12]
7.15s call     tests/clv/test_distributions.py::TestBetaGeoBetaBinom::test_logp_matches_excel
6.36s call     tests/clv/test_distributions.py::TestBetaGeoBetaBinom::test_invalid_value_logp
5.50s call     tests/clv/test_distributions.py::TestContNonContract::test_continuous_non_contractual[value2-lam2-0.15-10-logp2]
4.44s call     tests/clv/test_distributions.py::TestParetoNBD::test_pareto_nbd[value1-r1-10.58-0.61-11.67-12]
3.23s call     tests/clv/test_distributions.py::TestParetoNBD::test_pareto_nbd[value3-0.55-11.67-0.61-10.58-T3]
3.02s call     tests/clv/test_distributions.py::TestParetoNBD::test_pareto_nbd[value0-0.55-10.58-0.61-11.67-12]
2.74s call     tests/clv/test_distributions.py::TestContContract::test_continuous_contractual[value1-lam1-0.15-10-logp1]
2.57s call     tests/clv/test_distributions.py::TestContContract::test_continuous_contractual[value3-0.3-p3-10-logp3]
2.02s call     tests/clv/test_distributions.py::TestBetaGeoNBD::test_bg_nbd[value3-0.55-11.67-0.61-10.58-T3]
1.95s call     tests/clv/test_distributions.py::TestBetaGeoNBD::test_bg_nbd[value0-0.55-10.58-0.61-11.67-12]
1.82s call     tests/clv/test_distributions.py::TestContContract::test_continuous_contractual[value0-0.3-0.15-10--10.45705972]
1.56s call     tests/clv/test_distributions.py::TestParetoNBD::test_pareto_nbd[value2-r2-10.58-s2-11.67-12]
1.47s call     tests/clv/test_distributions.py::TestModifiedBetaGeoNBD::test_invalid_value_logp
1.38s call     tests/clv/test_distributions.py::TestBetaGeoNBD::test_bg_nbd[value2-r2-10.58-a2-11.67-12]
1.34s call     tests/clv/test_distributions.py::TestBetaGeoBetaBinom::test_beta_geo_beta_binom_sample_prior[None-None-gamma_size3-delta_size3-beta_geo_beta_binom_size3-expected_size3]
1.27s call     tests/clv/test_distributions.py::TestBetaGeoBetaBinom::test_beta_geo_beta_binom_sample_prior[None-None-None-None-beta_geo_beta_binom_size4-expected_size4]
1.16s call     tests/clv/test_distributions.py::TestContNonContract::test_continuous_non_contractual_sample_prior[None-None-None-expected_size0]
1.10s call     tests/clv/test_distributions.py::TestBetaGeoNBD::test_invalid_value_logp
1.03s call     tests/clv/test_distributions.py::TestContNonContract::test_continuous_non_contractual_invalid
0.93s call     tests/clv/test_distributions.py::TestParetoNBD::test_pareto_nbd_invalid
0.93s call     tests/clv/test_distributions.py::TestBetaGeoNBD::test_logp_matches_excel
0.87s call     tests/clv/test_distributions.py::TestModifiedBetaGeoNBD::test_mbg_nbd[value0-0.55-10.58-0.61-11.67-12]
0.81s call     tests/clv/test_distributions.py::TestModifiedBetaGeoNBD::test_mbg_nbd[value1-r1-10.58-0.61-11.67-12]
0.81s call     tests/clv/test_distributions.py::TestContContract::test_continuous_contractual[value2-lam2-0.15-10-logp2]
0.79s call     tests/clv/test_distributions.py::TestBetaGeoNBD::test_bg_nbd[value1-r1-10.58-0.61-11.67-12]
0.71s call     tests/clv/test_distributions.py::TestContContract::test_continuous_contractual_invalid
0.67s call     tests/clv/test_distributions.py::TestBetaGeoBetaBinom::test_beta_geo_beta_binom_sample_prior[alpha_size1-None-None-None-None-expected_size1]
0.65s call     tests/clv/test_distributions.py::TestBetaGeoBetaBinom::test_beta_geo_beta_binom_sample_prior[None-beta_size2-None-None-beta_geo_beta_binom_size2-expected_size2]
0.65s call     tests/clv/test_distributions.py::TestParetoNBD::test_pareto_nbd_sample_prior[r_size1-None-None-None-None-expected_size1]
0.32s call     tests/clv/test_distributions.py::TestBetaGeoBetaBinom::test_beta_geo_beta_binom_sample_prior[None-None-None-None-None-expected_size0]
0.28s call     tests/clv/test_distributions.py::TestModifiedBetaGeoNBD::test_mbg_nbd[value3-0.55-11.67-0.61-10.58-T3]
0.24s call     tests/clv/test_distributions.py::TestModifiedBetaGeoNBD::test_mbg_nbd[value2-r2-10.58-a2-11.67-12]
0.24s call     tests/clv/test_distributions.py::TestBetaGeoNBD::test_bg_nbd_sample_prior[None-None-r_size3-alpha_size3-bg_nbd_size3-expected_size3]
0.21s call     tests/clv/test_distributions.py::TestModifiedBetaGeoNBD::test_mbg_nbd[value4-0.55-10.58-0.61-b4-12]
0.20s call     tests/clv/test_distributions.py::TestBetaGeoNBD::test_bg_nbd[value4-0.55-10.58-0.61-b4-12]
0.17s call     tests/clv/test_distributions.py::TestModifiedBetaGeoNBD::test_mbg_nbd_sample_prior[None-None-r_size3-alpha_size3-mbg_nbd_size3-expected_size3]
0.13s call     tests/clv/test_distributions.py::TestParetoNBD::test_pareto_nbd_sample_prior[None-None-s_size3-beta_size3-pareto_nbd_size3-expected_size3]
0.13s call     tests/clv/test_distributions.py::TestBetaGeoNBD::test_bg_nbd_sample_prior[None-None-None-None-bg_nbd_size4-expected_size4]
0.12s call     tests/clv/test_distributions.py::TestModifiedBetaGeoNBD::test_mbg_nbd_sample_prior[None-None-None-None-mbg_nbd_size4-expected_size4]
0.12s call     tests/clv/test_distributions.py::TestBetaGeoNBD::test_bg_nbd_sample_prior[a_size1-None-None-None-None-expected_size1]
0.11s call     tests/clv/test_distributions.py::TestBetaGeoNBD::test_bg_nbd_sample_prior[None-b_size2-None-None-bg_nbd_size2-expected_size2]
0.11s call     tests/clv/test_distributions.py::TestModifiedBetaGeoNBD::test_mbg_nbd_sample_prior[None-b_size2-None-None-mbg_nbd_size2-expected_size2]
0.11s call     tests/clv/test_distributions.py::TestModifiedBetaGeoNBD::test_mbg_nbd_sample_prior[a_size1-None-None-None-None-expected_size1]
0.10s call     tests/clv/test_distributions.py::TestParetoNBD::test_pareto_nbd_sample_prior[None-None-None-None-pareto_nbd_size4-expected_size4]
======================== 66 passed in 144.41s (0:02:24) ========================
(3 minutes 7 seconds) test (3.10, false, tests/clv/ --ignore=tests/clv/models/test_pareto_nbd.py --ignore=tests/clv/mod...
============================= slowest 50 durations =============================
25.15s call     tests/clv/test_utils.py::TestCustomerLifetimeValue::test_customer_lifetime_value_as_gg_method[fitted_pnbd]
21.06s call     tests/clv/models/test_gamma_gamma.py::TestGammaGammaModel::test_spend[True]
6.64s call     tests/clv/models/test_modified_beta_geo.py::TestModifiedBetaGeoModel::test_numerically_stable_logp[0-0--0.41792826]
3.31s setup    tests/clv/models/test_gamma_gamma.py::TestGammaGammaModel::test_missing_columns
3.28s call     tests/clv/models/test_modified_beta_geo.py::TestModifiedBetaGeoModel::test_distribution_new_customer
3.10s setup    tests/clv/test_plotting.py::test_plot_expected_purchases_ppc_exceptions[bg_model]
2.36s call     tests/clv/models/test_gamma_gamma.py::TestGammaGammaModel::test_spend[False]
2.08s call     tests/clv/models/test_modified_beta_geo.py::TestModifiedBetaGeoModel::test_fit_result_without_fit
1.88s call     tests/clv/test_plotting.py::test_plot_expected_purchases_ppc[pnbd_model-prior-10-100-None]
1.71s call     tests/clv/test_plotting.py::test_plot_expected_purchases_ppc[mbg_model-prior-10-100-None]
1.69s call     tests/clv/test_plotting.py::test_plot_expected_purchases_ppc[bg_model-prior-10-100-None]
1.37s call     tests/clv/models/test_gamma_gamma.py::TestGammaGammaModelIndividual::test_save_load
1.02s call     tests/clv/models/test_modified_beta_geo.py::TestModifiedBetaGeoModel::test_numerically_stable_logp[200-38-100.7869]
1.01s call     tests/clv/test_utils.py::TestCustomerLifetimeValue::test_clv_after_thinning[fitted_pnbd]
0.99s call     tests/clv/test_plotting.py::test_plot_expected_purchases_ppc[pnbd_model-posterior-20-50-subplot1]
0.91s call     tests/clv/test_plotting.py::test_plot_expected_purchases_ppc[bg_model-posterior-20-50-subplot1]
0.90s call     tests/clv/test_plotting.py::test_plot_expected_purchases_ppc[mbg_model-posterior-20-50-subplot1]
0.83s setup    tests/clv/test_utils.py::TestCustomerLifetimeValue::test_missing_col
0.67s call     tests/clv/test_utils.py::TestCustomerLifetimeValue::test_map_posterior_mix_fit_types[fitted_pnbd-False-True]
0.57s call     tests/clv/test_utils.py::TestCustomerLifetimeValue::test_map_posterior_mix_fit_types[fitted_pnbd-True-True]
0.43s call     tests/clv/test_plotting.py::test_plot_customer_exposure[kwargs0]
0.42s call     tests/clv/test_utils.py::TestCustomerLifetimeValue::test_map_posterior_mix_fit_types[fitted_pnbd-True-False]
0.40s call     tests/clv/test_utils.py::TestCustomerLifetimeValue::test_map_posterior_mix_fit_types[fitted_pnbd-False-False]
0.32s call     tests/clv/test_utils.py::test_expected_cumulative_transactions_dedups_inside_a_time_period
0.28s call     tests/clv/test_utils.py::test_expected_cumulative_incremental_transactions_equals_r_btyd_walkthrough
0.23s call     tests/clv/test_plotting.py::test_plot_probability_alive_matrix_bounds
0.22s call     tests/clv/models/test_gamma_gamma.py::TestGammaGammaModel::test_new_customer_spend[True]
0.22s call     tests/clv/test_utils.py::test_expected_cumulative_transactions_date_index
0.22s call     tests/clv/models/test_gamma_gamma.py::TestGammaGammaModel::test_save_load
0.21s call     tests/clv/test_plotting.py::test_plot_expected_purchases_over_time[True-False-None]
0.20s call     tests/clv/test_plotting.py::test_plot_customer_exposure_with_ax
0.20s call     tests/clv/test_plotting.py::test_plot_customer_exposure[kwargs2]
0.20s call     tests/clv/test_plotting.py::test_plot_customer_exposure[kwargs1]
0.20s call     tests/clv/test_plotting.py::test_plot_customer_exposure_invalid_args[kwargs0]
0.17s call     tests/clv/models/test_modified_beta_geo.py::TestModifiedBetaGeoModel::test_save_load
0.12s call     tests/clv/test_utils.py::TestCustomerLifetimeValue::test_clv_after_thinning[fitted_bg]
0.08s call     tests/clv/test_utils.py::TestCustomerLifetimeValue::test_customer_lifetime_value_as_gg_method[fitted_bg]
0.08s call     tests/clv/test_utils.py::TestCustomerLifetimeValue::test_map_posterior_mix_fit_types[fitted_bg-True-True]
0.08s call     tests/clv/models/test_modified_beta_geo.py::TestModifiedBetaGeoModel::test_expected_num_purchases_new_customer_warning
0.08s call     tests/clv/test_plotting.py::test_plot_expected_purchases_over_time_exceptions
0.07s call     tests/clv/test_plotting.py::test_plot_expected_purchases_over_time[False-True-subplot1]
0.07s call     tests/clv/models/test_modified_beta_geo.py::TestModifiedBetaGeoModel::test_expected_purchases[1]
0.07s call     tests/clv/models/test_modified_beta_geo.py::TestModifiedBetaGeoModel::test_expected_purchases[6]
0.07s call     tests/clv/models/test_gamma_gamma.py::TestGammaGammaModel::test_new_customer_spend[False]
0.07s call     tests/clv/models/test_modified_beta_geo.py::TestModifiedBetaGeoModel::test_expected_purchases[3]
0.07s call     tests/clv/test_utils.py::TestCustomerLifetimeValue::test_customer_lifetime_value_bg_with_known_values[2-1-0.75]
0.06s call     tests/clv/models/test_modified_beta_geo.py::TestModifiedBetaGeoModel::test_expected_purchases_new_customer[6]
0.06s call     tests/clv/models/test_modified_beta_geo.py::TestModifiedBetaGeoModel::test_model
0.06s call     tests/clv/test_utils.py::TestCustomerLifetimeValue::test_map_posterior_mix_fit_types[fitted_bg-False-True]
0.05s call     tests/clv/models/test_modified_beta_geo.py::TestModifiedBetaGeoModel::test_expected_num_purchases
============ 125 passed, 5 skipped, 5 warnings in 89.70s (0:01:29) =============
(5 minutes 57 seconds) test (3.12, true, --ignore tests/mmm --ignore tests/clv)
============================= slowest 50 durations =============================
75.97s call     tests/test_mlflow.py::test_autolog_mmm
32.55s call     tests/test_mlflow.py::test_clv_fit_mcmc[BetaGeoModel]
23.89s call     tests/test_mlflow.py::test_clv_fit_map[BetaGeoModel]
14.99s call     tests/test_mlflow.py::test_file_system_uri_supported
13.92s call     tests/test_mlflow.py::test_autolog_pymc_model[nutpie]
10.05s call     tests/test_prior.py::test_censored_logp[scalar]
7.69s setup    tests/customer_choice/test_mv_its.py::test_MVITS_saturated[plot_fit]
6.81s setup    tests/test_prior.py::test_censored_normal_logp[-10]
4.28s call     tests/test_mlflow.py::test_log_with_data_in_likelihood
3.70s call     tests/test_mlflow.py::test_autolog_pymc_model[numpyro]
3.62s call     tests/test_mlflow.py::test_autolog_pymc_model[blackjax]
3.12s call     tests/test_mlflow.py::test_log_data_no_data
2.10s call     tests/customer_choice/test_mv_its.py::test_MVITS_unsaturated[plot_fit-unsaturated_model_bad]
1.64s call     tests/test_prior.py::test_censored_logp[vector]
1.56s call     tests/test_mlflow.py::test_logging_callback
1.28s call     tests/test_mlflow.py::test_autolog_pymc_model[pymc]
0.96s call     tests/test_model_builder.py::test_xarray_model_builder[DataArray]
0.78s call     tests/test_prior.py::test_sample_prior_arbitrary_no_name
0.76s setup    tests/test_model_builder.py::test_save_input_params
0.72s call     tests/customer_choice/test_mv_its.py::test_save_load
0.68s call     tests/test_prior.py::test_censored_sample_prior
0.61s call     tests/test_prior.py::test_custom_transform
0.55s call     tests/customer_choice/test_mv_its.py::test_MVITS_unsaturated[plot_fit-unsaturated_model_good]
0.35s call     tests/test_plot.py::test_plot_curve_custom_colors
0.34s call     tests/test_model_builder.py::test_fit_after_prior_keeps_prior
0.34s call     tests/test_plot.py::test_plot_curve
0.34s call     tests/test_model_builder.py::test_save_load
0.34s call     tests/test_plot.py::test_plot_curve_custom_sel_to_string
0.31s call     tests/test_plot.py::test_plot_functions[no_legend-different_axes-plot_samples]
0.31s call     tests/test_plot.py::test_plot_functions[legend-different_axes-plot_samples]
0.24s call     tests/customer_choice/test_mv_its.py::test_MVITS_unsaturated[plot_causal_impact_sales-unsaturated_model_good]
0.20s call     tests/test_model_builder.py::test_second_fit
0.18s call     tests/test_model_builder.py::test_X_pred_prior_deprecation
0.18s call     tests/test_model_builder.py::test_sample_xxx_predictive_keeps_second[prior_predictive]
0.18s call     tests/test_model_builder.py::test_fit_random_seed_reproducibility[int]
0.17s call     tests/test_model_builder.py::test_fit_sampler_config_seed_reproducibility
0.17s call     tests/test_model_builder.py::test_fit_random_seed_reproducibility[rng]
0.17s call     tests/test_model_builder.py::test_sample_xxx_predictive_keeps_second[posterior_predictive]
0.16s call     tests/test_plot.py::test_plot_curve_supply_axes_same_axes
0.15s call     tests/test_plot.py::test_plot_functions[legend-same_axes-plot_samples]
0.15s call     tests/test_model_builder.py::test_fit
0.13s call     tests/test_plot.py::test_plot_functions[no_legend-same_axes-plot_samples]
0.12s call     tests/test_model_builder.py::test_xarray_model_builder[Dataset]
0.12s call     tests/customer_choice/test_mv_its.py::test_MVITS_saturated[plot_fit]
0.11s call     tests/test_prior.py::test_create_variable
0.11s call     tests/test_model_builder.py::test_empty_sampler_config_fit
0.11s call     tests/test_model_builder.py::test_fit_no_t
0.10s call     tests/test_model_builder.py::test_insufficient_attrs
0.10s call     tests/test_mlflow.py::test_log_mmm_evaluation_metrics
0.10s call     tests/test_model_builder.py::test_incorrect_set_idata_attrs_override
================= 233 passed, 21 warnings in 225.08s (0:03:45) =================
(13 minutes 0 seconds) test (3.12, true, tests/mmm --ignore tests/mmm/test_tvp.py --ignore tests/mmm/test_budget_optimiz...
============================= slowest 50 durations =============================
22.11s call     tests/mmm/test_mmm.py::TestMMM::test_allocate_budget_to_maximize_response
16.77s call     tests/mmm/test_mmm.py::TestMMM::test_init[no_time_varying_media-time_varying_intercept-no_yearly_seasonality-single_channel-no_control-adstock_max_lag=1]
12.61s call     tests/mmm/test_lift_test.py::test_works_with_negative_delta
11.67s call     tests/mmm/test_multidimensional.py::test_fit[tvp intercept only, no fourier-Marginal model]
10.90s call     tests/mmm/components/test_adstock.py::test_apply[x1-channel-delayed]
10.87s call     tests/mmm/components/test_adstock.py::test_apply[x0-None-delayed]
9.27s call     tests/mmm/components/test_adstock.py::test_apply[x0-None-weibull_pdf]
9.25s call     tests/mmm/test_linear_trend.py::test_apply[with_intercept]
9.15s call     tests/mmm/test_multidimensional.py::test_fit[tvp intercept only, no fourier-County model]
8.17s setup    tests/mmm/test_multidimensional.py::test_simple_fit
7.58s call     tests/mmm/test_media_transformation.py::test_apply_media_transformation[scalar-vector]
7.00s call     tests/mmm/test_mmm.py::TestMMM::test_channel_contributions_forward_pass_is_consistent
6.69s call     tests/mmm/test_utility.py::test_mean_tightness_score
6.54s call     tests/mmm/test_linear_trend.py::test_apply_additional_dims[scalar]
6.24s call     tests/mmm/test_utility.py::test_conditional_value_at_risk
6.15s call     tests/mmm/test_media_transformation.py::test_apply_media_transformation[scalar-scalar]
5.53s call     tests/mmm/test_multidimensional.py::test_fit[tvp media only with fourier-County model]
4.62s call     tests/mmm/test_mmm.py::TestMMM::test_init[time_varying_media-time_varying_intercept-no_yearly_seasonality-single_channel-no_control-adstock_max_lag=1]
4.27s call     tests/mmm/test_media_transformation.py::test_apply_media_transformation[vector-scalar]
4.08s call     tests/mmm/test_multidimensional.py::test_mmm_with_events
4.08s call     tests/mmm/test_multidimensional.py::test_fit[no tvps or fourier-Marginal model]
4.07s call     tests/mmm/test_multidimensional.py::test_fit[tvps and fourier-County model]
4.04s call     tests/mmm/test_multidimensional.py::test_fit[tvps and fourier-Marginal model]
3.92s call     tests/mmm/test_multidimensional.py::test_fit[tvp media only with fourier-Marginal model]
3.88s call     tests/mmm/components/test_adstock.py::test_apply[x0-None-weibull_cdf]
3.88s setup    tests/mmm/test_mmm.py::test_save_load_with_media_transformation
3.75s call     tests/mmm/test_mmm.py::TestMMM::test_init[time_varying_media-no_time_varying_intercept-no_yearly_seasonality-single_channel-no_control-adstock_max_lag=1]
3.69s call     tests/mmm/components/test_adstock.py::test_apply[x0-None-geometric]
3.69s call     tests/mmm/test_mmm.py::test_save_load_with_tvp[True-True]
3.67s call     tests/mmm/test_fourier.py::test_sample_curve[yearly]
3.57s call     tests/mmm/test_multidimensional.py::test_different_target_scaling
3.55s call     tests/mmm/components/test_base.py::test_transform_sample_curve_with_variable_factory
3.17s call     tests/mmm/test_utility.py::test_sharpe_ratio
3.13s call     tests/mmm/test_mmm.py::test_save_load_with_tvp[True-False]
3.12s call     tests/mmm/test_utility.py::test_covariance_matrix_matches_numpy[data0]
2.90s call     tests/mmm/test_mmm.py::TestMMM::test_init[time_varying_media-time_varying_intercept-yearly_seasonality-single_channel-one_control-adstock_max_lag=1]
2.90s call     tests/mmm/test_mmm.py::TestMMM::test_init[no_time_varying_media-no_time_varying_intercept-yearly_seasonality-single_channel-no_control-adstock_max_lag=1]
2.88s call     tests/mmm/test_mmm.py::TestMMM::test_init[time_varying_media-time_varying_intercept-no_yearly_seasonality-single_channel-no_control-adstock_max_lag=4]
2.77s setup    tests/mmm/test_mmm.py::test_plotting_media_transform_workflow[adstock]
2.75s call     tests/mmm/test_mmm.py::TestMMM::test_init[time_varying_media-time_varying_intercept-no_yearly_seasonality-single_channel-one_control-adstock_max_lag=1]
2.75s call     tests/mmm/test_mmm.py::TestMMM::test_init[time_varying_media-time_varying_intercept-no_yearly_seasonality-single_channel-one_control-adstock_max_lag=4]
2.74s call     tests/mmm/test_mmm.py::test_save_load_with_tvp[False-True]
2.63s call     tests/mmm/test_mmm.py::test_plotting_media_transform_workflow[adstock]
2.48s call     tests/mmm/test_mmm.py::TestMMM::test_init[no_time_varying_media-time_varying_intercept-no_yearly_seasonality-single_channel-one_control-adstock_max_lag=1]
2.43s call     tests/mmm/test_multidimensional.py::test_fit[no tvps with fourier-County model]
2.41s call     tests/mmm/test_mmm.py::TestMMM::test_init[time_varying_media-time_varying_intercept-yearly_seasonality-single_channel-one_control-adstock_max_lag=4]
2.39s call     tests/mmm/test_mmm.py::TestMMM::test_init[time_varying_media-time_varying_intercept-yearly_seasonality-multiple_channel-one_control-adstock_max_lag=4]
2.37s call     tests/mmm/test_mmm.py::TestMMM::test_init[no_time_varying_media-time_varying_intercept-yearly_seasonality-single_channel-one_control-adstock_max_lag=1]
2.35s call     tests/mmm/test_fourier.py::test_additional_dimension[yearly]
2.32s call     tests/mmm/test_mmm.py::TestMMM::test_init[time_varying_media-time_varying_intercept-no_yearly_seasonality-single_channel-two_controls-adstock_max_lag=4]
================ 1226 passed, 90 warnings in 624.31s (0:10:24) =================
(7 minutes 22 seconds) test (3.12, true, tests/mmm/test_tvp.py tests/mmm/test_budget_optimizer.py tests/mmm/test_hsgp.py...
============================= slowest 50 durations =============================
55.93s call     tests/mmm/test_tvp.py::test_time_varying_prior
29.78s call     tests/mmm/test_budget_optimizer.py::test_allocate_budget[default_minimizer_kwargs]
26.04s call     tests/mmm/test_tvp.py::test_multidimensional
15.94s call     tests/mmm/test_transformers.py::TestsAdstockTransformers::test_weibull_adstock_vectorized[PDF]
14.49s call     tests/mmm/test_hsgp.py::test_curve_workflow[HSGP]
12.81s call     tests/mmm/test_budget_optimizer.py::test_allocate_budget_custom_response_constraint[budget=10->resp=5]
9.47s call     tests/mmm/test_hsgp.py::test_curve_workflow[HSGPPeriodic]
8.43s call     tests/mmm/test_transformers.py::TestsAdstockTransformers::test_weibull_adstock_vectorized[CDF]
7.17s call     tests/mmm/test_hsgp.py::test_higher_dimension_hsgp
7.10s call     tests/mmm/test_transformers.py::TestsAdstockTransformers::test_weibull_pdf_adstock[x0-1-1-4]
7.01s call     tests/mmm/test_transformers.py::TestsAdstockTransformers::test_geometric_adstock_vectorized[After]
5.91s call     tests/mmm/test_transformers.py::TestsAdstockTransformers::test_weibull_cdf_adsotck[x2-0.7-1-100]
4.87s call     tests/mmm/test_transformers.py::TestTransformersComposition::test_geometric_adstock_vectorized_logistic_saturation
4.61s call     tests/mmm/test_hsgp.py::test_soft_plus_hsgp_continous_with_new_data
3.95s call     tests/mmm/test_transformers.py::TestsAdstockTransformers::test_delayed_adstock_vectorized[After]
3.93s call     tests/mmm/test_hsgp.py::test_hsgp_with_shared_data
3.75s call     tests/mmm/test_transformers.py::TestsAdstockTransformers::test_weibull_pdf_adstock[x2-0.7-1-100]
3.68s call     tests/mmm/test_transformers.py::TestsAdstockTransformers::test_weibull_cdf_adsotck[x6-0.8-1-50]
3.66s call     tests/mmm/test_transformers.py::TestSaturationTransformers::test_tanh_saturation_parameterization_transformation[x0-20-0.5]
3.35s call     tests/mmm/test_transformers.py::TestsAdstockTransformers::test_weibull_cdf_adsotck[x0-1-1-4]
3.24s call     tests/mmm/test_hsgp.py::test_hsgp_periodic_with_transform
3.19s call     tests/mmm/test_hsgp.py::test_soft_plus_hsgp_is_centered_around_1
3.16s call     tests/mmm/test_transformers.py::TestsAdstockTransformers::test_geometric_adstock_good_alpha[x1-0.7-100]
3.12s call     tests/mmm/test_transformers.py::TestsAdstockTransformers::test_weibull_pdf_adstock[x1-0.3-0.5-10]
3.09s call     tests/mmm/test_transformers.py::TestSaturationTransformers::test_tanh_saturation_parameterization_transformation[x1-100-0.5]
2.93s call     tests/mmm/test_budget_optimizer.py::test_allocate_budget_infeasible_constraints[100-budget_bounds0-parameters0-custom_constraints0]
2.89s call     tests/mmm/test_transformers.py::test_batched_convolution_broadcasting
2.73s call     tests/mmm/test_transformers.py::TestsAdstockTransformers::test_geometric_adstock_x_zero[After]
2.20s call     tests/mmm/test_budget_optimizer.py::test_allocate_budget_custom_response_constraint[budget=50->resp=10]
2.20s call     tests/mmm/test_transformers.py::TestsAdstockTransformers::test_geometric_adstock_good_alpha[x5-0.8-50]
2.03s call     tests/mmm/test_transformers.py::TestsAdstockTransformers::test_geometric_adstock_bad_alpha[less_than_zero_1]
2.01s call     tests/mmm/test_tvp.py::test_calling_without_default_args
2.01s call     tests/mmm/test_transformers.py::TestsAdstockTransformers::test_geometric_adstock_vectorized[Before]
2.00s call     tests/mmm/test_transformers.py::TestsAdstockTransformers::test_geometric_adstock_vectorized[Overlap]
1.98s call     tests/mmm/test_transformers.py::TestSaturationTransformers::test_tanh_saturation_baselined_range[x0-10-0.5-0.5]
1.97s call     tests/mmm/test_transformers.py::test_batched_convolution[ndarray-0-After]
1.94s call     tests/mmm/test_transformers.py::TestsAdstockTransformers::test_geometric_adstock_good_alpha[x3-0.5-7]
1.82s call     tests/mmm/test_transformers.py::TestsAdstockTransformers::test_weibull_cdf_adsotck[x1-0.3-0.5-10]
1.77s call     tests/mmm/test_transformers.py::TestSaturationTransformers::test_hill_sigmoid_monotonicity[1-1-0]
1.73s call     tests/mmm/test_transformers.py::TestTransformersComposition::test_delayed_adstock_vectorized_logistic_saturation
1.58s call     tests/mmm/test_transformers.py::TestTransformersComposition::test_logistic_saturation_geometric_adstock_composition[x0-0.5-1.0]
1.57s call     tests/mmm/test_transformers.py::TestsAdstockTransformers::test_geometric_adstock_good_alpha[x0-0.3-10]
1.56s call     tests/mmm/test_transformers.py::TestTransformersComposition::test_logistic_saturation_geometric_adstock_composition[x1-0.2-19.0]
1.56s call     tests/mmm/test_budget_optimizer.py::test_allocate_budget[custom_minimizer_kwargs]
1.54s call     tests/mmm/test_transformers.py::test_batched_convolution[TensorVariable--1-After]
1.54s call     tests/mmm/test_transformers.py::TestSaturationTransformers::test_inverse_scaled_logistic_saturation_min_max_value
1.49s call     tests/mmm/test_transformers.py::TestsAdstockTransformers::test_weibull_pdf_adstock[x6-0.8-1-50]
1.49s call     tests/mmm/test_transformers.py::TestTransformersComposition::test_logistic_saturation_geometric_adstock_composition[x2-0.6-5.0]
1.41s call     tests/mmm/test_transformers.py::TestsAdstockTransformers::test_delayed_adstock_vectorized[Before]
1.41s call     tests/mmm/test_transformers.py::TestsAdstockTransformers::test_delayed_adstock_vectorized[Overlap]
================= 215 passed, 47 warnings in 335.56s (0:05:35) =================
(4 minutes 25 seconds) test (3.12, true, tests/clv/models/test_pareto_nbd.py)
============================= slowest 50 durations =============================
46.09s call     tests/clv/models/test_pareto_nbd.py::TestParetoNBDModelWithCovariates::test_covariate_model_convergence
27.81s call     tests/clv/models/test_pareto_nbd.py::TestParetoNBDModel::test_expected_purchases[1]
20.53s call     tests/clv/models/test_pareto_nbd.py::TestParetoNBDModel::test_posterior_distributions[map]
16.59s call     tests/clv/models/test_pareto_nbd.py::TestParetoNBDModelWithCovariates::test_logp
11.63s call     tests/clv/models/test_pareto_nbd.py::TestParetoNBDModelWithCovariates::test_expectation_method
10.77s call     tests/clv/models/test_pareto_nbd.py::TestParetoNBDModelWithCovariates::test_distribution_method
2.13s call     tests/clv/models/test_pareto_nbd.py::TestParetoNBDModel::test_posterior_distributions[advi]
2.12s call     tests/clv/models/test_pareto_nbd.py::TestParetoNBDModel::test_posterior_distributions[mcmc]
1.95s call     tests/clv/models/test_pareto_nbd.py::TestParetoNBDModelWithCovariates::test_extract_predictive_covariates
1.50s call     tests/clv/models/test_pareto_nbd.py::TestParetoNBDModel::test_fit_exception
1.00s call     tests/clv/models/test_pareto_nbd.py::TestParetoNBDModel::test_model
0.99s call     tests/clv/models/test_pareto_nbd.py::TestParetoNBDModel::test_expected_probability_alive
0.84s call     tests/clv/models/test_pareto_nbd.py::TestParetoNBDModel::test_expected_purchase_probability[2-2]
0.77s call     tests/clv/models/test_pareto_nbd.py::TestParetoNBDModel::test_expected_purchase_probability[1-1]
0.70s call     tests/clv/models/test_pareto_nbd.py::TestParetoNBDModel::test_expected_purchase_probability[0-0]
0.53s call     tests/clv/models/test_pareto_nbd.py::TestParetoNBDModel::test_expected_purchases[6]
0.53s call     tests/clv/models/test_pareto_nbd.py::TestParetoNBDModel::test_expected_purchases[3]
0.26s setup    tests/clv/models/test_pareto_nbd.py::TestParetoNBDModelWithCovariates::test_extract_predictive_covariates
0.26s call     tests/clv/models/test_pareto_nbd.py::TestParetoNBDModel::test_save_load_pareto_nbd
0.06s setup    tests/clv/models/test_pareto_nbd.py::TestParetoNBDModel::test_model
0.01s call     tests/clv/models/test_pareto_nbd.py::TestParetoNBDModel::test_expected_purchases_new_customer[1]
0.01s call     tests/clv/models/test_pareto_nbd.py::TestParetoNBDModel::test_missing_cols
0.01s call     tests/clv/models/test_pareto_nbd.py::TestParetoNBDModel::test_expected_purchases_new_customer[3]
0.01s call     tests/clv/models/test_pareto_nbd.py::TestParetoNBDModel::test_expected_purchases_new_customer[6]

0.005s hidden.  Use -vv to show these durations.)
============ 24 passed, 3 skipped, 3 warnings in 148.76s (0:02:28) =============
(3 minutes 58 seconds) test (3.12, true, tests/clv/models/test_beta_geo_beta_binom.py)
============================= slowest 50 durations =============================
42.48s call     tests/clv/models/test_beta_geo_beta_binom.py::TestBetaGeoBetaBinomModel::test_expected_purchases[1]
12.63s call     tests/clv/models/test_beta_geo_beta_binom.py::TestBetaGeoBetaBinomModel::test_expected_probability_alive[6]
12.62s call     tests/clv/models/test_beta_geo_beta_binom.py::TestBetaGeoBetaBinomModel::test_expected_probability_alive[3]
12.58s call     tests/clv/models/test_beta_geo_beta_binom.py::TestBetaGeoBetaBinomModel::test_expected_probability_alive[1]
11.42s call     tests/clv/models/test_beta_geo_beta_binom.py::TestBetaGeoBetaBinomModel::test_expected_purchases[3]
11.28s call     tests/clv/models/test_beta_geo_beta_binom.py::TestBetaGeoBetaBinomModel::test_expected_purchases[6]
3.22s call     tests/clv/models/test_beta_geo_beta_binom.py::TestBetaGeoBetaBinomModel::test_fit_result_without_fit
3.08s call     tests/clv/models/test_beta_geo_beta_binom.py::TestBetaGeoBetaBinomModel::test_distribution_new_customer
1.30s call     tests/clv/models/test_beta_geo_beta_binom.py::TestBetaGeoBetaBinomModel::test_model
0.76s call     tests/clv/models/test_beta_geo_beta_binom.py::TestBetaGeoBetaBinomModel::test_expected_purchases_new_customer
0.25s call     tests/clv/models/test_beta_geo_beta_binom.py::TestBetaGeoBetaBinomModel::test_save_load
0.06s setup    tests/clv/models/test_beta_geo_beta_binom.py::TestBetaGeoBetaBinomModel::test_model
0.03s call     tests/clv/models/test_beta_geo_beta_binom.py::TestBetaGeoBetaBinomModel::test_model_repr[False]
0.02s call     tests/clv/models/test_beta_geo_beta_binom.py::TestBetaGeoBetaBinomModel::test_model_repr[True]
0.01s call     tests/clv/models/test_beta_geo_beta_binom.py::TestBetaGeoBetaBinomModel::test_missing_cols

0.005s hidden.  Use -vv to show these durations.)
============ 16 passed, 2 skipped, 2 warnings in 113.27s (0:01:53) =============
(3 minutes 57 seconds) test (3.12, true, tests/clv/models/test_beta_geo.py)
============================= slowest 50 durations =============================
25.59s call     tests/clv/models/test_beta_geo.py::TestBetaGeoModelWithCovariates::test_covariate_model_convergence_phi_kappa
23.36s call     tests/clv/models/test_beta_geo.py::TestBetaGeoModelWithCovariates::test_covariate_model_convergence_a_b
22.86s call     tests/clv/models/test_beta_geo.py::TestBetaGeoModel::test_posterior_distributions[map]
14.33s call     tests/clv/models/test_beta_geo.py::TestBetaGeoModelWithCovariates::test_logp
10.36s call     tests/clv/models/test_beta_geo.py::TestBetaGeoModel::test_numerically_stable_logp[0-0--0.59947382]
3.32s call     tests/clv/models/test_beta_geo.py::TestBetaGeoModelWithCovariates::test_extract_predictive_covariates
3.01s call     tests/clv/models/test_beta_geo.py::TestBetaGeoModelWithCovariates::test_distribution_method
2.40s call     tests/clv/models/test_beta_geo.py::TestBetaGeoModel::test_fit_result_without_fit
2.24s call     tests/clv/models/test_beta_geo.py::TestBetaGeoModel::test_posterior_distributions[mcmc]
1.42s call     tests/clv/models/test_beta_geo.py::TestBetaGeoModel::test_numerically_stable_logp[200-38-100.7957]
1.28s call     tests/clv/models/test_beta_geo.py::TestBetaGeoModel::test_model
0.53s call     tests/clv/models/test_beta_geo.py::TestBetaGeoModel::test_distribution_new_customer
0.27s call     tests/clv/models/test_beta_geo.py::TestBetaGeoModel::test_save_load
0.24s call     tests/clv/models/test_beta_geo.py::TestBetaGeoModelWithCovariates::test_expectation_method
0.21s setup    tests/clv/models/test_beta_geo.py::TestBetaGeoModel::test_model
0.10s setup    tests/clv/models/test_beta_geo.py::TestBetaGeoModelWithCovariates::test_extract_predictive_covariates
0.09s call     tests/clv/models/test_beta_geo.py::TestBetaGeoModel::test_expected_num_purchases_new_customer_warning
0.08s call     tests/clv/models/test_beta_geo.py::TestBetaGeoModel::test_expected_purchases[6]
0.07s call     tests/clv/models/test_beta_geo.py::TestBetaGeoModel::test_expected_purchases[3]
0.07s call     tests/clv/models/test_beta_geo.py::TestBetaGeoModel::test_expected_purchases[1]
0.07s call     tests/clv/models/test_beta_geo.py::TestBetaGeoModel::test_expected_purchases_new_customer[6]
0.06s call     tests/clv/models/test_beta_geo.py::TestBetaGeoModel::test_expected_probability_no_purchases_infrequent_customers
0.06s call     tests/clv/models/test_beta_geo.py::TestBetaGeoModel::test_expected_probability_no_purchases_now
0.06s call     tests/clv/models/test_beta_geo.py::TestBetaGeoModel::test_expected_probability_no_purchases[30]
0.06s call     tests/clv/models/test_beta_geo.py::TestBetaGeoModel::test_expected_probability_no_purchases_frequent_customers[30]
0.06s call     tests/clv/models/test_beta_geo.py::TestBetaGeoModel::test_expected_probability_no_purchases_frequent_customers[90]
0.06s call     tests/clv/models/test_beta_geo.py::TestBetaGeoModel::test_expected_num_purchases
0.06s call     tests/clv/models/test_beta_geo.py::TestBetaGeoModel::test_expected_probability_no_purchases[0]
0.06s call     tests/clv/models/test_beta_geo.py::TestBetaGeoModel::test_expected_probability_no_purchases_frequent_customers[120]
0.06s call     tests/clv/models/test_beta_geo.py::TestBetaGeoModel::test_expected_probability_no_purchases[90]
0.06s call     tests/clv/models/test_beta_geo.py::TestBetaGeoModel::test_expected_purchases_new_customer[3]
0.04s call     tests/clv/models/test_beta_geo.py::TestBetaGeoModel::test_expected_purchases_new_customer[1]
0.03s call     tests/clv/models/test_beta_geo.py::TestBetaGeoModel::test_expected_probability_alive
0.01s call     tests/clv/models/test_beta_geo.py::TestBetaGeoModel::test_model_repr
0.01s call     tests/clv/models/test_beta_geo.py::TestBetaGeoModel::test_missing_cols

0.005s hidden.  Use -vv to show these durations.)
============ 34 passed, 3 skipped, 19 warnings in 114.49s (0:01:54) ============
(2 minutes 54 seconds) test (3.12, true, tests/clv/models/test_shifted_beta_geo.py)
============================= slowest 50 durations =============================
30.79s call     tests/clv/models/test_shifted_beta_geo.py::TestShiftedBetaGeoModel::test_distribution_customer_churn_time
10.99s call     tests/clv/models/test_shifted_beta_geo.py::TestShiftedBetaGeoModel::test_distribution_new_customer
10.27s call     tests/clv/models/test_shifted_beta_geo.py::TestShiftedBetaGeoModel::test_save_load
1.04s call     tests/clv/models/test_shifted_beta_geo.py::TestShiftedBetaGeoModel::test_model
0.04s call     tests/clv/models/test_shifted_beta_geo.py::TestShiftedBetaGeoModel::test_model_repr
0.01s call     tests/clv/models/test_shifted_beta_geo.py::TestShiftedBetaGeoModel::test_missing_cols
0.01s call     tests/clv/models/test_shifted_beta_geo.py::TestShiftedBetaGeoModel::test_invalid_t_churn
0.01s setup    tests/clv/models/test_shifted_beta_geo.py::TestShiftedBetaGeoModel::test_missing_cols

0.005s hidden.  Use -vv to show these durations.)
======================== 7 passed, 1 skipped in 54.67s =========================
(2 minutes 43 seconds) test (3.12, true, tests/clv/models/test_basic.py)
============================= slowest 50 durations =============================
29.91s call     tests/clv/models/test_basic.py::TestCLVModel::test_fit_advi
8.27s call     tests/clv/models/test_basic.py::TestCLVModel::test_fit_demz
2.37s call     tests/clv/models/test_basic.py::TestCLVModel::test_fit_mcmc
1.84s call     tests/clv/models/test_basic.py::TestCLVModel::test_fit_advi_with_wrong_chains_advi_kwargs
0.51s call     tests/clv/models/test_basic.py::TestCLVModel::test_fit_summary_for_mcmc
0.21s call     tests/clv/models/test_basic.py::TestCLVModel::test_load
0.14s call     tests/clv/models/test_basic.py::TestCLVModel::test_fail_id_after_load
0.09s call     tests/clv/models/test_basic.py::TestCLVModel::test_backwards_compatibility_with_old_config
0.05s call     tests/clv/models/test_basic.py::TestCLVModel::test_fit_map
0.04s call     tests/clv/models/test_basic.py::TestCLVModel::test_fit_exception
0.02s call     tests/clv/models/test_basic.py::TestCLVModel::test_thin_fit_result
0.02s call     tests/clv/models/test_basic.py::TestCLVModel::test_repr
0.01s call     tests/clv/models/test_basic.py::TestCLVModel::test_wrong_method

0.005s hidden.  Use -vv to show these durations.)
======================= 17 passed, 3 warnings in 44.84s ========================
(5 minutes 22 seconds) test (3.12, true, tests/clv/test_distributions.py)
============================= slowest 50 durations =============================
19.43s call     tests/clv/test_distributions.py::TestContNonContract::test_continuous_non_contractual[value0-0.4-0.15-10--8.39147106159807]
17.86s call     tests/clv/test_distributions.py::TestBetaGeoBetaBinom::test_logp_matches_lifetimes[batch_shape1]
16.77s call     tests/clv/test_distributions.py::TestContNonContract::test_continuous_non_contractual[value3-0.3-p3-10-logp3]
14.29s call     tests/clv/test_distributions.py::TestBetaGeoBetaBinom::test_logp_matches_lifetimes[batch_shape0]
13.79s call     tests/clv/test_distributions.py::TestContNonContract::test_continuous_non_contractual[value1-lam1-0.15-10-logp1]
7.90s call     tests/clv/test_distributions.py::TestParetoNBD::test_pareto_nbd[value4-0.55-10.58-0.61-beta4-12]
7.30s call     tests/clv/test_distributions.py::TestBetaGeoBetaBinom::test_logp_matches_excel
6.66s call     tests/clv/test_distributions.py::TestBetaGeoBetaBinom::test_invalid_value_logp
5.86s call     tests/clv/test_distributions.py::TestContNonContract::test_continuous_non_contractual[value2-lam2-0.15-10-logp2]
5.00s call     tests/clv/test_distributions.py::TestParetoNBD::test_pareto_nbd[value1-r1-10.58-0.61-11.67-12]
3.45s call     tests/clv/test_distributions.py::TestParetoNBD::test_pareto_nbd[value3-0.55-11.67-0.61-10.58-T3]
3.25s call     tests/clv/test_distributions.py::TestParetoNBD::test_pareto_nbd[value0-0.55-10.58-0.61-11.67-12]
2.74s call     tests/clv/test_distributions.py::TestContContract::test_continuous_contractual[value3-0.3-p3-10-logp3]
2.70s call     tests/clv/test_distributions.py::TestContContract::test_continuous_contractual[value1-lam1-0.15-10-logp1]
2.19s call     tests/clv/test_distributions.py::TestBetaGeoNBD::test_bg_nbd[value3-0.55-11.67-0.61-10.58-T3]
2.14s call     tests/clv/test_distributions.py::TestBetaGeoNBD::test_bg_nbd[value0-0.55-10.58-0.61-11.67-12]
1.96s call     tests/clv/test_distributions.py::TestContContract::test_continuous_contractual[value0-0.3-0.15-10--10.45705972]
1.69s call     tests/clv/test_distributions.py::TestBetaGeoNBD::test_bg_nbd[value2-r2-10.58-a2-11.67-12]
1.68s call     tests/clv/test_distributions.py::TestParetoNBD::test_pareto_nbd[value2-r2-10.58-s2-11.67-12]
1.57s call     tests/clv/test_distributions.py::TestModifiedBetaGeoNBD::test_invalid_value_logp
1.22s call     tests/clv/test_distributions.py::TestContNonContract::test_continuous_non_contractual_sample_prior[None-None-None-expected_size0]
1.16s call     tests/clv/test_distributions.py::TestContNonContract::test_continuous_non_contractual_invalid
1.10s call     tests/clv/test_distributions.py::TestBetaGeoBetaBinom::test_beta_geo_beta_binom_sample_prior[None-None-gamma_size3-delta_size3-beta_geo_beta_binom_size3-expected_size3]
1.04s call     tests/clv/test_distributions.py::TestBetaGeoNBD::test_logp_matches_excel
1.01s call     tests/clv/test_distributions.py::TestBetaGeoBetaBinom::test_beta_geo_beta_binom_sample_prior[None-None-None-None-beta_geo_beta_binom_size4-expected_size4]
0.97s call     tests/clv/test_distributions.py::TestBetaGeoNBD::test_invalid_value_logp
0.94s call     tests/clv/test_distributions.py::TestModifiedBetaGeoNBD::test_mbg_nbd[value0-0.55-10.58-0.61-11.67-12]
0.90s call     tests/clv/test_distributions.py::TestBetaGeoNBD::test_bg_nbd[value1-r1-10.58-0.61-11.67-12]
0.88s call     tests/clv/test_distributions.py::TestModifiedBetaGeoNBD::test_mbg_nbd[value1-r1-10.58-0.61-11.67-12]
0.87s call     tests/clv/test_distributions.py::TestContContract::test_continuous_contractual[value2-lam2-0.15-10-logp2]
0.83s call     tests/clv/test_distributions.py::TestParetoNBD::test_pareto_nbd_invalid
0.81s call     tests/clv/test_distributions.py::TestContContract::test_continuous_contractual_invalid
0.71s call     tests/clv/test_distributions.py::TestParetoNBD::test_pareto_nbd_sample_prior[r_size1-None-None-None-None-expected_size1]
0.61s call     tests/clv/test_distributions.py::TestBetaGeoBetaBinom::test_beta_geo_beta_binom_sample_prior[alpha_size1-None-None-None-None-expected_size1]
0.60s call     tests/clv/test_distributions.py::TestBetaGeoBetaBinom::test_beta_geo_beta_binom_sample_prior[None-beta_size2-None-None-beta_geo_beta_binom_size2-expected_size2]
0.32s call     tests/clv/test_distributions.py::TestModifiedBetaGeoNBD::test_mbg_nbd[value3-0.55-11.67-0.61-10.58-T3]
0.32s call     tests/clv/test_distributions.py::TestBetaGeoBetaBinom::test_beta_geo_beta_binom_sample_prior[None-None-None-None-None-expected_size0]
0.28s call     tests/clv/test_distributions.py::TestModifiedBetaGeoNBD::test_mbg_nbd[value2-r2-10.58-a2-11.67-12]
0.23s call     tests/clv/test_distributions.py::TestModifiedBetaGeoNBD::test_mbg_nbd[value4-0.55-10.58-0.61-b4-12]
0.22s call     tests/clv/test_distributions.py::TestBetaGeoNBD::test_bg_nbd[value4-0.55-10.58-0.61-b4-12]
0.17s call     tests/clv/test_distributions.py::TestModifiedBetaGeoNBD::test_mbg_nbd_sample_prior[None-None-r_size3-alpha_size3-mbg_nbd_size3-expected_size3]
0.17s call     tests/clv/test_distributions.py::TestBetaGeoNBD::test_bg_nbd_sample_prior[None-None-r_size3-alpha_size3-bg_nbd_size3-expected_size3]
0.14s call     tests/clv/test_distributions.py::TestParetoNBD::test_pareto_nbd_sample_prior[None-None-s_size3-beta_size3-pareto_nbd_size3-expected_size3]
0.14s call     tests/clv/test_distributions.py::TestBetaGeoNBD::test_bg_nbd_sample_prior[None-None-None-None-bg_nbd_size4-expected_size4]
0.14s call     tests/clv/test_distributions.py::TestModifiedBetaGeoNBD::test_mbg_nbd_sample_prior[None-None-None-None-mbg_nbd_size4-expected_size4]
0.13s call     tests/clv/test_distributions.py::TestBetaGeoNBD::test_bg_nbd_sample_prior[a_size1-None-None-None-None-expected_size1]
0.13s call     tests/clv/test_distributions.py::TestModifiedBetaGeoNBD::test_mbg_nbd_sample_prior[None-b_size2-None-None-mbg_nbd_size2-expected_size2]
0.13s call     tests/clv/test_distributions.py::TestBetaGeoNBD::test_bg_nbd_sample_prior[None-b_size2-None-None-bg_nbd_size2-expected_size2]
0.13s call     tests/clv/test_distributions.py::TestModifiedBetaGeoNBD::test_mbg_nbd_sample_prior[a_size1-None-None-None-None-expected_size1]
0.12s call     tests/clv/test_distributions.py::TestParetoNBD::test_pareto_nbd_sample_prior[None-None-None-None-pareto_nbd_size4-expected_size4]
================== 66 passed, 1 warning in 157.64s (0:02:37) ===================
(3 minutes 32 seconds) test (3.12, true, tests/clv/ --ignore=tests/clv/models/test_pareto_nbd.py --ignore=tests/clv/mode...
============================= slowest 50 durations =============================
26.00s call     tests/clv/test_utils.py::TestCustomerLifetimeValue::test_customer_lifetime_value_as_gg_method[fitted_pnbd]
21.87s call     tests/clv/models/test_gamma_gamma.py::TestGammaGammaModel::test_spend[True]
6.95s call     tests/clv/models/test_modified_beta_geo.py::TestModifiedBetaGeoModel::test_numerically_stable_logp[0-0--0.41792826]
3.49s call     tests/clv/models/test_modified_beta_geo.py::TestModifiedBetaGeoModel::test_distribution_new_customer
3.34s setup    tests/clv/test_plotting.py::test_plot_expected_purchases_ppc_exceptions[bg_model]
3.13s setup    tests/clv/models/test_gamma_gamma.py::TestGammaGammaModel::test_missing_columns
2.76s call     tests/clv/models/test_gamma_gamma.py::TestGammaGammaModel::test_spend[False]
2.21s call     tests/clv/test_plotting.py::test_plot_expected_purchases_ppc[pnbd_model-prior-10-100-None]
2.11s call     tests/clv/models/test_modified_beta_geo.py::TestModifiedBetaGeoModel::test_fit_result_without_fit
1.94s call     tests/clv/test_plotting.py::test_plot_expected_purchases_ppc[bg_model-prior-10-100-None]
1.85s call     tests/clv/test_plotting.py::test_plot_expected_purchases_ppc[mbg_model-prior-10-100-None]
1.47s call     tests/clv/models/test_gamma_gamma.py::TestGammaGammaModelIndividual::test_save_load
1.33s call     tests/clv/test_utils.py::TestCustomerLifetimeValue::test_clv_after_thinning[fitted_pnbd]
1.07s call     tests/clv/models/test_modified_beta_geo.py::TestModifiedBetaGeoModel::test_numerically_stable_logp[200-38-100.7869]
1.07s call     tests/clv/test_plotting.py::test_plot_expected_purchases_ppc[pnbd_model-posterior-20-50-subplot1]
0.98s call     tests/clv/test_plotting.py::test_plot_expected_purchases_ppc[mbg_model-posterior-20-50-subplot1]
0.96s call     tests/clv/test_plotting.py::test_plot_expected_purchases_ppc[bg_model-posterior-20-50-subplot1]
0.88s setup    tests/clv/test_utils.py::TestCustomerLifetimeValue::test_missing_col
0.64s call     tests/clv/test_utils.py::TestCustomerLifetimeValue::test_map_posterior_mix_fit_types[fitted_pnbd-True-True]
0.47s call     tests/clv/test_utils.py::TestCustomerLifetimeValue::test_map_posterior_mix_fit_types[fitted_pnbd-False-True]
0.45s call     tests/clv/test_utils.py::TestCustomerLifetimeValue::test_map_posterior_mix_fit_types[fitted_pnbd-True-False]
0.44s call     tests/clv/test_utils.py::TestCustomerLifetimeValue::test_map_posterior_mix_fit_types[fitted_pnbd-False-False]
0.39s call     tests/clv/test_plotting.py::test_plot_customer_exposure[kwargs2]
0.33s call     tests/clv/test_utils.py::test_expected_cumulative_transactions_dedups_inside_a_time_period
0.29s call     tests/clv/test_utils.py::test_expected_cumulative_incremental_transactions_equals_r_btyd_walkthrough
0.27s call     tests/clv/models/test_gamma_gamma.py::TestGammaGammaModel::test_new_customer_spend[True]
0.26s call     tests/clv/models/test_gamma_gamma.py::TestGammaGammaModel::test_save_load
0.23s call     tests/clv/test_plotting.py::test_plot_expected_purchases_over_time[True-False-None]
0.23s call     tests/clv/test_utils.py::test_expected_cumulative_transactions_date_index
0.22s call     tests/clv/test_plotting.py::test_plot_customer_exposure[kwargs0]
0.21s call     tests/clv/test_plotting.py::test_plot_customer_exposure_with_ax
0.21s call     tests/clv/test_plotting.py::test_plot_customer_exposure[kwargs1]
0.20s call     tests/clv/test_plotting.py::test_plot_customer_exposure_invalid_args[kwargs0]
0.18s call     tests/clv/models/test_modified_beta_geo.py::TestModifiedBetaGeoModel::test_save_load
0.13s call     tests/clv/test_utils.py::TestCustomerLifetimeValue::test_clv_after_thinning[fitted_bg]
0.09s call     tests/clv/test_plotting.py::test_plot_expected_purchases_over_time_exceptions
0.09s call     tests/clv/test_utils.py::TestCustomerLifetimeValue::test_customer_lifetime_value_as_gg_method[fitted_bg]
0.09s call     tests/clv/test_utils.py::TestCustomerLifetimeValue::test_map_posterior_mix_fit_types[fitted_bg-True-True]
0.08s call     tests/clv/test_plotting.py::test_plot_expected_purchases_over_time[False-True-subplot1]
0.08s call     tests/clv/models/test_gamma_gamma.py::TestGammaGammaModel::test_new_customer_spend[False]
0.08s call     tests/clv/models/test_modified_beta_geo.py::TestModifiedBetaGeoModel::test_expected_num_purchases_new_customer_warning
0.07s call     tests/clv/models/test_modified_beta_geo.py::TestModifiedBetaGeoModel::test_expected_purchases[3]
0.07s call     tests/clv/models/test_modified_beta_geo.py::TestModifiedBetaGeoModel::test_expected_purchases[1]
0.07s call     tests/clv/models/test_modified_beta_geo.py::TestModifiedBetaGeoModel::test_expected_purchases[6]
0.07s call     tests/clv/test_utils.py::TestCustomerLifetimeValue::test_customer_lifetime_value_bg_with_known_values[2-1-0.75]
0.07s call     tests/clv/models/test_modified_beta_geo.py::TestModifiedBetaGeoModel::test_model
0.07s call     tests/clv/test_utils.py::TestCustomerLifetimeValue::test_map_posterior_mix_fit_types[fitted_bg-False-True]
0.06s call     tests/clv/models/test_modified_beta_geo.py::TestModifiedBetaGeoModel::test_expected_purchases_new_customer[6]
0.06s call     tests/clv/models/test_gamma_gamma.py::TestGammaGammaModelIndividual::test_model[config1]
0.06s setup    tests/clv/models/test_gamma_gamma.py::TestGammaGammaModelIndividual::test_missing_columns
============ 125 passed, 5 skipped, 6 warnings in 93.30s (0:01:33) =============

You can find more information on how to contribute here.

Automatically generated by GitHub Action
Latest run date: 2025-03-15

@wd60622 wd60622 changed the title Address slowest tests Slowest test times (Last Updated: 2024-11-03) Nov 4, 2024
@wd60622 wd60622 changed the title Slowest test times (Last Updated: 2024-11-03) Slowest test times Nov 4, 2024
@wd60622 wd60622 pinned this issue Nov 4, 2024
@wd60622 wd60622 changed the title Slowest test times Speed up test times 🚀 Nov 4, 2024
@wd60622 wd60622 added the help wanted Extra attention is needed label Nov 5, 2024
@ColtAllen
Copy link
Collaborator

Related to #1227

@ricardoV94
Copy link
Contributor

@wd60622 can we have this automated issue on pymc/pytensor 🤤 ?

@wd60622
Copy link
Contributor Author

wd60622 commented Dec 13, 2024

@wd60622 can we have this automated issue on pymc/pytensor 🤤 ?

Yes

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants