Files
OpenBB/tests/openbb_terminal/portfolio/test_portfolio_model.py
montezdesousa 570e579067 Portfolio docstring example fixes and some bugs (#3431)
* fix doctest

* fix some type hints

* reorganize portfolio folders

* fix rfr

* fix vol bug

* fix more docs

* fix failing test

* doc typo

* numpy fix

* pydocstyle

* regenerate website docs
2022-11-18 19:30:55 +00:00

45 lines
1.3 KiB
Python

# IMPORTATION STANDARD
# IMPORTATION THIRDPARTY
from pathlib import Path
import pandas as pd
import pytest
# IMPORTATION INTERNAL
from openbb_terminal.portfolio import metrics_model
def build_csv_path(csv_name: str):
folder_path = Path(__file__).parent
return folder_path / "csv" / "test_portfolio_model" / csv_name
portfolio_returns = pd.read_csv(build_csv_path("portfolio_returns.csv"))
portfolio_returns["Date"] = pd.to_datetime(portfolio_returns["Date"])
portfolio_returns = portfolio_returns.set_index("Date")
benchmark_returns = pd.read_csv(build_csv_path("benchmark_returns.csv"))
benchmark_returns["Date"] = pd.to_datetime(benchmark_returns["Date"])
benchmark_returns = benchmark_returns.set_index("Date")
benchmark_trades = pd.read_csv(build_csv_path("benchmark_trades.csv"))
benchmark_trades["Date"] = pd.to_datetime(benchmark_trades["Date"])
benchmark_trades = benchmark_trades.set_index("Date")
@pytest.mark.vcr(record_mode="none")
def test_tracking_error(recorder):
result_df, _ = metrics_model.get_tracking_error(
portfolio_returns, benchmark_returns
)
recorder.capture(result_df)
@pytest.mark.vcr(record_mode="none")
def test_tail_ratio():
result_df, _, _ = metrics_model.get_tail_ratio(portfolio_returns, benchmark_returns)
assert isinstance(result_df, pd.DataFrame)