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

Моя функция

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
**********************************************************************

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

2 ответа

Решение

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

>>> validate_latitude(-91)
-90    

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

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

Пробелы?

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

Другие вопросы по тегам