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

¿Fue útil?

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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top