Doctest falla a pesar de tener la salida correcta
Pregunta
Mi función es
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
Y la prueba falla con esta salida
**********************************************************************
File "packages/utils.py", line 64, in __main__.validate_latitude
Failed example:
validate_latitude(-91)
Expected:
-90
Got:
-90
**********************************************************************
No puedo ver por qué falla a pesar de tener la salida diferida
Solución
En estas dos líneas:
>>> validate_latitude(-91)
-90
Tiene un carácter Tab antes del -
en -90
, y cuatro caracteres de espacio después del 0
. Cuando doctests ejecuta este código, el espacio en blanco adicional no se produce, por lo tanto, la comparación de igualdad falla.
Buenos editores, p. vim, tenga formas de resaltar los espacios finales y las pestañas extraviadas, para que no se caiga en tales accidentes. No estoy seguro de qué editor está usando o cómo lo configuró, por lo que es difícil dar consejos más específicos (además del obvio de asegurarse de usar un editor CON tales capacidades y habilitar las capacidades en cuestión; -).
Otros consejos
Espacio en blanco?
Si destaco su salida, puedo ver espacios en blanco adicionales después de " Esperado " valor. No estoy seguro de si esto es relevante o no.