Files
OpenBB/tests/openbb_terminal/common/quantitative_analysis/test_qa_view.py
Chavithra 9e1a58e2db Here we merge all API Refactor related branches (#2236)
* Update api.py

* Updated forex menu

* refactor ycrv command

* refactor ycrv command black

* refactor ecocal command

* Minh changes

* Adding space to test pushing

* title fix ecocal df

* get economic calendar annotation

* fix investingcom tests

* refactor index command

* refactor overview command

* give defaults to wsj view function args

* rename date args investincom

* refacto bigmac command

* fix ecocal typo

* refactor rtps command

* alphavantage gdp

* alphavantage gdp per capita

* alphavantage cpi

* alphavantage tyld

* alphavantage inf

* refactor macro command

* refactor macro command w helpers

* refactor treasury command

* fix macro on terminal

* treasury labels

* refactor maturities

* update treasury maturities doc strings

* refactor get economic calendar finhub

* refactor map command api

* display map filter choices

* route economy api to performance map

* route economy api to performance map

* display group choices on valuation command

* refactor performance and valuation commands

* refactor spectrum model and view

* add choices to spectrum controller

* delete image after view

* fix model tests finviz

* fix finciz view tests

* refactor futures

* fix some tests

* fix more tests

* fix controller test

* refactor fred series notes

* update fred notes docstring

* refacto fred series ids

* fix pred and qa when empty datasets

* refactor fred

* uncomment stuff

* refacto get series data

* fix some tests

* set defaults on args

* refactor fred yield curve

* black

* fix spell and remove ecocal names

* fix linting

* linting

* pylint fix

* change dangerous defaults

* Working through crypto fixes (#2256)

* Working through crypto fixes

* Continued adding crypto stuff

* Added crypto overview

* Added test fixes

* Added fixtures

* Fixed tests

* Fixed charting issue

* Removed broken APIs

* Final adjustments

* Added test fixes

* map get groups and get ycrv countries into old api

* exposed econdb helper funcs

* remove helpers

* refactor search indices

* linting

* refactor arg currency

* pylint from currency

* Started switching crpyto ascending to ascend

* Merging

* Portfolio model arguements, params, and docstring

* Refactored for etf commands (#2292)

* Refactored for etf commands

* Fixed tests

* Added load command

* Fixed menu

* Portfolio logic fixes

* Added econometrics (#2260)

* Added econometrics

* Fixed tests

* Simplified API

* Added test fixes

* Added test csv

* Allowed examples to be loaded

* Fund refactor (#2291)

* Fund refactor

* Changed fund_name and fund to name

* Changed ascending to ascend

* Stock menu refactoring for easier API usage (#2194)

* Stocks  refactoring for easier API usage

* Linting

* Refactor newly added features

* Linting

* Fixing tests

* Refactor common files used by stocks menu

* Fixing flake8

* Fix linting and tests

* Linting

* Fix flake8

* refactor insider_data

* refactor mentions

* refactor watchlist

* refactor sentiment

* refactor sentiment

* fix yahoofinance tests

* refactor load and candle

* refactor get_news and display_news

* refactor stocks.ins.act

* candle default matplotlib

* fix yahoofinance_view tests

* fix ark model tests

* fix ark view tests

* fix business insider model

* fix business insider view

* refactor csimarket model

* fix tests csi market model

* update dd controller

* fix get suppliers tests

* fix dd controller tests

* fix finhub tests

* fix finviz tests

* fix fmp tests

* fix marketwatch tests

* corrected argument keywords in test_bt_model

* corrected argument keywords in test_bt_view

* refactor fa controller

* refactor marketwatch view

* refactor gov controller

* fix tests fa av

* fix tests elect

* fix dcf tests

* fix polygon tests

* fix fmp tests

* fix quiverquant tests

* fix yahoofinance fa tests

* fix more fa tests

* fix insider tests

* fix more tests

* fix more tests

* fix options tests

* fix stock gov tests

* fix tests test_ba_controller

* fix tests for test_finviz_compare_model.py

* fixed 2 tests

* fixed tests

* fixed tests

* fixed tests

* fixed tests

* fixed tests

* fixed tests

* fixed tests

* fixed tests

* fixed tests

* fixed tests

* fix final tests

* fixed tests

* fixed tests

* Fix tests

* black

* forgot to black tests

* fixed tests

* fixed tests

* fixed tests

* fixed tests

* flakefix

* Tests + code : Stocks / Discovery

* fix tests

* added recorder

* fixed tests

* fixed tests

* black

* black

* remove unused imports

* refactor display raw

* sia dicts fix

* pylint

* linting

* remove dangerous default

* fix tests

* fix beta model test

* black

* skip screener qa test

* change sector path to sectors

* update tests readme

* fix metric defaults

* black

* substitute lost ticker

* defaults cpic

* another round on sia

* refactor cramer

* reduce default tweets on sentiment

* refactor yf hist, corr, volume

* arkorders default

* refactor income, balance, cashflow

* refacto scorr, screener, getfinnhub

* refactor stockgrid

* ibkr refactor

* another round on stockgrid

* add dividens end point

* refactor discovery endpoints

* update docstrings with similar input

* refactor messages

* refactor ba

* refactor regioons

* refactor twitter sentiment

* refactor hist

* refactor regions

* give default to timeframe

* refactor bunch of defaults and arg names

* remove leftover imports

* refactor vwap

* let tests run

* fix tests

* fix stock tests

* fix stockanalysis tests

* flake

* MYPY

* Made important changes

* added fixes

* Fixed big issue

* Added fixes to tests

* fix qa tests

* fix tests

* fix 1 more test

* last stocks failing

* fix crypto test

Co-authored-by: Chavithra PARANA <chavithra@gmail.com>
Co-authored-by: montezdesousa <montezdesousa@gmail.com>
Co-authored-by: hjoaquim <h.joaquim@campus.fct.unl.pt>
Co-authored-by: montezdesousa <79287829+montezdesousa@users.noreply.github.com>
Co-authored-by: colin99d <colin99delahunty@gmail.com>

* fix portfolio tests

* change period to window

* update ca docstrings

* refactor get_similar_companies func

* Fixed

* Update CI

* Update CI 2

* Update CI 3

* Update dependencies

Co-authored-by: colin99d <colin99delahunty@gmail.com>
Co-authored-by: Colin Delahunty <72827203+colin99d@users.noreply.github.com>
Co-authored-by: montezdesousa <montezdesousa@gmail.com>
Co-authored-by: James Simmons <simmonsj330@gmail.com>
Co-authored-by: Theodore Aptekarev <aptekarev@gmail.com>
Co-authored-by: minhhoang1023 <40023817+minhhoang1023@users.noreply.github.com>
Co-authored-by: jose-donato <43375532+jose-donato@users.noreply.github.com>
Co-authored-by: montezdesousa <79287829+montezdesousa@users.noreply.github.com>
Co-authored-by: northern-64bit <75195383+northern-64bit@users.noreply.github.com>
Co-authored-by: hjoaquim <h.joaquim@campus.fct.unl.pt>
2022-08-17 15:28:54 +01:00

107 lines
3.0 KiB
Python

from datetime import datetime, timedelta
from unittest.mock import MagicMock
import pytest
import pandas as pd
from openbb_terminal.common.quantitative_analysis import qa_view
dates = [datetime.now() - timedelta(days=x) for x in range(10)]
nums = list(range(1, 11))
data = {"date": dates, "col2": nums, "col1": [x - timedelta(days=1) for x in dates]}
data2 = {"date": nums, "col2": nums, "col1": dates}
df = pd.DataFrame(data).set_index("date")
df2 = pd.DataFrame(data2).set_index("date")
series = pd.Series(dict(zip(dates, nums)), name="Series")
@pytest.mark.parametrize("val", [0.04, 1])
def test_lambda_color_red(val):
qa_view.lambda_color_red(val)
def test_display_summary():
qa_view.display_summary(pd.DataFrame(data, columns=["col1", "col2"]), "xlsx")
@pytest.mark.parametrize("df_use, external", [(df, None), (df2, None), (df, [1, 2])])
def test_display_hist(df_use, external):
qa_view.display_hist("Data", df_use, "col2", 2, external)
def test_display_hist_fail():
with pytest.raises(Exception):
qa_view.display_hist("Data", df, "col1", 2, [MagicMock()])
@pytest.mark.parametrize("external", [None, [1, 2]])
def test_display_cdf(external):
qa_view.display_cdf(df, "col2", "Data", "xlsx", external)
def test_display_cdf_fail():
with pytest.raises(Exception):
qa_view.display_cdf(df, "col1", "Data", 2, [MagicMock()])
@pytest.mark.parametrize(
"external, yearly", [(None, False), (None, True), ([1, 2], False)]
)
def test_display_bw(external, yearly):
qa_view.display_bw(df, "col2", "Data", yearly, external)
@pytest.mark.parametrize("external, yearly", [([1, 2], False)])
def test_display_acf(external, yearly):
qa_view.display_acf(df2, "col2", "Data", yearly, external)
@pytest.mark.parametrize("external", [None, [1, 2]])
def test_display_qqplot(external):
qa_view.display_qqplot(df, "col2", "Data", external)
def test_display_cusum():
qa_view.display_cusum(df, "col2", 1, 1, None)
def test_display_cusum_fail():
with pytest.raises(Exception):
qa_view.display_cusum(df, "col2", 1, 1, [1, 2])
@pytest.mark.parametrize("yearly", [False, True])
def test_display_seasonal(yearly):
qa_view.display_seasonal("Data", df, "col2", yearly, "xlsx", None)
def test_display_normality():
qa_view.display_normality(df, "col2", "xlsx")
def test_display_unitroot():
qa_view.display_unitroot(df, "col2", "c", "c")
@pytest.mark.parametrize("use_df", [df, series])
def test_display_raw(use_df):
sort = "col1" if isinstance(use_df, pd.DataFrame) else ""
qa_view.display_raw(use_df, sort)
@pytest.mark.parametrize("y, external", [(True, None), (False, None), (True, [1, 2])])
def test_display_line(y, external):
qa_view.display_line(
series,
log_y=y,
markers_lines=True,
markers_scatter=dates,
external_axes=external,
title=True,
draw=False,
)
def test_display_var():
df["adjclose"] = df["col2"]
qa_view.display_var(df, "TSLA", True, True, 50, True)