Comparison using < should be roughly equivalent to:
def compare(a,b):
print ""
print "testing %s < %s" %(str(a),str(b))
for ai,bi in zip(a,b):
print "comparing elements",ai,bi
if ai < bi:
return True
if bi < ai:
return False
if len(a)<len(b):
return True
return False
test_cases = [tuple([1]),(1,2),(1,1),(1,1,1),(None,None,None),tuple([None]),(99,99)]
print "running tests"
for a in test_cases:
for b in test_cases:
assert(compare(a,b) == (a<b))
"""
>>>
running tests
testing (1,) < (1,)
comparing elements 1 1
testing (1,) < (1, 2)
comparing elements 1 1
testing (1,) < (1, 1)
comparing elements 1 1
testing (1,) < (1, 1, 1)
comparing elements 1 1
testing (1,) < (None, None, None)
comparing elements 1 None
testing (1,) < (None,)
comparing elements 1 None
testing (1,) < (99, 99)
comparing elements 1 99
testing (1, 2) < (1,)
comparing elements 1 1
testing (1, 2) < (1, 2)
comparing elements 1 1
comparing elements 2 2
testing (1, 2) < (1, 1)
comparing elements 1 1
comparing elements 2 1
testing (1, 2) < (1, 1, 1)
comparing elements 1 1
comparing elements 2 1
testing (1, 2) < (None, None, None)
comparing elements 1 None
testing (1, 2) < (None,)
comparing elements 1 None
testing (1, 2) < (99, 99)
comparing elements 1 99
testing (1, 1) < (1,)
comparing elements 1 1
testing (1, 1) < (1, 2)
comparing elements 1 1
comparing elements 1 2
testing (1, 1) < (1, 1)
comparing elements 1 1
comparing elements 1 1
testing (1, 1) < (1, 1, 1)
comparing elements 1 1
comparing elements 1 1
testing (1, 1) < (None, None, None)
comparing elements 1 None
testing (1, 1) < (None,)
comparing elements 1 None
testing (1, 1) < (99, 99)
comparing elements 1 99
testing (1, 1, 1) < (1,)
comparing elements 1 1
testing (1, 1, 1) < (1, 2)
comparing elements 1 1
comparing elements 1 2
testing (1, 1, 1) < (1, 1)
comparing elements 1 1
comparing elements 1 1
testing (1, 1, 1) < (1, 1, 1)
comparing elements 1 1
comparing elements 1 1
comparing elements 1 1
testing (1, 1, 1) < (None, None, None)
comparing elements 1 None
testing (1, 1, 1) < (None,)
comparing elements 1 None
testing (1, 1, 1) < (99, 99)
comparing elements 1 99
testing (None, None, None) < (1,)
comparing elements None 1
testing (None, None, None) < (1, 2)
comparing elements None 1
testing (None, None, None) < (1, 1)
comparing elements None 1
testing (None, None, None) < (1, 1, 1)
comparing elements None 1
testing (None, None, None) < (None, None, None)
comparing elements None None
comparing elements None None
comparing elements None None
testing (None, None, None) < (None,)
comparing elements None None
testing (None, None, None) < (99, 99)
comparing elements None 99
testing (None,) < (1,)
comparing elements None 1
testing (None,) < (1, 2)
comparing elements None 1
testing (None,) < (1, 1)
comparing elements None 1
testing (None,) < (1, 1, 1)
comparing elements None 1
testing (None,) < (None, None, None)
comparing elements None None
testing (None,) < (None,)
comparing elements None None
testing (None,) < (99, 99)
comparing elements None 99
testing (99, 99) < (1,)
comparing elements 99 1
testing (99, 99) < (1, 2)
comparing elements 99 1
testing (99, 99) < (1, 1)
comparing elements 99 1
testing (99, 99) < (1, 1, 1)
comparing elements 99 1
testing (99, 99) < (None, None, None)
comparing elements 99 None
testing (99, 99) < (None,)
comparing elements 99 None
testing (99, 99) < (99, 99)
comparing elements 99 99
comparing elements 99 99"""