Сбой Doctest, несмотря на корректный вывод

StackOverflow https://stackoverflow.com/questions/1650184

  •  22-07-2019
  •  | 
  •  

Вопрос

Моя функция заключается в

def validate_latitude(lat):
    """Enforce latitude is in range
    >>> validate_latitude(65)
    65
    >>> validate_latitude(91)
    90
    >>> validate_latitude(-91)
    -90    
    """
    lat = min(lat, 90)
    lat = max(lat, -90)
    return lat

И тест завершается неудачей с этим результатом

**********************************************************************
File "packages/utils.py", line 64, in __main__.validate_latitude
Failed example:
    validate_latitude(-91)
Expected:
    -90    
Got:
    -90
**********************************************************************

Не могу понять, почему это терпит неудачу, несмотря на наличие отключенного вывода

Это было полезно?

Решение

В этих двух строках:

>>> validate_latitude(-91)
-90    

У вас есть символ табуляции перед - в -90 и четыре пробела после 0 . Когда doctests запускает этот код, лишние пробелы, конечно, не создаются, поэтому сравнение на равенство завершается неудачей.

Хорошие редакторы, например vim, есть способы выделить пробелы и паразитные табуляции, чтобы вы не попали в такие аварии. Не уверен, какой редактор вы используете или как вы его настроили, поэтому сложно дать более конкретный совет (помимо очевидного - убедиться, что вы используете редактор с такими возможностями и включаете эти возможности; -).

Другие советы

Пробел?

Если я выделю ваш вывод, я увижу дополнительные пробелы после "Ожидаемого" значения.Не уверен, имеет ли это отношение к делу или нет.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top