Doctest non riesce nonostante l'output corretto
Domanda
La mia funzione è
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
E il test fallisce con questo output
**********************************************************************
File "packages/utils.py", line 64, in __main__.validate_latitude
Failed example:
validate_latitude(-91)
Expected:
-90
Got:
-90
**********************************************************************
Non riesco a capire perché fallisce nonostante abbia l'output deisred
Soluzione
In queste due righe:
>>> validate_latitude(-91)
-90
Hai un carattere Tab prima del -
in -90
e quattro caratteri spaziali dopo il 0
. Quando doctest esegue questo codice, ovviamente non viene prodotto spazio extra, quindi il confronto di uguaglianza fallisce.
Buoni editor, ad es. Vim, hanno modi per evidenziare gli spazi finali e le schede vaganti, in modo da non cadere a causa di tali incidenti. Non sei sicuro di quale editor stai utilizzando o come lo hai impostato, quindi è difficile dare consigli più specifici (oltre a quello ovvio di assicurarti di utilizzare un editor CON tali funzionalità e abilitare le funzionalità in questione; -).
Altri suggerimenti
Lo spazio bianco?
Se metto in evidenza il tuo output, posso vedere ulteriori spazi bianchi dopo " Previsto " valore. Non sono sicuro che sia pertinente o meno.