проверка соответствия данных до 4 знаков после запятой с использованием pytest и отчета publi sh с его помощью - PullRequest
0 голосов
/ 04 августа 2020

введите описание изображения здесь

У меня есть датафрейм, как указано выше, теперь мне нужно сопоставить покупку с new_perc_buy (до 4 знаков после запятой), аналогично продать с new_perc_sell (до 4 знаков после запятой), и если он не соответствует установленному условию, он не выполняется, но для отчета и сравнения я хотел использовать pytest Я не знал, как выполнить это в pytest , есть ли для него метод assert?

1 Ответ

1 голос
/ 04 августа 2020

Вы можете использовать decimal.Decimal для express числа для определенного c количества десятичных знаков, а затем просто подтвердить в pytest.

import decimal

four_decimal= decimal.Decimal('0.0001')

def test():
    # get your data from database or something, if they are currently
    # representing as string, do not convert to float first but use
    # decimal.Decimal right away

    # just to show how to get the specific number of decimal places
    # usually you dont want to go float->decimal if you dont have to
    d = decimal.Decimal(1/3.0).quantize(four_decimal)
    d2 = decimal.Decimal("3214143214214321.3134").quantize(four_decimal)
    d3 = decimal.Decimal(3214143214214321/3).quantize(four_decimal)
    d4 = d2 - d - d3 + d3 + d
    # run with -s to see what's going on
    print(d)
    print(d2)
    print(d3)
    print(d4)
    # and now just assert
    assert d != d2
    assert d2 != 1/3.0
    assert d2 == d4

Обратите внимание, что метод quantize также может возьмите параметр rounding, чтобы указать, как округлять только до 4 знаков после запятой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...