summaryrefslogtreecommitdiff
path: root/tests/basics/class_reverse_op.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/basics/class_reverse_op.py')
-rw-r--r--tests/basics/class_reverse_op.py32
1 files changed, 31 insertions, 1 deletions
diff --git a/tests/basics/class_reverse_op.py b/tests/basics/class_reverse_op.py
index b0dae5f8a..11aba6aad 100644
--- a/tests/basics/class_reverse_op.py
+++ b/tests/basics/class_reverse_op.py
@@ -1,5 +1,7 @@
-class A:
+# Test reverse operators.
+# Test user type with integers.
+class A:
def __init__(self, v):
self.v = v
@@ -14,5 +16,33 @@ class A:
def __repr__(self):
return "A({})".format(self.v)
+
print(A(3) + 1)
print(2 + A(5))
+
+
+# Test user type with strings.
+class B:
+ def __init__(self, v):
+ self.v = v
+
+ def __repr__(self):
+ return "B({})".format(self.v)
+
+ def __ror__(self, o):
+ return B(o + "|" + self.v)
+
+ def __radd__(self, o):
+ return B(o + "+" + self.v)
+
+ def __rmul__(self, o):
+ return B(o + "*" + self.v)
+
+ def __rtruediv__(self, o):
+ return B(o + "/" + self.v)
+
+
+print("a" | B("b"))
+print("a" + B("b"))
+print("a" * B("b"))
+print("a" / B("b"))