Как проверить результаты поплавка с помощью доктрины?

Я разрабатываю программу, которая делает вычисления с плавающей запятой. Есть ли способ проверить мои функции (которые предоставляют поплавки) с помощью доктрин?

Ответ 1

Конечно, просто отформатируйте поплавки в разумном формате на основе ваших знаний о том, какую точность вы ожидаете от них, например, если вы ожидаете точности до двух цифр после десятичной точки, вы можете использовать:

''' Rest of your docstring and then...

    >>> '%.2f' % funcreturningfloat()
    '123.45'

'''

Ответ 2

В документации есть предложение

Числа с плавающей запятой также с учетом небольших вариаций выпуска через платформы, потому что Python откладывает библиотеку платформы C для форматирование с плавающей запятой и библиотеки C различаются широко здесь.

>>> 1./7  # risky
0.14285714285714285
>>> print 1./7 # safer
0.142857142857
>>> print round(1./7, 6) # much safer
0.142857

Ответ 3

Следующие работы для носететов:

>>> 1/3.  # doctest: +ELLIPSIS
0.333...

Ответ 4

Формат строки позволяет использовать тестовые кортежи.

>>> funcreturningfloattuple(1.0)
(1.0, 1.0)
>>> '%.2f, %.2f' % funcreturningfloattuple(1.0)
'1.00, 1.00'

>>> funcreturningfloattuple(1.4)
(1.3999999999999999, 1.3999999999999999)
>>> '%.2f, %.2f' % funcreturningfloattuple(1.4)
'1.40, 1.40'

Ответ 5

Вы можете использовать numestest - расширение доктрины, которое упрощает проверку числовых результатов. https://pypi.python.org/pypi/numtest

>>> 1.0/3
0.333

Ошибка:     1.0/3 Ожидаемое:     0,333 Получил:     0,3333333333333333

>>> 1.0/3 # doctest: +NUMBER
0.333

import doctest
import numtest
doctest.testmod()

Процесс завершен кодом выхода 0

Все тесты прошли. Нет необходимости форматирования строк в ваших тестах.