Add more tests for compare and coercion in preparation for the coercion
overhaul.  Closes SF patch #102878.
diff --git a/Lib/test/test_compare.py b/Lib/test/test_compare.py
new file mode 100644
index 0000000..d74f300
--- /dev/null
+++ b/Lib/test/test_compare.py
@@ -0,0 +1,57 @@
+import sys
+
+from test_support import *
+
+class Empty:
+    def __repr__(self):
+        return '<Empty>'
+
+class Coerce:
+    def __init__(self, arg):
+        self.arg = arg
+
+    def __repr__(self):
+        return '<Coerce %s>' % 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 '<Cmp %s>' % self.arg
+
+    def __cmp__(self, other):
+        return cmp(self.arg, other)
+
+class RCmp:
+    def __init__(self,arg):
+        self.arg = arg
+
+    def __repr__(self):
+        return '<RCmp %s>' % 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()