Doctest терпит неудачу, несмотря на наличие правильного вывода - PullRequest
0 голосов
/ 30 октября 2009

Моя функция

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 ]

3 голосов
/ 30 октября 2009

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

>>> validate_latitude(-91)
-90    

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

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

3 голосов
/ 30 октября 2009

Пробелы

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

...