import sys from test_support import * class Empty: def __repr__(self): return '' class Coerce: def __init__(self, arg): self.arg = arg def __repr__(self): return '' % self.arg def __coerce__(self, other): if isinstance(other, Coerce): return self.arg, other.arg else: return (self.arg, other) class Cmp: def __init__(self,arg): self.arg = arg def __repr__(self): return '' % self.arg def __cmp__(self, other): return cmp(self.arg, other) class RCmp: def __init__(self,arg): self.arg = arg def __repr__(self): return '' % self.arg def __rcmp__(self, other): return cmp(other, self.arg) candidates = [2, 2.2, 2L, 2+4j, [1], (2,), None, Empty(), Coerce(3), Cmp(4), RCmp(5)] def test(): for a in candidates: for b in candidates: print "cmp(%s, %s)" % (a, b), try: x = cmp(a, b) except: print '... %s' % sys.exc_info(0) else: print '=', x test()