summaryrefslogtreecommitdiffstats
path: root/Lib
diff options
context:
space:
mode:
Diffstat (limited to 'Lib')
-rw-r--r--Lib/test/test_richcmp.py43
1 files changed, 42 insertions, 1 deletions
diff --git a/Lib/test/test_richcmp.py b/Lib/test/test_richcmp.py
index 83cb72b..796e698 100644
--- a/Lib/test/test_richcmp.py
+++ b/Lib/test/test_richcmp.py
@@ -1,6 +1,6 @@
# Tests for rich comparisons
-from test_support import TestFailed, verify
+from test_support import TestFailed, verify, verbose
class Number:
@@ -188,6 +188,46 @@ def misbehavin():
else:
raise TestFailed, "cmp(Misb(), Misb()) didn't raise RuntimeError"
+def recursion():
+ from UserList import UserList
+ a = UserList(); a.append(a)
+ b = UserList(); b.append(b)
+ def check(s, a=a, b=b):
+ if verbose:
+ print "trying", s, "..."
+ verify(eval(s))
+ if verbose:
+ print "recursion tests: a=%s, b=%s" % (a, b)
+ check('a==b')
+ check('a<=b')
+ check('a>=b')
+ check('not a<b')
+ check('not a>b')
+ check('not a!=b')
+ check('cmp(a,b) == 0')
+ a.append(1)
+ b.append(0)
+ if verbose:
+ print "recursion tests: a=%s, b=%s" % (a, b)
+ check('a>b')
+ check('a>=b')
+ check('a!=b')
+ check('not a<b')
+ check('not a<=b')
+ check('not a==b')
+ check('cmp(a,b) == 1')
+ a[1] = -1
+ if verbose:
+ print "recursion tests: a=%s, b=%s" % (a, b)
+ check('a<b')
+ check('a<=b')
+ check('a!=b')
+ check('not a>b')
+ check('not a>=b')
+ check('not a==b')
+ check('cmp(a,b) == -1')
+ if verbose: print "recursion tests ok"
+
def main():
basic()
tabulate()
@@ -195,5 +235,6 @@ def main():
tabulate(c2=int)
testvector()
misbehavin()
+ recursion()
main()