Пример #1
0
    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)
Пример #2
0
    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
Пример #3
0
    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
Пример #4
0
    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)
Пример #5
0
    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)
Пример #6
0
    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)