diff options
Diffstat (limited to 'tests/run/mulop.pyx')
-rw-r--r-- | tests/run/mulop.pyx | 166 |
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 |