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

Était-ce utile?

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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top