def test_calcula_precos_medios_quando_operacoes_no_mesmo_dia_estao_fora_de_ordem( self): # dentro de um mesmo dia, nao existe a informacao de horas. # logo, nao há garantia de que as operacoes ocorreram na ordem informada (dentro um mesmo dia) data = [{ 'ticker': 'gcgs', 'qtd': 100, 'data': datetime.date(2019, 4, 11), 'preco': 100 }, { 'ticker': 'gcgs', 'qtd': -100, 'data': datetime.date(2019, 4, 12), 'preco': 200 }, { 'ticker': 'gcgs', 'qtd': -200, 'data': datetime.date(2019, 4, 13), 'preco': 500 }, { 'ticker': 'gcgs', 'qtd': 100, 'data': datetime.date(2019, 4, 13), 'preco': 300 }, { 'ticker': 'gcgs', 'qtd': 100, 'data': datetime.date(2019, 4, 13), 'preco': 400 }, { 'ticker': 'gcgs', 'qtd': -1, 'data': datetime.date(2019, 4, 15), 'preco': 1 }, { 'ticker': 'gcgs', 'qtd': 2, 'data': datetime.date(2019, 4, 15), 'preco': 5 }, { 'ticker': 'gcgs', 'qtd': 3, 'data': datetime.date(2019, 4, 15), 'preco': 2 }, { 'ticker': 'gcgs', 'qtd': 1, 'data': datetime.date(2019, 4, 16), 'preco': 2 }] df = create_testing_dataframe(data) precos_medio_de_compra = calcula_precos_medio_de_compra(df) assert precos_medio_de_compra['gcgs']['valor'] == pytest.approx( 2.96, 0.001) assert precos_medio_de_compra['gcgs'][ 'data_primeira_compra'] == datetime.date(2019, 4, 15)
def test_calcula_precos_medios_do_dropbox(self): from src.dropbox_files import download_dropbox_file download_dropbox_file() df = get_operations() precos_medios_de_compra = calcula_precos_medio_de_compra(df) assert type(precos_medios_de_compra) is dict
def test_calcula_precos_medios_do_dropbox(self): from src.dropbox_files import download_dropbox_file download_dropbox_file(OPERACOES_DE_TESTE) df = get_operations(OPERACOES_DE_TESTE) assert len(df) > 0 precos_medios_de_compra = calcula_precos_medio_de_compra(df) assert type(precos_medios_de_compra) is dict
def test_calcula_precos_medios_quando_um_ciclo(self): data = [{'ticker': 'gcgs', 'qtd': 100, 'data': datetime.date(2019, 4, 20), 'preco': 100}, {'ticker': 'gcgs', 'qtd': 200, 'data': datetime.date(2019, 4, 13), 'preco': 200}] df = create_testing_dataframe(data) precos_medio_de_compra = calcula_precos_medio_de_compra(df) assert precos_medio_de_compra['gcgs']['valor'] == pytest.approx(166.66, 0.01) assert precos_medio_de_compra['gcgs']['data_primeira_compra'] == datetime.date(2019, 4, 13)
def test_calcula_precos_medios_quando_varios_ciclo(self): data = [{'ticker': 'gcgs', 'qtd': 100, 'data': datetime.date(2019, 4, 11), 'preco': 100}, {'ticker': 'gcgs', 'qtd': -100, 'data': datetime.date(2019, 4, 12), 'preco': 200}, {'ticker': 'gcgs', 'qtd': 100, 'data': datetime.date(2019, 4, 13), 'preco': 300}, {'ticker': 'gcgs', 'qtd': 100, 'data': datetime.date(2019, 4, 14), 'preco': 400}, {'ticker': 'gcgs', 'qtd': -200, 'data': datetime.date(2019, 4, 15), 'preco': 500}, {'ticker': 'gcgs', 'qtd': 2, 'data': datetime.date(2019, 4, 15), 'preco': 5}, {'ticker': 'gcgs', 'qtd': -1, 'data': datetime.date(2019, 4, 15), 'preco': 1}, {'ticker': 'gcgs', 'qtd': 3, 'data': datetime.date(2019, 4, 15), 'preco': 2}, {'ticker': 'gcgs', 'qtd': 1, 'data': datetime.date(2019, 4, 16), 'preco': 2}] df = create_testing_dataframe(data) precos_medio_de_compra = calcula_precos_medio_de_compra(df) assert precos_medio_de_compra['gcgs']['valor'] == pytest.approx(3, 0.001) assert precos_medio_de_compra['gcgs']['data_primeira_compra'] == datetime.date(2019, 4, 15)
def test_calcula_precos_medios_quando_varios_ciclo(self): data = [{ 'ticker': 'gcgs', 'qtd': 1, 'data': datetime.date(2019, 4, 11), 'preco': 5 }, { 'ticker': 'gcgs', 'qtd': -1, 'data': datetime.date(2019, 4, 12), 'preco': 6 }, { 'ticker': 'gcgs', 'qtd': 2, 'data': datetime.date(2019, 4, 13), 'preco': 3 }, { 'ticker': 'gcgs', 'qtd': -1, 'data': datetime.date(2019, 4, 14), 'preco': 2 }, { 'ticker': 'gcgs', 'qtd': -1, 'data': datetime.date(2019, 4, 15), 'preco': 4 }, { 'ticker': 'gcgs', 'qtd': 1, 'data': datetime.date(2019, 4, 15), 'preco': 2 }, { 'ticker': 'gcgs', 'qtd': 1, 'data': datetime.date(2019, 4, 15), 'preco': 3 }, { 'ticker': 'gcgs', 'qtd': 1, 'data': datetime.date(2019, 4, 15), 'preco': 4 }, { 'ticker': 'gcgs', 'qtd': -2, 'data': datetime.date(2019, 4, 16), 'preco': 5 }] df = create_testing_dataframe(data) precos_medio_de_compra = calcula_precos_medio_de_compra(df) assert precos_medio_de_compra['gcgs']['valor'] == pytest.approx( 3.0, 0.001) assert precos_medio_de_compra['gcgs']['valor_be'] == pytest.approx( -1.0, 0.001) data.append({ 'ticker': 'gcgs', 'qtd': 3, 'data': datetime.date(2019, 4, 17), 'preco': 6 }) df = create_testing_dataframe(data) precos_medio_de_compra = calcula_precos_medio_de_compra(df) assert precos_medio_de_compra['gcgs']['valor'] == pytest.approx( 5.25, 0.001) assert precos_medio_de_compra['gcgs']['valor_be'] == pytest.approx( 4.25, 0.001) data.append({ 'ticker': 'gcgs', 'qtd': -4, 'data': datetime.date(2019, 4, 18), 'preco': 6 }) data.append({ 'ticker': 'gcgs', 'qtd': 1, 'data': datetime.date(2019, 4, 19), 'preco': 2 }) df = create_testing_dataframe(data) precos_medio_de_compra = calcula_precos_medio_de_compra(df) assert precos_medio_de_compra['gcgs']['valor'] == pytest.approx( 2.00, 0.001) assert precos_medio_de_compra['gcgs']['valor_be'] == pytest.approx( 2.0, 0.001) data = [{ 'ticker': 'gcgs', 'qtd': 100, 'data': datetime.date(2019, 4, 11), 'preco': 100 }, { 'ticker': 'gcgs', 'qtd': -100, 'data': datetime.date(2019, 4, 12), 'preco': 200 }, { 'ticker': 'gcgs', 'qtd': 100, 'data': datetime.date(2019, 4, 13), 'preco': 300 }, { 'ticker': 'gcgs', 'qtd': 100, 'data': datetime.date(2019, 4, 14), 'preco': 400 }, { 'ticker': 'gcgs', 'qtd': -200, 'data': datetime.date(2019, 4, 15), 'preco': 500 }, { 'ticker': 'gcgs', 'qtd': 2, 'data': datetime.date(2019, 4, 16), 'preco': 5 }, { 'ticker': 'gcgs', 'qtd': -1, 'data': datetime.date(2019, 4, 16), 'preco': 1 }, { 'ticker': 'gcgs', 'qtd': 3, 'data': datetime.date(2019, 4, 17), 'preco': 2 }, { 'ticker': 'gcgs', 'qtd': 1, 'data': datetime.date(2019, 4, 17), 'preco': 2 }] df = create_testing_dataframe(data) precos_medio_de_compra = calcula_precos_medio_de_compra(df) assert precos_medio_de_compra['gcgs']['valor'] == pytest.approx( 2.6, 0.001) assert precos_medio_de_compra['gcgs'][ 'data_primeira_compra'] == datetime.date(2019, 4, 16) assert precos_medio_de_compra['gcgs']['valor_be'] == pytest.approx( 3.40, 0.001)