Doctest échoue en dépit d'avoir une sortie correcte
Question
Ma fonction est
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
Et le test échoue avec cette sortie
**********************************************************************
File "packages/utils.py", line 64, in __main__.validate_latitude
Failed example:
validate_latitude(-91)
Expected:
-90
Got:
-90
**********************************************************************
Je ne vois pas pourquoi cela échouait malgré la sortie désirée
La solution
Dans ces deux lignes:
>>> validate_latitude(-91)
-90
Vous avez un caractère de tabulation avant le -
dans -90
et quatre caractères d'espacement après le 0
. Lorsque doctests exécute ce code, les espaces supplémentaires ne sont bien sûr pas générés. La comparaison d'égalité échoue.
Bons rédacteurs, par exemple vim, ont des moyens de mettre en évidence les espaces de fuite et les onglets égarés, afin de ne pas tomber dans de tels accidents. Vous ne savez pas quel éditeur vous utilisez ni comment vous l'avez configuré, il est donc difficile de donner des conseils plus spécifiques (outre le souci évident de vous assurer d'utiliser un éditeur AVEC de telles fonctionnalités et d'activer les fonctionnalités en question; -).
Autres conseils
Espace blanc?
Si je mets en surbrillance votre sortie, je peux voir des espaces supplémentaires après "Expected". valeur. Pas sûr que ce soit pertinent ou non.