Backport test.support.fcmp() from 3.0 to silence -3 warnings.

This commit is contained in:
Brett Cannon 2008-07-31 03:00:53 +00:00
parent f080e6d7e0
commit cda5ce24ed
1 changed files with 4 additions and 5 deletions

View File

@ -224,21 +224,20 @@ def bind_port(sock, host=HOST):
FUZZ = 1e-6 FUZZ = 1e-6
def fcmp(x, y): # fuzzy comparison function def fcmp(x, y): # fuzzy comparison function
if type(x) == type(0.0) or type(y) == type(0.0): if isinstance(x, float) or isinstance(y, float):
try: try:
x, y = coerce(x, y)
fuzz = (abs(x) + abs(y)) * FUZZ fuzz = (abs(x) + abs(y)) * FUZZ
if abs(x-y) <= fuzz: if abs(x-y) <= fuzz:
return 0 return 0
except: except:
pass pass
elif type(x) == type(y) and type(x) in (type(()), type([])): elif type(x) == type(y) and isinstance(x, (tuple, list)):
for i in range(min(len(x), len(y))): for i in range(min(len(x), len(y))):
outcome = fcmp(x[i], y[i]) outcome = fcmp(x[i], y[i])
if outcome != 0: if outcome != 0:
return outcome return outcome
return cmp(len(x), len(y)) return (len(x) > len(y)) - (len(x) < len(y))
return cmp(x, y) return (x > y) - (x < y)
try: try:
unicode unicode