def donations(self): return load_donations()
import pytest import lifetimes.estimation as estimation import lifetimes.utils as utils from lifetimes.datasets import load_cdnow, load_summary_data_with_monetary_value, load_donations,\ load_transaction_data from lifetimes.generate_data import modified_beta_geometric_nbd_model @pytest.fixture def cdnow_customers(): return load_cdnow() cdnow_customers_with_monetary_value = load_summary_data_with_monetary_value() donations = load_donations() class TestBaseFitter(): def test_repr(self): base_fitter = estimation.BaseFitter() assert repr(base_fitter) == '<lifetimes.BaseFitter>' base_fitter.params_ = dict(x=12.3, y=42) base_fitter.data = np.array([1, 2, 3]) assert repr( base_fitter ) == '<lifetimes.BaseFitter: fitted with 3 subjects, x: 12.30, y: 42.00>' def test_unload_params(self): base_fitter = estimation.BaseFitter() with pytest.raises(ValueError):
from __future__ import print_function import numpy as np import pandas as pd import numpy.testing as npt import lifetimes.estimation as estimation import lifetimes.utils as utils from lifetimes.datasets import load_cdnow, load_summary_data_with_monetary_value, load_donations cdnow_customers = load_cdnow() cdnow_customers_with_monetary_value = load_summary_data_with_monetary_value() donations = load_donations() class TestBetaGeoBetaBinomFitter(): def test_params_out_is_close_to_Hardie_paper(self): bbtf = estimation.BetaGeoBetaBinomFitter() bbtf.fit( donations['frequency'], donations['recency'], donations['n'], donations['n_custs'], ) expected = np.array([1.204, 0.750, 0.657, 2.783]) npt.assert_array_almost_equal(expected, np.array(bbtf._unload_params('alpha','beta','gamma','delta')), decimal=2) def test_prob_alive_is_close_to_Hardie_paper_table_6(self): """Table 6: P(Alive in 2002) as a Function of Recency and Frequency"""