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

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top