summaryrefslogtreecommitdiff
path: root/tests/run/mulop.pyx
diff options
context:
space:
mode:
Diffstat (limited to 'tests/run/mulop.pyx')
-rw-r--r--tests/run/mulop.pyx166
1 files changed, 166 insertions, 0 deletions
diff --git a/tests/run/mulop.pyx b/tests/run/mulop.pyx
new file mode 100644
index 000000000..0fba7dba9
--- /dev/null
+++ b/tests/run/mulop.pyx
@@ -0,0 +1,166 @@
+# mode: run
+# tag: multiply
+
+import sys
+IS_PY2 = sys.version_info[0] < 3
+
+
+def print_long(x):
+ if IS_PY2:
+ x = str(x).rstrip('L')
+ print(x)
+
+
+def mul_10_obj(x):
+ """
+ >>> mul_10_obj(0)
+ 0
+ >>> mul_10_obj(10)
+ 100
+ >>> mul_10_obj(-10)
+ -100
+ >>> 10 * (2**14)
+ 163840
+ >>> mul_10_obj(2**14)
+ 163840
+ >>> mul_10_obj(-2**14)
+ -163840
+ >>> print_long(10 * (2**29))
+ 5368709120
+ >>> print_long(mul_10_obj(2**29))
+ 5368709120
+ >>> print_long(mul_10_obj(-2**29))
+ -5368709120
+ >>> print_long(10 * (2**30))
+ 10737418240
+ >>> print_long(mul_10_obj(2**30))
+ 10737418240
+ >>> print_long(mul_10_obj(-2**30))
+ -10737418240
+ >>> print_long(10 * (2**63))
+ 92233720368547758080
+ >>> print_long(mul_10_obj(2**63))
+ 92233720368547758080
+ >>> print_long(mul_10_obj(-2**63))
+ -92233720368547758080
+ >>> print_long(10 * (2**128))
+ 3402823669209384634633746074317682114560
+ >>> print_long(mul_10_obj(2**128))
+ 3402823669209384634633746074317682114560
+ >>> print_long(mul_10_obj(-2**128))
+ -3402823669209384634633746074317682114560
+ """
+ result = 10 * x
+ return result
+
+
+def mul_obj_10(x):
+ """
+ >>> mul_obj_10(0)
+ 0
+ >>> mul_obj_10(10)
+ 100
+ >>> mul_obj_10(-10)
+ -100
+ >>> 10 * (2**14)
+ 163840
+ >>> mul_obj_10(2**14)
+ 163840
+ >>> mul_obj_10(-2**14)
+ -163840
+ >>> print_long(10 * (2**29))
+ 5368709120
+ >>> print_long(mul_obj_10(2**29))
+ 5368709120
+ >>> print_long(mul_obj_10(-2**29))
+ -5368709120
+ >>> print_long(10 * (2**30))
+ 10737418240
+ >>> print_long(mul_obj_10(2**30))
+ 10737418240
+ >>> print_long(mul_obj_10(-2**30))
+ -10737418240
+ >>> print_long(10 * (2**63))
+ 92233720368547758080
+ >>> print_long(mul_obj_10(2**63))
+ 92233720368547758080
+ >>> print_long(mul_obj_10(-2**63))
+ -92233720368547758080
+ >>> print_long(10 * (2**128))
+ 3402823669209384634633746074317682114560
+ >>> print_long(mul_obj_10(2**128))
+ 3402823669209384634633746074317682114560
+ >>> print_long(mul_obj_10(-2**128))
+ -3402823669209384634633746074317682114560
+ """
+ result = x * 10
+ return result
+
+
+def mul_bigint_obj(x):
+ """
+ >>> mul_bigint_obj(0)
+ 0
+ >>> print_long(mul_bigint_obj(1))
+ 536870912
+ >>> print_long(mul_bigint_obj(2))
+ 1073741824
+ >>> print_long(mul_bigint_obj(2**29))
+ 288230376151711744
+ >>> print_long(mul_bigint_obj(-2**29))
+ -288230376151711744
+ >>> print_long(mul_bigint_obj(2**30))
+ 576460752303423488
+ >>> print_long(mul_bigint_obj(-2**30))
+ -576460752303423488
+ >>> print_long(mul_bigint_obj(2**59))
+ 309485009821345068724781056
+ >>> print_long(mul_bigint_obj(-2**59))
+ -309485009821345068724781056
+ """
+ result = (2**29) * x
+ return result
+
+
+def mul_obj_float(x):
+ """
+ >>> mul_obj_float(-0.0)
+ -0.0
+ >>> mul_obj_float(0)
+ 0.0
+ >>> mul_obj_float(1.0)
+ 2.0
+ >>> mul_obj_float(-2.0)
+ -4.0
+ >>> mul_obj_float(-0.5)
+ -1.0
+ """
+ result = x * 2.0
+ return result
+
+
+def mul_float_obj(x):
+ """
+ >>> mul_float_obj(0)
+ 0.0
+ >>> mul_float_obj(2)
+ 4.0
+ >>> mul_float_obj(-2)
+ -4.0
+ >>> 2.0 * (2**30-1)
+ 2147483646.0
+ >>> mul_float_obj(2**30-1)
+ 2147483646.0
+ >>> mul_float_obj(-(2**30-1))
+ -2147483646.0
+ >>> mul_float_obj(-0.0)
+ -0.0
+ >>> mul_float_obj(1.0)
+ 2.0
+ >>> mul_float_obj(-2.0)
+ -4.0
+ >>> mul_float_obj(-0.5)
+ -1.0
+ """
+ result = 2.0 * x
+ return result