DocTest가 올바른 출력을받는 데 영감을주는 실패
문제
내 기능입니다
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
그리고이 출력으로 테스트가 실패합니다
**********************************************************************
File "packages/utils.py", line 64, in __main__.validate_latitude
Failed example:
validate_latitude(-91)
Expected:
-90
Got:
-90
**********************************************************************
탈퇴 한 출력에도 불구하고 왜 실패하는지 알 수 없습니다.
해결책
이 두 줄에서 :
>>> validate_latitude(-91)
-90
앞에 탭 문자가 있습니다 -
안에 -90
, 그리고 다음에 4 개의 공간 문자 0
. DocTests 가이 코드를 실행할 때 추가 공백은 물론 생성되지 않으므로 평등 비교가 실패합니다.
좋은 편집자, 예를 들어 VIM은 후행 공간과 길 잃은 탭을 강조하는 방법이있어 그러한 사고에 빠지지 않도록합니다. 어떤 편집기를 사용하고 있는지 또는 어떻게 설정했는지 확실하지 않으므로보다 구체적인 조언을 제공하기가 어렵습니다 (그러한 기능을 가진 편집기를 사용하고 문제의 기능을 가능하게하는 것 외에도 ;-).
다른 팁
공백?
출력을 강조하면 "예상"값에 따라 추가 공백을 볼 수 있습니다. 이것이 관련이 있는지 확실하지 않습니다.
제휴하지 않습니다 StackOverflow