From 890f20961912efbdb3d9223f27507e9de0a697e7 Mon Sep 17 00:00:00 2001 From: Guido van Rossum Date: Thu, 18 Jan 2001 16:21:57 +0000 Subject: Add test for comparing recursive data types. --- Lib/test/test_richcmp.py | 43 ++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 42 insertions(+), 1 deletion(-) 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 ab') + 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 ab') + 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() -- cgit v0.12