def test_capm_with_benchmark():
    df = get_data()
    mkt_df = get_benchmark_data()
    mu = expected_returns.capm_return(df,
                                      market_prices=mkt_df,
                                      compounding=True)

    assert isinstance(mu, pd.Series)
    assert list(mu.index) == list(df.columns)
    assert mu.notnull().all()
    assert mu.dtype == "float64"
    correct_mu = np.array([
        0.09115799375654746,
        0.09905386632033128,
        0.05676282405265752,
        0.06291827346436336,
        0.13147799781014877,
        0.10239088012000815,
        0.1311567086884512,
        0.07339649698626659,
        0.1301248935078549,
        0.07620949056643983,
        0.07629095442513395,
        0.12163575425541985,
        0.10400070536161658,
        0.0781736030988492,
        0.09185177050469516,
        0.10245700691271296,
        0.11268307946677197,
        0.07870087187919145,
        0.1275598841214107,
        0.09536788741392595,
    ])
    np.testing.assert_array_almost_equal(mu.values, correct_mu)
def test_capm_with_benchmark():
    df = get_data()
    mkt_df = get_benchmark_data()
    mu = expected_returns.capm_return(df,
                                      market_prices=mkt_df,
                                      compounding=True)

    assert isinstance(mu, pd.Series)
    assert list(mu.index) == list(df.columns)
    assert mu.notnull().all()
    assert mu.dtype == "float64"
    correct_mu = np.array([
        0.10903299,
        0.11891232,
        0.0659977,
        0.07369941,
        0.15948144,
        0.12308759,
        0.15907944,
        0.08680978,
        0.15778843,
        0.0903294,
        0.09043133,
        0.14716681,
        0.12510181,
        0.0927869,
        0.10990104,
        0.12317033,
        0.13596521,
        0.09344662,
        0.15457909,
        0.11430041,
    ])
    np.testing.assert_array_almost_equal(mu.values, correct_mu)
def test_return_model_additional_kwargs():
    df = get_data()
    mkt_prices = get_benchmark_data()

    mu1 = expected_returns.return_model(
        df, method="capm_return", market_prices=mkt_prices, risk_free_rate=0.03
    )
    mu2 = expected_returns.capm_return(
        df, market_prices=mkt_prices, risk_free_rate=0.03
    )
    pd.testing.assert_series_equal(mu1, mu2)