diff options
author | Neil Schemenauer <nascheme@enme.ucalgary.ca> | 2001-01-03 01:52:11 (GMT) |
---|---|---|
committer | Neil Schemenauer <nascheme@enme.ucalgary.ca> | 2001-01-03 01:52:11 (GMT) |
commit | 38796d07a535618a9c12217c3d6d5d0309fceed5 (patch) | |
tree | e1940c6fcf777f683eabe60851ff339e38faa0e2 | |
parent | d18722b99dde76af4e00179fd92c2da1217f99b2 (diff) | |
download | cpython-38796d07a535618a9c12217c3d6d5d0309fceed5.zip cpython-38796d07a535618a9c12217c3d6d5d0309fceed5.tar.gz cpython-38796d07a535618a9c12217c3d6d5d0309fceed5.tar.bz2 |
Use numbers that can be accurately represented on binary machines. I hope
this works on all platforms.
-rw-r--r-- | Lib/test/output/test_coercion | 1170 | ||||
-rw-r--r-- | Lib/test/test_coercion.py | 4 |
2 files changed, 587 insertions, 587 deletions
diff --git a/Lib/test/output/test_coercion b/Lib/test/output/test_coercion index 902adbd..0cb893b 100644 --- a/Lib/test/output/test_coercion +++ b/Lib/test/output/test_coercion @@ -11,18 +11,18 @@ test_coercion 2 **= 2 => 4 2 % 2 = 0 2 %= 2 => 0 -2 + 2.2 = 4.2 -2 += 2.2 => 4.2 -2 - 2.2 = -0.2 -2 -= 2.2 => -0.2 -2 * 2.2 = 4.4 -2 *= 2.2 => 4.4 -2 / 2.2 = 0.909090909091 -2 /= 2.2 => 0.909090909091 -2 ** 2.2 = 4.59479341999 -2 **= 2.2 => 4.59479341999 -2 % 2.2 = 2.0 -2 %= 2.2 => 2.0 +2 + 4.0 = 6.0 +2 += 4.0 => 6.0 +2 - 4.0 = -2.0 +2 -= 4.0 => -2.0 +2 * 4.0 = 8.0 +2 *= 4.0 => 8.0 +2 / 4.0 = 0.5 +2 /= 4.0 => 0.5 +2 ** 4.0 = 16.0 +2 **= 4.0 => 16.0 +2 % 4.0 = 2.0 +2 %= 4.0 => 2.0 2 + 2 = 4 2 += 2 => 4 2 - 2 = 0 @@ -35,18 +35,18 @@ test_coercion 2 **= 2 => 4 2 % 2 = 0 2 %= 2 => 0 -2 + (2+4j) = (4+4j) -2 += (2+4j) => (4+4j) -2 - (2+4j) = -4j -2 -= (2+4j) => -4j -2 * (2+4j) = (4+8j) -2 *= (2+4j) => (4+8j) -2 / (2+4j) = (0.2-0.4j) -2 /= (2+4j) => (0.2-0.4j) -2 ** (2+4j) = (-3.73074830734+1.44274636276j) -2 **= (2+4j) => (-3.73074830734+1.44274636276j) -2 % (2+4j) = (2+0j) -2 %= (2+4j) => (2+0j) +2 + (2+0j) = (4+0j) +2 += (2+0j) => (4+0j) +2 - (2+0j) = 0j +2 -= (2+0j) => 0j +2 * (2+0j) = (4+0j) +2 *= (2+0j) => (4+0j) +2 / (2+0j) = (1+0j) +2 /= (2+0j) => (1+0j) +2 ** (2+0j) = (4+0j) +2 **= (2+0j) => (4+0j) +2 % (2+0j) = 0j +2 %= (2+0j) => 0j 2 + [1] ... exceptions.TypeError 2 += [1] ... exceptions.TypeError 2 - [1] ... exceptions.TypeError @@ -95,126 +95,126 @@ test_coercion 2 **= <MethodNumber 1> => 2 2 % <MethodNumber 1> = 0 2 %= <MethodNumber 1> => 0 -2 + <CoerceNumber 8> = 10 -2 += <CoerceNumber 8> => 10 -2 - <CoerceNumber 8> = -6 -2 -= <CoerceNumber 8> => -6 -2 * <CoerceNumber 8> = 16 -2 *= <CoerceNumber 8> => 16 -2 / <CoerceNumber 8> = 0 -2 /= <CoerceNumber 8> => 0 -2 ** <CoerceNumber 8> = 256 -2 **= <CoerceNumber 8> => 256 -2 % <CoerceNumber 8> = 2 -2 %= <CoerceNumber 8> => 2 -2.2 + 2 = 4.2 -2.2 += 2 => 4.2 -2.2 - 2 = 0.2 -2.2 -= 2 => 0.2 -2.2 * 2 = 4.4 -2.2 *= 2 => 4.4 -2.2 / 2 = 1.1 -2.2 /= 2 => 1.1 -2.2 ** 2 = 4.84 -2.2 **= 2 => 4.84 -2.2 % 2 = 0.2 -2.2 %= 2 => 0.2 -2.2 + 2.2 = 4.4 -2.2 += 2.2 => 4.4 -2.2 - 2.2 = 0.0 -2.2 -= 2.2 => 0.0 -2.2 * 2.2 = 4.84 -2.2 *= 2.2 => 4.84 -2.2 / 2.2 = 1.0 -2.2 /= 2.2 => 1.0 -2.2 ** 2.2 = 5.66669577875 -2.2 **= 2.2 => 5.66669577875 -2.2 % 2.2 = 0.0 -2.2 %= 2.2 => 0.0 -2.2 + 2 = 4.2 -2.2 += 2 => 4.2 -2.2 - 2 = 0.2 -2.2 -= 2 => 0.2 -2.2 * 2 = 4.4 -2.2 *= 2 => 4.4 -2.2 / 2 = 1.1 -2.2 /= 2 => 1.1 -2.2 ** 2 = 4.84 -2.2 **= 2 => 4.84 -2.2 % 2 = 0.2 -2.2 %= 2 => 0.2 -2.2 + (2+4j) = (4.2+4j) -2.2 += (2+4j) => (4.2+4j) -2.2 - (2+4j) = (0.2-4j) -2.2 -= (2+4j) => (0.2-4j) -2.2 * (2+4j) = (4.4+8.8j) -2.2 *= (2+4j) => (4.4+8.8j) -2.2 / (2+4j) = (0.22-0.44j) -2.2 /= (2+4j) => (0.22-0.44j) -2.2 ** (2+4j) = (-4.8396376362-0.059224575214j) -2.2 **= (2+4j) => (-4.8396376362-0.059224575214j) -2.2 % (2+4j) = (2.2+0j) -2.2 %= (2+4j) => (2.2+0j) -2.2 + [1] ... exceptions.TypeError -2.2 += [1] ... exceptions.TypeError -2.2 - [1] ... exceptions.TypeError -2.2 -= [1] ... exceptions.TypeError -2.2 * [1] ... exceptions.TypeError -2.2 *= [1] ... exceptions.TypeError -2.2 / [1] ... exceptions.TypeError -2.2 /= [1] ... exceptions.TypeError -2.2 ** [1] ... exceptions.TypeError -2.2 **= [1] ... exceptions.TypeError -2.2 % [1] ... exceptions.TypeError -2.2 %= [1] ... exceptions.TypeError -2.2 + (2,) ... exceptions.TypeError -2.2 += (2,) ... exceptions.TypeError -2.2 - (2,) ... exceptions.TypeError -2.2 -= (2,) ... exceptions.TypeError -2.2 * (2,) ... exceptions.TypeError -2.2 *= (2,) ... exceptions.TypeError -2.2 / (2,) ... exceptions.TypeError -2.2 /= (2,) ... exceptions.TypeError -2.2 ** (2,) ... exceptions.TypeError -2.2 **= (2,) ... exceptions.TypeError -2.2 % (2,) ... exceptions.TypeError -2.2 %= (2,) ... exceptions.TypeError -2.2 + None ... exceptions.TypeError -2.2 += None ... exceptions.TypeError -2.2 - None ... exceptions.TypeError -2.2 -= None ... exceptions.TypeError -2.2 * None ... exceptions.TypeError -2.2 *= None ... exceptions.TypeError -2.2 / None ... exceptions.TypeError -2.2 /= None ... exceptions.TypeError -2.2 ** None ... exceptions.TypeError -2.2 **= None ... exceptions.TypeError -2.2 % None ... exceptions.TypeError -2.2 %= None ... exceptions.TypeError -2.2 + <MethodNumber 1> = 3.2 -2.2 += <MethodNumber 1> => 3.2 -2.2 - <MethodNumber 1> = 1.2 -2.2 -= <MethodNumber 1> => 1.2 -2.2 * <MethodNumber 1> = 2.2 -2.2 *= <MethodNumber 1> => 2.2 -2.2 / <MethodNumber 1> = 2.2 -2.2 /= <MethodNumber 1> => 2.2 -2.2 ** <MethodNumber 1> = 2.2 -2.2 **= <MethodNumber 1> => 2.2 -2.2 % <MethodNumber 1> = 0.2 -2.2 %= <MethodNumber 1> => 0.2 -2.2 + <CoerceNumber 8> = 10.2 -2.2 += <CoerceNumber 8> => 10.2 -2.2 - <CoerceNumber 8> = -5.8 -2.2 -= <CoerceNumber 8> => -5.8 -2.2 * <CoerceNumber 8> = 17.6 -2.2 *= <CoerceNumber 8> => 17.6 -2.2 / <CoerceNumber 8> = 0.275 -2.2 /= <CoerceNumber 8> => 0.275 -2.2 ** <CoerceNumber 8> = 548.75873536 -2.2 **= <CoerceNumber 8> => 548.75873536 -2.2 % <CoerceNumber 8> = 2.2 -2.2 %= <CoerceNumber 8> => 2.2 +2 + <CoerceNumber 2> = 4 +2 += <CoerceNumber 2> => 4 +2 - <CoerceNumber 2> = 0 +2 -= <CoerceNumber 2> => 0 +2 * <CoerceNumber 2> = 4 +2 *= <CoerceNumber 2> => 4 +2 / <CoerceNumber 2> = 1 +2 /= <CoerceNumber 2> => 1 +2 ** <CoerceNumber 2> = 4 +2 **= <CoerceNumber 2> => 4 +2 % <CoerceNumber 2> = 0 +2 %= <CoerceNumber 2> => 0 +4.0 + 2 = 6.0 +4.0 += 2 => 6.0 +4.0 - 2 = 2.0 +4.0 -= 2 => 2.0 +4.0 * 2 = 8.0 +4.0 *= 2 => 8.0 +4.0 / 2 = 2.0 +4.0 /= 2 => 2.0 +4.0 ** 2 = 16.0 +4.0 **= 2 => 16.0 +4.0 % 2 = 0.0 +4.0 %= 2 => 0.0 +4.0 + 4.0 = 8.0 +4.0 += 4.0 => 8.0 +4.0 - 4.0 = 0.0 +4.0 -= 4.0 => 0.0 +4.0 * 4.0 = 16.0 +4.0 *= 4.0 => 16.0 +4.0 / 4.0 = 1.0 +4.0 /= 4.0 => 1.0 +4.0 ** 4.0 = 256.0 +4.0 **= 4.0 => 256.0 +4.0 % 4.0 = 0.0 +4.0 %= 4.0 => 0.0 +4.0 + 2 = 6.0 +4.0 += 2 => 6.0 +4.0 - 2 = 2.0 +4.0 -= 2 => 2.0 +4.0 * 2 = 8.0 +4.0 *= 2 => 8.0 +4.0 / 2 = 2.0 +4.0 /= 2 => 2.0 +4.0 ** 2 = 16.0 +4.0 **= 2 => 16.0 +4.0 % 2 = 0.0 +4.0 %= 2 => 0.0 +4.0 + (2+0j) = (6+0j) +4.0 += (2+0j) => (6+0j) +4.0 - (2+0j) = (2+0j) +4.0 -= (2+0j) => (2+0j) +4.0 * (2+0j) = (8+0j) +4.0 *= (2+0j) => (8+0j) +4.0 / (2+0j) = (2+0j) +4.0 /= (2+0j) => (2+0j) +4.0 ** (2+0j) = (16+0j) +4.0 **= (2+0j) => (16+0j) +4.0 % (2+0j) = 0j +4.0 %= (2+0j) => 0j +4.0 + [1] ... exceptions.TypeError +4.0 += [1] ... exceptions.TypeError +4.0 - [1] ... exceptions.TypeError +4.0 -= [1] ... exceptions.TypeError +4.0 * [1] ... exceptions.TypeError +4.0 *= [1] ... exceptions.TypeError +4.0 / [1] ... exceptions.TypeError +4.0 /= [1] ... exceptions.TypeError +4.0 ** [1] ... exceptions.TypeError +4.0 **= [1] ... exceptions.TypeError +4.0 % [1] ... exceptions.TypeError +4.0 %= [1] ... exceptions.TypeError +4.0 + (2,) ... exceptions.TypeError +4.0 += (2,) ... exceptions.TypeError +4.0 - (2,) ... exceptions.TypeError +4.0 -= (2,) ... exceptions.TypeError +4.0 * (2,) ... exceptions.TypeError +4.0 *= (2,) ... exceptions.TypeError +4.0 / (2,) ... exceptions.TypeError +4.0 /= (2,) ... exceptions.TypeError +4.0 ** (2,) ... exceptions.TypeError +4.0 **= (2,) ... exceptions.TypeError +4.0 % (2,) ... exceptions.TypeError +4.0 %= (2,) ... exceptions.TypeError +4.0 + None ... exceptions.TypeError +4.0 += None ... exceptions.TypeError +4.0 - None ... exceptions.TypeError +4.0 -= None ... exceptions.TypeError +4.0 * None ... exceptions.TypeError +4.0 *= None ... exceptions.TypeError +4.0 / None ... exceptions.TypeError +4.0 /= None ... exceptions.TypeError +4.0 ** None ... exceptions.TypeError +4.0 **= None ... exceptions.TypeError +4.0 % None ... exceptions.TypeError +4.0 %= None ... exceptions.TypeError +4.0 + <MethodNumber 1> = 5.0 +4.0 += <MethodNumber 1> => 5.0 +4.0 - <MethodNumber 1> = 3.0 +4.0 -= <MethodNumber 1> => 3.0 +4.0 * <MethodNumber 1> = 4.0 +4.0 *= <MethodNumber 1> => 4.0 +4.0 / <MethodNumber 1> = 4.0 +4.0 /= <MethodNumber 1> => 4.0 +4.0 ** <MethodNumber 1> = 4.0 +4.0 **= <MethodNumber 1> => 4.0 +4.0 % <MethodNumber 1> = 0.0 +4.0 %= <MethodNumber 1> => 0.0 +4.0 + <CoerceNumber 2> = 6.0 +4.0 += <CoerceNumber 2> => 6.0 +4.0 - <CoerceNumber 2> = 2.0 +4.0 -= <CoerceNumber 2> => 2.0 +4.0 * <CoerceNumber 2> = 8.0 +4.0 *= <CoerceNumber 2> => 8.0 +4.0 / <CoerceNumber 2> = 2.0 +4.0 /= <CoerceNumber 2> => 2.0 +4.0 ** <CoerceNumber 2> = 16.0 +4.0 **= <CoerceNumber 2> => 16.0 +4.0 % <CoerceNumber 2> = 0.0 +4.0 %= <CoerceNumber 2> => 0.0 2 + 2 = 4 2 += 2 => 4 2 - 2 = 0 @@ -227,18 +227,18 @@ test_coercion 2 **= 2 => 4 2 % 2 = 0 2 %= 2 => 0 -2 + 2.2 = 4.2 -2 += 2.2 => 4.2 -2 - 2.2 = -0.2 -2 -= 2.2 => -0.2 -2 * 2.2 = 4.4 -2 *= 2.2 => 4.4 -2 / 2.2 = 0.909090909091 -2 /= 2.2 => 0.909090909091 -2 ** 2.2 = 4.59479341999 -2 **= 2.2 => 4.59479341999 -2 % 2.2 = 2.0 -2 %= 2.2 => 2.0 +2 + 4.0 = 6.0 +2 += 4.0 => 6.0 +2 - 4.0 = -2.0 +2 -= 4.0 => -2.0 +2 * 4.0 = 8.0 +2 *= 4.0 => 8.0 +2 / 4.0 = 0.5 +2 /= 4.0 => 0.5 +2 ** 4.0 = 16.0 +2 **= 4.0 => 16.0 +2 % 4.0 = 2.0 +2 %= 4.0 => 2.0 2 + 2 = 4 2 += 2 => 4 2 - 2 = 0 @@ -251,18 +251,18 @@ test_coercion 2 **= 2 => 4 2 % 2 = 0 2 %= 2 => 0 -2 + (2+4j) = (4+4j) -2 += (2+4j) => (4+4j) -2 - (2+4j) = -4j -2 -= (2+4j) => -4j -2 * (2+4j) = (4+8j) -2 *= (2+4j) => (4+8j) -2 / (2+4j) = (0.2-0.4j) -2 /= (2+4j) => (0.2-0.4j) -2 ** (2+4j) = (-3.73074830734+1.44274636276j) -2 **= (2+4j) => (-3.73074830734+1.44274636276j) -2 % (2+4j) = (2+0j) -2 %= (2+4j) => (2+0j) +2 + (2+0j) = (4+0j) +2 += (2+0j) => (4+0j) +2 - (2+0j) = 0j +2 -= (2+0j) => 0j +2 * (2+0j) = (4+0j) +2 *= (2+0j) => (4+0j) +2 / (2+0j) = (1+0j) +2 /= (2+0j) => (1+0j) +2 ** (2+0j) = (4+0j) +2 **= (2+0j) => (4+0j) +2 % (2+0j) = 0j +2 %= (2+0j) => 0j 2 + [1] ... exceptions.TypeError 2 += [1] ... exceptions.TypeError 2 - [1] ... exceptions.TypeError @@ -311,126 +311,126 @@ test_coercion 2 **= <MethodNumber 1> => 2 2 % <MethodNumber 1> = 0 2 %= <MethodNumber 1> => 0 -2 + <CoerceNumber 8> = 10 -2 += <CoerceNumber 8> => 10 -2 - <CoerceNumber 8> = -6 -2 -= <CoerceNumber 8> => -6 -2 * <CoerceNumber 8> = 16 -2 *= <CoerceNumber 8> => 16 -2 / <CoerceNumber 8> = 0 -2 /= <CoerceNumber 8> => 0 -2 ** <CoerceNumber 8> = 256 -2 **= <CoerceNumber 8> => 256 -2 % <CoerceNumber 8> = 2 -2 %= <CoerceNumber 8> => 2 -(2+4j) + 2 = (4+4j) -(2+4j) += 2 => (4+4j) -(2+4j) - 2 = 4j -(2+4j) -= 2 => 4j -(2+4j) * 2 = (4+8j) -(2+4j) *= 2 => (4+8j) -(2+4j) / 2 = (1+2j) -(2+4j) /= 2 => (1+2j) -(2+4j) ** 2 = (-12+16j) -(2+4j) **= 2 => (-12+16j) -(2+4j) % 2 = 4j -(2+4j) %= 2 => 4j -(2+4j) + 2.2 = (4.2+4j) -(2+4j) += 2.2 => (4.2+4j) -(2+4j) - 2.2 = (-0.2+4j) -(2+4j) -= 2.2 => (-0.2+4j) -(2+4j) * 2.2 = (4.4+8.8j) -(2+4j) *= 2.2 => (4.4+8.8j) -(2+4j) / 2.2 = (0.909090909091+1.81818181818j) -(2+4j) /= 2.2 => (0.909090909091+1.81818181818j) -(2+4j) ** 2.2 = (-20.5374452851+17.5053998061j) -(2+4j) **= 2.2 => (-20.5374452851+17.5053998061j) -(2+4j) % 2.2 = (2+4j) -(2+4j) %= 2.2 => (2+4j) -(2+4j) + 2 = (4+4j) -(2+4j) += 2 => (4+4j) -(2+4j) - 2 = 4j -(2+4j) -= 2 => 4j -(2+4j) * 2 = (4+8j) -(2+4j) *= 2 => (4+8j) -(2+4j) / 2 = (1+2j) -(2+4j) /= 2 => (1+2j) -(2+4j) ** 2 = (-12+16j) -(2+4j) **= 2 => (-12+16j) -(2+4j) % 2 = 4j -(2+4j) %= 2 => 4j -(2+4j) + (2+4j) = (4+8j) -(2+4j) += (2+4j) => (4+8j) -(2+4j) - (2+4j) = 0j -(2+4j) -= (2+4j) => 0j -(2+4j) * (2+4j) = (-12+16j) -(2+4j) *= (2+4j) => (-12+16j) -(2+4j) / (2+4j) = (1+0j) -(2+4j) /= (2+4j) => (1+0j) -(2+4j) ** (2+4j) = (-0.0822228891036+0.224011648635j) -(2+4j) **= (2+4j) => (-0.0822228891036+0.224011648635j) -(2+4j) % (2+4j) = 0j -(2+4j) %= (2+4j) => 0j -(2+4j) + [1] ... exceptions.TypeError -(2+4j) += [1] ... exceptions.TypeError -(2+4j) - [1] ... exceptions.TypeError -(2+4j) -= [1] ... exceptions.TypeError -(2+4j) * [1] ... exceptions.TypeError -(2+4j) *= [1] ... exceptions.TypeError -(2+4j) / [1] ... exceptions.TypeError -(2+4j) /= [1] ... exceptions.TypeError -(2+4j) ** [1] ... exceptions.TypeError -(2+4j) **= [1] ... exceptions.TypeError -(2+4j) % [1] ... exceptions.TypeError -(2+4j) %= [1] ... exceptions.TypeError -(2+4j) + (2,) ... exceptions.TypeError -(2+4j) += (2,) ... exceptions.TypeError -(2+4j) - (2,) ... exceptions.TypeError -(2+4j) -= (2,) ... exceptions.TypeError -(2+4j) * (2,) ... exceptions.TypeError -(2+4j) *= (2,) ... exceptions.TypeError -(2+4j) / (2,) ... exceptions.TypeError -(2+4j) /= (2,) ... exceptions.TypeError -(2+4j) ** (2,) ... exceptions.TypeError -(2+4j) **= (2,) ... exceptions.TypeError -(2+4j) % (2,) ... exceptions.TypeError -(2+4j) %= (2,) ... exceptions.TypeError -(2+4j) + None ... exceptions.TypeError -(2+4j) += None ... exceptions.TypeError -(2+4j) - None ... exceptions.TypeError -(2+4j) -= None ... exceptions.TypeError -(2+4j) * None ... exceptions.TypeError -(2+4j) *= None ... exceptions.TypeError -(2+4j) / None ... exceptions.TypeError -(2+4j) /= None ... exceptions.TypeError -(2+4j) ** None ... exceptions.TypeError -(2+4j) **= None ... exceptions.TypeError -(2+4j) % None ... exceptions.TypeError -(2+4j) %= None ... exceptions.TypeError -(2+4j) + <MethodNumber 1> = (3+4j) -(2+4j) += <MethodNumber 1> => (3+4j) -(2+4j) - <MethodNumber 1> = (1+4j) -(2+4j) -= <MethodNumber 1> => (1+4j) -(2+4j) * <MethodNumber 1> = (2+4j) -(2+4j) *= <MethodNumber 1> => (2+4j) -(2+4j) / <MethodNumber 1> = (2+4j) -(2+4j) /= <MethodNumber 1> => (2+4j) -(2+4j) ** <MethodNumber 1> = (2+4j) -(2+4j) **= <MethodNumber 1> => (2+4j) -(2+4j) % <MethodNumber 1> = 4j -(2+4j) %= <MethodNumber 1> => 4j -(2+4j) + <CoerceNumber 8> = (10+4j) -(2+4j) += <CoerceNumber 8> => (10+4j) -(2+4j) - <CoerceNumber 8> = (-6+4j) -(2+4j) -= <CoerceNumber 8> => (-6+4j) -(2+4j) * <CoerceNumber 8> = (16+32j) -(2+4j) *= <CoerceNumber 8> => (16+32j) -(2+4j) / <CoerceNumber 8> = (0.25+0.5j) -(2+4j) /= <CoerceNumber 8> => (0.25+0.5j) -(2+4j) ** <CoerceNumber 8> = (-134912+86016j) -(2+4j) **= <CoerceNumber 8> => (-134912+86016j) -(2+4j) % <CoerceNumber 8> = (2+4j) -(2+4j) %= <CoerceNumber 8> => (2+4j) +2 + <CoerceNumber 2> = 4 +2 += <CoerceNumber 2> => 4 +2 - <CoerceNumber 2> = 0 +2 -= <CoerceNumber 2> => 0 +2 * <CoerceNumber 2> = 4 +2 *= <CoerceNumber 2> => 4 +2 / <CoerceNumber 2> = 1 +2 /= <CoerceNumber 2> => 1 +2 ** <CoerceNumber 2> = 4 +2 **= <CoerceNumber 2> => 4 +2 % <CoerceNumber 2> = 0 +2 %= <CoerceNumber 2> => 0 +(2+0j) + 2 = (4+0j) +(2+0j) += 2 => (4+0j) +(2+0j) - 2 = 0j +(2+0j) -= 2 => 0j +(2+0j) * 2 = (4+0j) +(2+0j) *= 2 => (4+0j) +(2+0j) / 2 = (1+0j) +(2+0j) /= 2 => (1+0j) +(2+0j) ** 2 = (4+0j) +(2+0j) **= 2 => (4+0j) +(2+0j) % 2 = 0j +(2+0j) %= 2 => 0j +(2+0j) + 4.0 = (6+0j) +(2+0j) += 4.0 => (6+0j) +(2+0j) - 4.0 = (-2+0j) +(2+0j) -= 4.0 => (-2+0j) +(2+0j) * 4.0 = (8+0j) +(2+0j) *= 4.0 => (8+0j) +(2+0j) / 4.0 = (0.5+0j) +(2+0j) /= 4.0 => (0.5+0j) +(2+0j) ** 4.0 = (16+0j) +(2+0j) **= 4.0 => (16+0j) +(2+0j) % 4.0 = (2+0j) +(2+0j) %= 4.0 => (2+0j) +(2+0j) + 2 = (4+0j) +(2+0j) += 2 => (4+0j) +(2+0j) - 2 = 0j +(2+0j) -= 2 => 0j +(2+0j) * 2 = (4+0j) +(2+0j) *= 2 => (4+0j) +(2+0j) / 2 = (1+0j) +(2+0j) /= 2 => (1+0j) +(2+0j) ** 2 = (4+0j) +(2+0j) **= 2 => (4+0j) +(2+0j) % 2 = 0j +(2+0j) %= 2 => 0j +(2+0j) + (2+0j) = (4+0j) +(2+0j) += (2+0j) => (4+0j) +(2+0j) - (2+0j) = 0j +(2+0j) -= (2+0j) => 0j +(2+0j) * (2+0j) = (4+0j) +(2+0j) *= (2+0j) => (4+0j) +(2+0j) / (2+0j) = (1+0j) +(2+0j) /= (2+0j) => (1+0j) +(2+0j) ** (2+0j) = (4+0j) +(2+0j) **= (2+0j) => (4+0j) +(2+0j) % (2+0j) = 0j +(2+0j) %= (2+0j) => 0j +(2+0j) + [1] ... exceptions.TypeError +(2+0j) += [1] ... exceptions.TypeError +(2+0j) - [1] ... exceptions.TypeError +(2+0j) -= [1] ... exceptions.TypeError +(2+0j) * [1] ... exceptions.TypeError +(2+0j) *= [1] ... exceptions.TypeError +(2+0j) / [1] ... exceptions.TypeError +(2+0j) /= [1] ... exceptions.TypeError +(2+0j) ** [1] ... exceptions.TypeError +(2+0j) **= [1] ... exceptions.TypeError +(2+0j) % [1] ... exceptions.TypeError +(2+0j) %= [1] ... exceptions.TypeError +(2+0j) + (2,) ... exceptions.TypeError +(2+0j) += (2,) ... exceptions.TypeError +(2+0j) - (2,) ... exceptions.TypeError +(2+0j) -= (2,) ... exceptions.TypeError +(2+0j) * (2,) ... exceptions.TypeError +(2+0j) *= (2,) ... exceptions.TypeError +(2+0j) / (2,) ... exceptions.TypeError +(2+0j) /= (2,) ... exceptions.TypeError +(2+0j) ** (2,) ... exceptions.TypeError +(2+0j) **= (2,) ... exceptions.TypeError +(2+0j) % (2,) ... exceptions.TypeError +(2+0j) %= (2,) ... exceptions.TypeError +(2+0j) + None ... exceptions.TypeError +(2+0j) += None ... exceptions.TypeError +(2+0j) - None ... exceptions.TypeError +(2+0j) -= None ... exceptions.TypeError +(2+0j) * None ... exceptions.TypeError +(2+0j) *= None ... exceptions.TypeError +(2+0j) / None ... exceptions.TypeError +(2+0j) /= None ... exceptions.TypeError +(2+0j) ** None ... exceptions.TypeError +(2+0j) **= None ... exceptions.TypeError +(2+0j) % None ... exceptions.TypeError +(2+0j) %= None ... exceptions.TypeError +(2+0j) + <MethodNumber 1> = (3+0j) +(2+0j) += <MethodNumber 1> => (3+0j) +(2+0j) - <MethodNumber 1> = (1+0j) +(2+0j) -= <MethodNumber 1> => (1+0j) +(2+0j) * <MethodNumber 1> = (2+0j) +(2+0j) *= <MethodNumber 1> => (2+0j) +(2+0j) / <MethodNumber 1> = (2+0j) +(2+0j) /= <MethodNumber 1> => (2+0j) +(2+0j) ** <MethodNumber 1> = (2+0j) +(2+0j) **= <MethodNumber 1> => (2+0j) +(2+0j) % <MethodNumber 1> = 0j +(2+0j) %= <MethodNumber 1> => 0j +(2+0j) + <CoerceNumber 2> = (4+0j) +(2+0j) += <CoerceNumber 2> => (4+0j) +(2+0j) - <CoerceNumber 2> = 0j +(2+0j) -= <CoerceNumber 2> => 0j +(2+0j) * <CoerceNumber 2> = (4+0j) +(2+0j) *= <CoerceNumber 2> => (4+0j) +(2+0j) / <CoerceNumber 2> = (1+0j) +(2+0j) /= <CoerceNumber 2> => (1+0j) +(2+0j) ** <CoerceNumber 2> = (4+0j) +(2+0j) **= <CoerceNumber 2> => (4+0j) +(2+0j) % <CoerceNumber 2> = 0j +(2+0j) %= <CoerceNumber 2> => 0j [1] + 2 ... exceptions.TypeError [1] += 2 ... exceptions.TypeError [1] - 2 ... exceptions.TypeError @@ -443,18 +443,18 @@ test_coercion [1] **= 2 ... exceptions.TypeError [1] % 2 ... exceptions.TypeError [1] %= 2 ... exceptions.TypeError -[1] + 2.2 ... exceptions.TypeError -[1] += 2.2 ... exceptions.TypeError -[1] - 2.2 ... exceptions.TypeError -[1] -= 2.2 ... exceptions.TypeError -[1] * 2.2 ... exceptions.TypeError -[1] *= 2.2 ... exceptions.TypeError -[1] / 2.2 ... exceptions.TypeError -[1] /= 2.2 ... exceptions.TypeError -[1] ** 2.2 ... exceptions.TypeError -[1] **= 2.2 ... exceptions.TypeError -[1] % 2.2 ... exceptions.TypeError -[1] %= 2.2 ... exceptions.TypeError +[1] + 4.0 ... exceptions.TypeError +[1] += 4.0 ... exceptions.TypeError +[1] - 4.0 ... exceptions.TypeError +[1] -= 4.0 ... exceptions.TypeError +[1] * 4.0 ... exceptions.TypeError +[1] *= 4.0 ... exceptions.TypeError +[1] / 4.0 ... exceptions.TypeError +[1] /= 4.0 ... exceptions.TypeError +[1] ** 4.0 ... exceptions.TypeError +[1] **= 4.0 ... exceptions.TypeError +[1] % 4.0 ... exceptions.TypeError +[1] %= 4.0 ... exceptions.TypeError [1] + 2 ... exceptions.TypeError [1] += 2 ... exceptions.TypeError [1] - 2 ... exceptions.TypeError @@ -467,18 +467,18 @@ test_coercion [1] **= 2 ... exceptions.TypeError [1] % 2 ... exceptions.TypeError [1] %= 2 ... exceptions.TypeError -[1] + (2+4j) ... exceptions.TypeError -[1] += (2+4j) ... exceptions.TypeError -[1] - (2+4j) ... exceptions.TypeError -[1] -= (2+4j) ... exceptions.TypeError -[1] * (2+4j) ... exceptions.TypeError -[1] *= (2+4j) ... exceptions.TypeError -[1] / (2+4j) ... exceptions.TypeError -[1] /= (2+4j) ... exceptions.TypeError -[1] ** (2+4j) ... exceptions.TypeError -[1] **= (2+4j) ... exceptions.TypeError -[1] % (2+4j) ... exceptions.TypeError -[1] %= (2+4j) ... exceptions.TypeError +[1] + (2+0j) ... exceptions.TypeError +[1] += (2+0j) ... exceptions.TypeError +[1] - (2+0j) ... exceptions.TypeError +[1] -= (2+0j) ... exceptions.TypeError +[1] * (2+0j) ... exceptions.TypeError +[1] *= (2+0j) ... exceptions.TypeError +[1] / (2+0j) ... exceptions.TypeError +[1] /= (2+0j) ... exceptions.TypeError +[1] ** (2+0j) ... exceptions.TypeError +[1] **= (2+0j) ... exceptions.TypeError +[1] % (2+0j) ... exceptions.TypeError +[1] %= (2+0j) ... exceptions.TypeError [1] + [1] = [1, 1] [1] += [1] => [1, 1] [1] - [1] ... exceptions.TypeError @@ -527,18 +527,18 @@ test_coercion [1] **= <MethodNumber 1> ... exceptions.TypeError [1] % <MethodNumber 1> ... exceptions.TypeError [1] %= <MethodNumber 1> ... exceptions.TypeError -[1] + <CoerceNumber 8> ... exceptions.TypeError -[1] += <CoerceNumber 8> ... exceptions.AttributeError -[1] - <CoerceNumber 8> ... exceptions.TypeError -[1] -= <CoerceNumber 8> ... exceptions.TypeError -[1] * <CoerceNumber 8> = [1, 1, 1, 1, 1, 1, 1, 1] -[1] *= <CoerceNumber 8> ... exceptions.TypeError -[1] / <CoerceNumber 8> ... exceptions.TypeError -[1] /= <CoerceNumber 8> ... exceptions.TypeError -[1] ** <CoerceNumber 8> ... exceptions.TypeError -[1] **= <CoerceNumber 8> ... exceptions.TypeError -[1] % <CoerceNumber 8> ... exceptions.TypeError -[1] %= <CoerceNumber 8> ... exceptions.TypeError +[1] + <CoerceNumber 2> ... exceptions.TypeError +[1] += <CoerceNumber 2> ... exceptions.AttributeError +[1] - <CoerceNumber 2> ... exceptions.TypeError +[1] -= <CoerceNumber 2> ... exceptions.TypeError +[1] * <CoerceNumber 2> = [1, 1] +[1] *= <CoerceNumber 2> ... exceptions.TypeError +[1] / <CoerceNumber 2> ... exceptions.TypeError +[1] /= <CoerceNumber 2> ... exceptions.TypeError +[1] ** <CoerceNumber 2> ... exceptions.TypeError +[1] **= <CoerceNumber 2> ... exceptions.TypeError +[1] % <CoerceNumber 2> ... exceptions.TypeError +[1] %= <CoerceNumber 2> ... exceptions.TypeError (2,) + 2 ... exceptions.TypeError (2,) += 2 ... exceptions.TypeError (2,) - 2 ... exceptions.TypeError @@ -551,18 +551,18 @@ test_coercion (2,) **= 2 ... exceptions.TypeError (2,) % 2 ... exceptions.TypeError (2,) %= 2 ... exceptions.TypeError -(2,) + 2.2 ... exceptions.TypeError -(2,) += 2.2 ... exceptions.TypeError -(2,) - 2.2 ... exceptions.TypeError -(2,) -= 2.2 ... exceptions.TypeError -(2,) * 2.2 ... exceptions.TypeError -(2,) *= 2.2 ... exceptions.TypeError -(2,) / 2.2 ... exceptions.TypeError -(2,) /= 2.2 ... exceptions.TypeError -(2,) ** 2.2 ... exceptions.TypeError -(2,) **= 2.2 ... exceptions.TypeError -(2,) % 2.2 ... exceptions.TypeError -(2,) %= 2.2 ... exceptions.TypeError +(2,) + 4.0 ... exceptions.TypeError +(2,) += 4.0 ... exceptions.TypeError +(2,) - 4.0 ... exceptions.TypeError +(2,) -= 4.0 ... exceptions.TypeError +(2,) * 4.0 ... exceptions.TypeError +(2,) *= 4.0 ... exceptions.TypeError +(2,) / 4.0 ... exceptions.TypeError +(2,) /= 4.0 ... exceptions.TypeError +(2,) ** 4.0 ... exceptions.TypeError +(2,) **= 4.0 ... exceptions.TypeError +(2,) % 4.0 ... exceptions.TypeError +(2,) %= 4.0 ... exceptions.TypeError (2,) + 2 ... exceptions.TypeError (2,) += 2 ... exceptions.TypeError (2,) - 2 ... exceptions.TypeError @@ -575,18 +575,18 @@ test_coercion (2,) **= 2 ... exceptions.TypeError (2,) % 2 ... exceptions.TypeError (2,) %= 2 ... exceptions.TypeError -(2,) + (2+4j) ... exceptions.TypeError -(2,) += (2+4j) ... exceptions.TypeError -(2,) - (2+4j) ... exceptions.TypeError -(2,) -= (2+4j) ... exceptions.TypeError -(2,) * (2+4j) ... exceptions.TypeError -(2,) *= (2+4j) ... exceptions.TypeError -(2,) / (2+4j) ... exceptions.TypeError -(2,) /= (2+4j) ... exceptions.TypeError -(2,) ** (2+4j) ... exceptions.TypeError -(2,) **= (2+4j) ... exceptions.TypeError -(2,) % (2+4j) ... exceptions.TypeError -(2,) %= (2+4j) ... exceptions.TypeError +(2,) + (2+0j) ... exceptions.TypeError +(2,) += (2+0j) ... exceptions.TypeError +(2,) - (2+0j) ... exceptions.TypeError +(2,) -= (2+0j) ... exceptions.TypeError +(2,) * (2+0j) ... exceptions.TypeError +(2,) *= (2+0j) ... exceptions.TypeError +(2,) / (2+0j) ... exceptions.TypeError +(2,) /= (2+0j) ... exceptions.TypeError +(2,) ** (2+0j) ... exceptions.TypeError +(2,) **= (2+0j) ... exceptions.TypeError +(2,) % (2+0j) ... exceptions.TypeError +(2,) %= (2+0j) ... exceptions.TypeError (2,) + [1] ... exceptions.TypeError (2,) += [1] ... exceptions.TypeError (2,) - [1] ... exceptions.TypeError @@ -635,18 +635,18 @@ test_coercion (2,) **= <MethodNumber 1> ... exceptions.TypeError (2,) % <MethodNumber 1> ... exceptions.TypeError (2,) %= <MethodNumber 1> ... exceptions.TypeError -(2,) + <CoerceNumber 8> ... exceptions.TypeError -(2,) += <CoerceNumber 8> ... exceptions.TypeError -(2,) - <CoerceNumber 8> ... exceptions.TypeError -(2,) -= <CoerceNumber 8> ... exceptions.TypeError -(2,) * <CoerceNumber 8> = (2, 2, 2, 2, 2, 2, 2, 2) -(2,) *= <CoerceNumber 8> => (2, 2, 2, 2, 2, 2, 2, 2) -(2,) / <CoerceNumber 8> ... exceptions.TypeError -(2,) /= <CoerceNumber 8> ... exceptions.TypeError -(2,) ** <CoerceNumber 8> ... exceptions.TypeError -(2,) **= <CoerceNumber 8> ... exceptions.TypeError -(2,) % <CoerceNumber 8> ... exceptions.TypeError -(2,) %= <CoerceNumber 8> ... exceptions.TypeError +(2,) + <CoerceNumber 2> ... exceptions.TypeError +(2,) += <CoerceNumber 2> ... exceptions.TypeError +(2,) - <CoerceNumber 2> ... exceptions.TypeError +(2,) -= <CoerceNumber 2> ... exceptions.TypeError +(2,) * <CoerceNumber 2> = (2, 2) +(2,) *= <CoerceNumber 2> => (2, 2) +(2,) / <CoerceNumber 2> ... exceptions.TypeError +(2,) /= <CoerceNumber 2> ... exceptions.TypeError +(2,) ** <CoerceNumber 2> ... exceptions.TypeError +(2,) **= <CoerceNumber 2> ... exceptions.TypeError +(2,) % <CoerceNumber 2> ... exceptions.TypeError +(2,) %= <CoerceNumber 2> ... exceptions.TypeError None + 2 ... exceptions.TypeError None += 2 ... exceptions.TypeError None - 2 ... exceptions.TypeError @@ -659,18 +659,18 @@ None ** 2 ... exceptions.TypeError None **= 2 ... exceptions.TypeError None % 2 ... exceptions.TypeError None %= 2 ... exceptions.TypeError -None + 2.2 ... exceptions.TypeError -None += 2.2 ... exceptions.TypeError -None - 2.2 ... exceptions.TypeError -None -= 2.2 ... exceptions.TypeError -None * 2.2 ... exceptions.TypeError -None *= 2.2 ... exceptions.TypeError -None / 2.2 ... exceptions.TypeError -None /= 2.2 ... exceptions.TypeError -None ** 2.2 ... exceptions.TypeError -None **= 2.2 ... exceptions.TypeError -None % 2.2 ... exceptions.TypeError -None %= 2.2 ... exceptions.TypeError +None + 4.0 ... exceptions.TypeError +None += 4.0 ... exceptions.TypeError +None - 4.0 ... exceptions.TypeError +None -= 4.0 ... exceptions.TypeError +None * 4.0 ... exceptions.TypeError +None *= 4.0 ... exceptions.TypeError +None / 4.0 ... exceptions.TypeError +None /= 4.0 ... exceptions.TypeError +None ** 4.0 ... exceptions.TypeError +None **= 4.0 ... exceptions.TypeError +None % 4.0 ... exceptions.TypeError +None %= 4.0 ... exceptions.TypeError None + 2 ... exceptions.TypeError None += 2 ... exceptions.TypeError None - 2 ... exceptions.TypeError @@ -683,18 +683,18 @@ None ** 2 ... exceptions.TypeError None **= 2 ... exceptions.TypeError None % 2 ... exceptions.TypeError None %= 2 ... exceptions.TypeError -None + (2+4j) ... exceptions.TypeError -None += (2+4j) ... exceptions.TypeError -None - (2+4j) ... exceptions.TypeError -None -= (2+4j) ... exceptions.TypeError -None * (2+4j) ... exceptions.TypeError -None *= (2+4j) ... exceptions.TypeError -None / (2+4j) ... exceptions.TypeError -None /= (2+4j) ... exceptions.TypeError -None ** (2+4j) ... exceptions.TypeError -None **= (2+4j) ... exceptions.TypeError -None % (2+4j) ... exceptions.TypeError -None %= (2+4j) ... exceptions.TypeError +None + (2+0j) ... exceptions.TypeError +None += (2+0j) ... exceptions.TypeError +None - (2+0j) ... exceptions.TypeError +None -= (2+0j) ... exceptions.TypeError +None * (2+0j) ... exceptions.TypeError +None *= (2+0j) ... exceptions.TypeError +None / (2+0j) ... exceptions.TypeError +None /= (2+0j) ... exceptions.TypeError +None ** (2+0j) ... exceptions.TypeError +None **= (2+0j) ... exceptions.TypeError +None % (2+0j) ... exceptions.TypeError +None %= (2+0j) ... exceptions.TypeError None + [1] ... exceptions.TypeError None += [1] ... exceptions.TypeError None - [1] ... exceptions.TypeError @@ -743,18 +743,18 @@ None ** <MethodNumber 1> ... exceptions.TypeError None **= <MethodNumber 1> ... exceptions.TypeError None % <MethodNumber 1> ... exceptions.TypeError None %= <MethodNumber 1> ... exceptions.TypeError -None + <CoerceNumber 8> ... exceptions.TypeError -None += <CoerceNumber 8> ... exceptions.TypeError -None - <CoerceNumber 8> ... exceptions.TypeError -None -= <CoerceNumber 8> ... exceptions.TypeError -None * <CoerceNumber 8> ... exceptions.TypeError -None *= <CoerceNumber 8> ... exceptions.TypeError -None / <CoerceNumber 8> ... exceptions.TypeError -None /= <CoerceNumber 8> ... exceptions.TypeError -None ** <CoerceNumber 8> ... exceptions.TypeError -None **= <CoerceNumber 8> ... exceptions.TypeError -None % <CoerceNumber 8> ... exceptions.TypeError -None %= <CoerceNumber 8> ... exceptions.TypeError +None + <CoerceNumber 2> ... exceptions.TypeError +None += <CoerceNumber 2> ... exceptions.TypeError +None - <CoerceNumber 2> ... exceptions.TypeError +None -= <CoerceNumber 2> ... exceptions.TypeError +None * <CoerceNumber 2> ... exceptions.TypeError +None *= <CoerceNumber 2> ... exceptions.TypeError +None / <CoerceNumber 2> ... exceptions.TypeError +None /= <CoerceNumber 2> ... exceptions.TypeError +None ** <CoerceNumber 2> ... exceptions.TypeError +None **= <CoerceNumber 2> ... exceptions.TypeError +None % <CoerceNumber 2> ... exceptions.TypeError +None %= <CoerceNumber 2> ... exceptions.TypeError <MethodNumber 1> + 2 = 3 <MethodNumber 1> += 2 => 3 <MethodNumber 1> - 2 = -1 @@ -767,18 +767,18 @@ None %= <CoerceNumber 8> ... exceptions.TypeError <MethodNumber 1> **= 2 => 1 <MethodNumber 1> % 2 = 1 <MethodNumber 1> %= 2 => 1 -<MethodNumber 1> + 2.2 = 3.2 -<MethodNumber 1> += 2.2 => 3.2 -<MethodNumber 1> - 2.2 = -1.2 -<MethodNumber 1> -= 2.2 => -1.2 -<MethodNumber 1> * 2.2 = 2.2 -<MethodNumber 1> *= 2.2 => 2.2 -<MethodNumber 1> / 2.2 = 0.454545454545 -<MethodNumber 1> /= 2.2 => 0.454545454545 -<MethodNumber 1> ** 2.2 = 1.0 -<MethodNumber 1> **= 2.2 => 1.0 -<MethodNumber 1> % 2.2 = 1.0 -<MethodNumber 1> %= 2.2 => 1.0 +<MethodNumber 1> + 4.0 = 5.0 +<MethodNumber 1> += 4.0 => 5.0 +<MethodNumber 1> - 4.0 = -3.0 +<MethodNumber 1> -= 4.0 => -3.0 +<MethodNumber 1> * 4.0 = 4.0 +<MethodNumber 1> *= 4.0 => 4.0 +<MethodNumber 1> / 4.0 = 0.25 +<MethodNumber 1> /= 4.0 => 0.25 +<MethodNumber 1> ** 4.0 = 1.0 +<MethodNumber 1> **= 4.0 => 1.0 +<MethodNumber 1> % 4.0 = 1.0 +<MethodNumber 1> %= 4.0 => 1.0 <MethodNumber 1> + 2 = 3 <MethodNumber 1> += 2 => 3 <MethodNumber 1> - 2 = -1 @@ -791,18 +791,18 @@ None %= <CoerceNumber 8> ... exceptions.TypeError <MethodNumber 1> **= 2 => 1 <MethodNumber 1> % 2 = 1 <MethodNumber 1> %= 2 => 1 -<MethodNumber 1> + (2+4j) = (3+4j) -<MethodNumber 1> += (2+4j) => (3+4j) -<MethodNumber 1> - (2+4j) = (-1-4j) -<MethodNumber 1> -= (2+4j) => (-1-4j) -<MethodNumber 1> * (2+4j) = (2+4j) -<MethodNumber 1> *= (2+4j) => (2+4j) -<MethodNumber 1> / (2+4j) = (0.1-0.2j) -<MethodNumber 1> /= (2+4j) => (0.1-0.2j) -<MethodNumber 1> ** (2+4j) = (1+0j) -<MethodNumber 1> **= (2+4j) => (1+0j) -<MethodNumber 1> % (2+4j) = (1+0j) -<MethodNumber 1> %= (2+4j) => (1+0j) +<MethodNumber 1> + (2+0j) = (3+0j) +<MethodNumber 1> += (2+0j) => (3+0j) +<MethodNumber 1> - (2+0j) = (-1+0j) +<MethodNumber 1> -= (2+0j) => (-1+0j) +<MethodNumber 1> * (2+0j) = (2+0j) +<MethodNumber 1> *= (2+0j) => (2+0j) +<MethodNumber 1> / (2+0j) = (0.5+0j) +<MethodNumber 1> /= (2+0j) => (0.5+0j) +<MethodNumber 1> ** (2+0j) = (1+0j) +<MethodNumber 1> **= (2+0j) => (1+0j) +<MethodNumber 1> % (2+0j) = (1+0j) +<MethodNumber 1> %= (2+0j) => (1+0j) <MethodNumber 1> + [1] ... exceptions.TypeError <MethodNumber 1> += [1] ... exceptions.TypeError <MethodNumber 1> - [1] ... exceptions.TypeError @@ -851,204 +851,204 @@ None %= <CoerceNumber 8> ... exceptions.TypeError <MethodNumber 1> **= <MethodNumber 1> => 1 <MethodNumber 1> % <MethodNumber 1> = 0 <MethodNumber 1> %= <MethodNumber 1> => 0 -<MethodNumber 1> + <CoerceNumber 8> = 9 -<MethodNumber 1> += <CoerceNumber 8> => 9 -<MethodNumber 1> - <CoerceNumber 8> = -7 -<MethodNumber 1> -= <CoerceNumber 8> => -7 -<MethodNumber 1> * <CoerceNumber 8> = 8 -<MethodNumber 1> *= <CoerceNumber 8> => 8 -<MethodNumber 1> / <CoerceNumber 8> = 0 -<MethodNumber 1> /= <CoerceNumber 8> => 0 -<MethodNumber 1> ** <CoerceNumber 8> = 1 -<MethodNumber 1> **= <CoerceNumber 8> => 1 -<MethodNumber 1> % <CoerceNumber 8> = 1 -<MethodNumber 1> %= <CoerceNumber 8> => 1 -<CoerceNumber 8> + 2 = 10 -<CoerceNumber 8> += 2 => 10 -<CoerceNumber 8> - 2 = 6 -<CoerceNumber 8> -= 2 => 6 -<CoerceNumber 8> * 2 = 16 -<CoerceNumber 8> *= 2 => 16 -<CoerceNumber 8> / 2 = 4 -<CoerceNumber 8> /= 2 => 4 -<CoerceNumber 8> ** 2 = 64 -<CoerceNumber 8> **= 2 => 64 -<CoerceNumber 8> % 2 = 0 -<CoerceNumber 8> %= 2 => 0 -<CoerceNumber 8> + 2.2 = 10.2 -<CoerceNumber 8> += 2.2 => 10.2 -<CoerceNumber 8> - 2.2 = 5.8 -<CoerceNumber 8> -= 2.2 => 5.8 -<CoerceNumber 8> * 2.2 = 17.6 -<CoerceNumber 8> *= 2.2 => 17.6 -<CoerceNumber 8> / 2.2 = 3.63636363636 -<CoerceNumber 8> /= 2.2 => 3.63636363636 -<CoerceNumber 8> ** 2.2 = 97.0058602567 -<CoerceNumber 8> **= 2.2 => 97.0058602567 -<CoerceNumber 8> % 2.2 = 1.4 -<CoerceNumber 8> %= 2.2 => 1.4 -<CoerceNumber 8> + 2 = 10 -<CoerceNumber 8> += 2 => 10 -<CoerceNumber 8> - 2 = 6 -<CoerceNumber 8> -= 2 => 6 -<CoerceNumber 8> * 2 = 16 -<CoerceNumber 8> *= 2 => 16 -<CoerceNumber 8> / 2 = 4 -<CoerceNumber 8> /= 2 => 4 -<CoerceNumber 8> ** 2 = 64 -<CoerceNumber 8> **= 2 => 64 -<CoerceNumber 8> % 2 = 0 -<CoerceNumber 8> %= 2 => 0 -<CoerceNumber 8> + (2+4j) = (10+4j) -<CoerceNumber 8> += (2+4j) => (10+4j) -<CoerceNumber 8> - (2+4j) = (6-4j) -<CoerceNumber 8> -= (2+4j) => (6-4j) -<CoerceNumber 8> * (2+4j) = (16+32j) -<CoerceNumber 8> *= (2+4j) => (16+32j) -<CoerceNumber 8> / (2+4j) = (0.8-1.6j) -<CoerceNumber 8> /= (2+4j) => (0.8-1.6j) -<CoerceNumber 8> ** (2+4j) = (-28.6295078161+57.2394207012j) -<CoerceNumber 8> **= (2+4j) => (-28.6295078161+57.2394207012j) -<CoerceNumber 8> % (2+4j) = (8+0j) -<CoerceNumber 8> %= (2+4j) => (8+0j) -<CoerceNumber 8> + [1] ... exceptions.TypeError -<CoerceNumber 8> += [1] ... exceptions.TypeError -<CoerceNumber 8> - [1] ... exceptions.TypeError -<CoerceNumber 8> -= [1] ... exceptions.TypeError -<CoerceNumber 8> * [1] = [1, 1, 1, 1, 1, 1, 1, 1] -<CoerceNumber 8> *= [1] => [1, 1, 1, 1, 1, 1, 1, 1] -<CoerceNumber 8> / [1] ... exceptions.TypeError -<CoerceNumber 8> /= [1] ... exceptions.TypeError -<CoerceNumber 8> ** [1] ... exceptions.TypeError -<CoerceNumber 8> **= [1] ... exceptions.TypeError -<CoerceNumber 8> % [1] ... exceptions.TypeError -<CoerceNumber 8> %= [1] ... exceptions.TypeError -<CoerceNumber 8> + (2,) ... exceptions.TypeError -<CoerceNumber 8> += (2,) ... exceptions.TypeError -<CoerceNumber 8> - (2,) ... exceptions.TypeError -<CoerceNumber 8> -= (2,) ... exceptions.TypeError -<CoerceNumber 8> * (2,) = (2, 2, 2, 2, 2, 2, 2, 2) -<CoerceNumber 8> *= (2,) => (2, 2, 2, 2, 2, 2, 2, 2) -<CoerceNumber 8> / (2,) ... exceptions.TypeError -<CoerceNumber 8> /= (2,) ... exceptions.TypeError -<CoerceNumber 8> ** (2,) ... exceptions.TypeError -<CoerceNumber 8> **= (2,) ... exceptions.TypeError -<CoerceNumber 8> % (2,) ... exceptions.TypeError -<CoerceNumber 8> %= (2,) ... exceptions.TypeError -<CoerceNumber 8> + None ... exceptions.TypeError -<CoerceNumber 8> += None ... exceptions.TypeError -<CoerceNumber 8> - None ... exceptions.TypeError -<CoerceNumber 8> -= None ... exceptions.TypeError -<CoerceNumber 8> * None ... exceptions.TypeError -<CoerceNumber 8> *= None ... exceptions.TypeError -<CoerceNumber 8> / None ... exceptions.TypeError -<CoerceNumber 8> /= None ... exceptions.TypeError -<CoerceNumber 8> ** None ... exceptions.TypeError -<CoerceNumber 8> **= None ... exceptions.TypeError -<CoerceNumber 8> % None ... exceptions.TypeError -<CoerceNumber 8> %= None ... exceptions.TypeError -<CoerceNumber 8> + <MethodNumber 1> = 9 -<CoerceNumber 8> += <MethodNumber 1> => 9 -<CoerceNumber 8> - <MethodNumber 1> = 7 -<CoerceNumber 8> -= <MethodNumber 1> => 7 -<CoerceNumber 8> * <MethodNumber 1> = 8 -<CoerceNumber 8> *= <MethodNumber 1> => 8 -<CoerceNumber 8> / <MethodNumber 1> = 8 -<CoerceNumber 8> /= <MethodNumber 1> => 8 -<CoerceNumber 8> ** <MethodNumber 1> = 8 -<CoerceNumber 8> **= <MethodNumber 1> => 8 -<CoerceNumber 8> % <MethodNumber 1> = 0 -<CoerceNumber 8> %= <MethodNumber 1> => 0 -<CoerceNumber 8> + <CoerceNumber 8> = 16 -<CoerceNumber 8> += <CoerceNumber 8> => 16 -<CoerceNumber 8> - <CoerceNumber 8> = 0 -<CoerceNumber 8> -= <CoerceNumber 8> => 0 -<CoerceNumber 8> * <CoerceNumber 8> = 64 -<CoerceNumber 8> *= <CoerceNumber 8> => 64 -<CoerceNumber 8> / <CoerceNumber 8> = 1 -<CoerceNumber 8> /= <CoerceNumber 8> => 1 -<CoerceNumber 8> ** <CoerceNumber 8> = 16777216 -<CoerceNumber 8> **= <CoerceNumber 8> => 16777216 -<CoerceNumber 8> % <CoerceNumber 8> = 0 -<CoerceNumber 8> %= <CoerceNumber 8> => 0 +<MethodNumber 1> + <CoerceNumber 2> = 3 +<MethodNumber 1> += <CoerceNumber 2> => 3 +<MethodNumber 1> - <CoerceNumber 2> = -1 +<MethodNumber 1> -= <CoerceNumber 2> => -1 +<MethodNumber 1> * <CoerceNumber 2> = 2 +<MethodNumber 1> *= <CoerceNumber 2> => 2 +<MethodNumber 1> / <CoerceNumber 2> = 0 +<MethodNumber 1> /= <CoerceNumber 2> => 0 +<MethodNumber 1> ** <CoerceNumber 2> = 1 +<MethodNumber 1> **= <CoerceNumber 2> => 1 +<MethodNumber 1> % <CoerceNumber 2> = 1 +<MethodNumber 1> %= <CoerceNumber 2> => 1 +<CoerceNumber 2> + 2 = 4 +<CoerceNumber 2> += 2 => 4 +<CoerceNumber 2> - 2 = 0 +<CoerceNumber 2> -= 2 => 0 +<CoerceNumber 2> * 2 = 4 +<CoerceNumber 2> *= 2 => 4 +<CoerceNumber 2> / 2 = 1 +<CoerceNumber 2> /= 2 => 1 +<CoerceNumber 2> ** 2 = 4 +<CoerceNumber 2> **= 2 => 4 +<CoerceNumber 2> % 2 = 0 +<CoerceNumber 2> %= 2 => 0 +<CoerceNumber 2> + 4.0 = 6.0 +<CoerceNumber 2> += 4.0 => 6.0 +<CoerceNumber 2> - 4.0 = -2.0 +<CoerceNumber 2> -= 4.0 => -2.0 +<CoerceNumber 2> * 4.0 = 8.0 +<CoerceNumber 2> *= 4.0 => 8.0 +<CoerceNumber 2> / 4.0 = 0.5 +<CoerceNumber 2> /= 4.0 => 0.5 +<CoerceNumber 2> ** 4.0 = 16.0 +<CoerceNumber 2> **= 4.0 => 16.0 +<CoerceNumber 2> % 4.0 = 2.0 +<CoerceNumber 2> %= 4.0 => 2.0 +<CoerceNumber 2> + 2 = 4 +<CoerceNumber 2> += 2 => 4 +<CoerceNumber 2> - 2 = 0 +<CoerceNumber 2> -= 2 => 0 +<CoerceNumber 2> * 2 = 4 +<CoerceNumber 2> *= 2 => 4 +<CoerceNumber 2> / 2 = 1 +<CoerceNumber 2> /= 2 => 1 +<CoerceNumber 2> ** 2 = 4 +<CoerceNumber 2> **= 2 => 4 +<CoerceNumber 2> % 2 = 0 +<CoerceNumber 2> %= 2 => 0 +<CoerceNumber 2> + (2+0j) = (4+0j) +<CoerceNumber 2> += (2+0j) => (4+0j) +<CoerceNumber 2> - (2+0j) = 0j +<CoerceNumber 2> -= (2+0j) => 0j +<CoerceNumber 2> * (2+0j) = (4+0j) +<CoerceNumber 2> *= (2+0j) => (4+0j) +<CoerceNumber 2> / (2+0j) = (1+0j) +<CoerceNumber 2> /= (2+0j) => (1+0j) +<CoerceNumber 2> ** (2+0j) = (4+0j) +<CoerceNumber 2> **= (2+0j) => (4+0j) +<CoerceNumber 2> % (2+0j) = 0j +<CoerceNumber 2> %= (2+0j) => 0j +<CoerceNumber 2> + [1] ... exceptions.TypeError +<CoerceNumber 2> += [1] ... exceptions.TypeError +<CoerceNumber 2> - [1] ... exceptions.TypeError +<CoerceNumber 2> -= [1] ... exceptions.TypeError +<CoerceNumber 2> * [1] = [1, 1] +<CoerceNumber 2> *= [1] => [1, 1] +<CoerceNumber 2> / [1] ... exceptions.TypeError +<CoerceNumber 2> /= [1] ... exceptions.TypeError +<CoerceNumber 2> ** [1] ... exceptions.TypeError +<CoerceNumber 2> **= [1] ... exceptions.TypeError +<CoerceNumber 2> % [1] ... exceptions.TypeError +<CoerceNumber 2> %= [1] ... exceptions.TypeError +<CoerceNumber 2> + (2,) ... exceptions.TypeError +<CoerceNumber 2> += (2,) ... exceptions.TypeError +<CoerceNumber 2> - (2,) ... exceptions.TypeError +<CoerceNumber 2> -= (2,) ... exceptions.TypeError +<CoerceNumber 2> * (2,) = (2, 2) +<CoerceNumber 2> *= (2,) => (2, 2) +<CoerceNumber 2> / (2,) ... exceptions.TypeError +<CoerceNumber 2> /= (2,) ... exceptions.TypeError +<CoerceNumber 2> ** (2,) ... exceptions.TypeError +<CoerceNumber 2> **= (2,) ... exceptions.TypeError +<CoerceNumber 2> % (2,) ... exceptions.TypeError +<CoerceNumber 2> %= (2,) ... exceptions.TypeError +<CoerceNumber 2> + None ... exceptions.TypeError +<CoerceNumber 2> += None ... exceptions.TypeError +<CoerceNumber 2> - None ... exceptions.TypeError +<CoerceNumber 2> -= None ... exceptions.TypeError +<CoerceNumber 2> * None ... exceptions.TypeError +<CoerceNumber 2> *= None ... exceptions.TypeError +<CoerceNumber 2> / None ... exceptions.TypeError +<CoerceNumber 2> /= None ... exceptions.TypeError +<CoerceNumber 2> ** None ... exceptions.TypeError +<CoerceNumber 2> **= None ... exceptions.TypeError +<CoerceNumber 2> % None ... exceptions.TypeError +<CoerceNumber 2> %= None ... exceptions.TypeError +<CoerceNumber 2> + <MethodNumber 1> = 3 +<CoerceNumber 2> += <MethodNumber 1> => 3 +<CoerceNumber 2> - <MethodNumber 1> = 1 +<CoerceNumber 2> -= <MethodNumber 1> => 1 +<CoerceNumber 2> * <MethodNumber 1> = 2 +<CoerceNumber 2> *= <MethodNumber 1> => 2 +<CoerceNumber 2> / <MethodNumber 1> = 2 +<CoerceNumber 2> /= <MethodNumber 1> => 2 +<CoerceNumber 2> ** <MethodNumber 1> = 2 +<CoerceNumber 2> **= <MethodNumber 1> => 2 +<CoerceNumber 2> % <MethodNumber 1> = 0 +<CoerceNumber 2> %= <MethodNumber 1> => 0 +<CoerceNumber 2> + <CoerceNumber 2> = 4 +<CoerceNumber 2> += <CoerceNumber 2> => 4 +<CoerceNumber 2> - <CoerceNumber 2> = 0 +<CoerceNumber 2> -= <CoerceNumber 2> => 0 +<CoerceNumber 2> * <CoerceNumber 2> = 4 +<CoerceNumber 2> *= <CoerceNumber 2> => 4 +<CoerceNumber 2> / <CoerceNumber 2> = 1 +<CoerceNumber 2> /= <CoerceNumber 2> => 1 +<CoerceNumber 2> ** <CoerceNumber 2> = 4 +<CoerceNumber 2> **= <CoerceNumber 2> => 4 +<CoerceNumber 2> % <CoerceNumber 2> = 0 +<CoerceNumber 2> %= <CoerceNumber 2> => 0 divmod(2, 2) = (1, 0) -divmod(2, 2.2) = (0.0, 2.0) +divmod(2, 4.0) = (0.0, 2.0) divmod(2, 2) = (1L, 0L) -divmod(2, (2+4j)) = (0j, (2+0j)) +divmod(2, (2+0j)) = ((1+0j), 0j) divmod(2, [1]) ... exceptions.TypeError divmod(2, (2,)) ... exceptions.TypeError divmod(2, None) ... exceptions.TypeError divmod(2, <MethodNumber 1>) ... exceptions.TypeError -divmod(2, <CoerceNumber 8>) = (0, 2) -divmod(2.2, 2) = (1.0, 0.20000000000000018) -divmod(2.2, 2.2) = (1.0, 0.0) -divmod(2.2, 2) = (1.0, 0.20000000000000018) -divmod(2.2, (2+4j)) = (0j, (2.2+0j)) -divmod(2.2, [1]) ... exceptions.TypeError -divmod(2.2, (2,)) ... exceptions.TypeError -divmod(2.2, None) ... exceptions.TypeError -divmod(2.2, <MethodNumber 1>) ... exceptions.TypeError -divmod(2.2, <CoerceNumber 8>) = (0.0, 2.2000000000000002) +divmod(2, <CoerceNumber 2>) = (1, 0) +divmod(4.0, 2) = (2.0, 0.0) +divmod(4.0, 4.0) = (1.0, 0.0) +divmod(4.0, 2) = (2.0, 0.0) +divmod(4.0, (2+0j)) = ((2+0j), 0j) +divmod(4.0, [1]) ... exceptions.TypeError +divmod(4.0, (2,)) ... exceptions.TypeError +divmod(4.0, None) ... exceptions.TypeError +divmod(4.0, <MethodNumber 1>) ... exceptions.TypeError +divmod(4.0, <CoerceNumber 2>) = (2.0, 0.0) divmod(2, 2) = (1L, 0L) -divmod(2, 2.2) = (0.0, 2.0) +divmod(2, 4.0) = (0.0, 2.0) divmod(2, 2) = (1L, 0L) -divmod(2, (2+4j)) = (0j, (2+0j)) +divmod(2, (2+0j)) = ((1+0j), 0j) divmod(2, [1]) ... exceptions.TypeError divmod(2, (2,)) ... exceptions.TypeError divmod(2, None) ... exceptions.TypeError divmod(2, <MethodNumber 1>) ... exceptions.TypeError -divmod(2, <CoerceNumber 8>) = (0L, 2L) -divmod((2+4j), 2) = ((1+0j), 4j) -divmod((2+4j), 2.2) = (0j, (2+4j)) -divmod((2+4j), 2) = ((1+0j), 4j) -divmod((2+4j), (2+4j)) = ((1+0j), 0j) -divmod((2+4j), [1]) ... exceptions.TypeError -divmod((2+4j), (2,)) ... exceptions.TypeError -divmod((2+4j), None) ... exceptions.TypeError -divmod((2+4j), <MethodNumber 1>) ... exceptions.TypeError -divmod((2+4j), <CoerceNumber 8>) = (0j, (2+4j)) +divmod(2, <CoerceNumber 2>) = (1L, 0L) +divmod((2+0j), 2) = ((1+0j), 0j) +divmod((2+0j), 4.0) = (0j, (2+0j)) +divmod((2+0j), 2) = ((1+0j), 0j) +divmod((2+0j), (2+0j)) = ((1+0j), 0j) +divmod((2+0j), [1]) ... exceptions.TypeError +divmod((2+0j), (2,)) ... exceptions.TypeError +divmod((2+0j), None) ... exceptions.TypeError +divmod((2+0j), <MethodNumber 1>) ... exceptions.TypeError +divmod((2+0j), <CoerceNumber 2>) = ((1+0j), 0j) divmod([1], 2) ... exceptions.TypeError -divmod([1], 2.2) ... exceptions.TypeError +divmod([1], 4.0) ... exceptions.TypeError divmod([1], 2) ... exceptions.TypeError -divmod([1], (2+4j)) ... exceptions.TypeError +divmod([1], (2+0j)) ... exceptions.TypeError divmod([1], [1]) ... exceptions.TypeError divmod([1], (2,)) ... exceptions.TypeError divmod([1], None) ... exceptions.TypeError divmod([1], <MethodNumber 1>) ... exceptions.TypeError -divmod([1], <CoerceNumber 8>) ... exceptions.TypeError +divmod([1], <CoerceNumber 2>) ... exceptions.TypeError divmod((2,), 2) ... exceptions.TypeError -divmod((2,), 2.2) ... exceptions.TypeError +divmod((2,), 4.0) ... exceptions.TypeError divmod((2,), 2) ... exceptions.TypeError -divmod((2,), (2+4j)) ... exceptions.TypeError +divmod((2,), (2+0j)) ... exceptions.TypeError divmod((2,), [1]) ... exceptions.TypeError divmod((2,), (2,)) ... exceptions.TypeError divmod((2,), None) ... exceptions.TypeError divmod((2,), <MethodNumber 1>) ... exceptions.TypeError -divmod((2,), <CoerceNumber 8>) ... exceptions.TypeError +divmod((2,), <CoerceNumber 2>) ... exceptions.TypeError divmod(None, 2) ... exceptions.TypeError -divmod(None, 2.2) ... exceptions.TypeError +divmod(None, 4.0) ... exceptions.TypeError divmod(None, 2) ... exceptions.TypeError -divmod(None, (2+4j)) ... exceptions.TypeError +divmod(None, (2+0j)) ... exceptions.TypeError divmod(None, [1]) ... exceptions.TypeError divmod(None, (2,)) ... exceptions.TypeError divmod(None, None) ... exceptions.TypeError divmod(None, <MethodNumber 1>) ... exceptions.TypeError -divmod(None, <CoerceNumber 8>) ... exceptions.TypeError +divmod(None, <CoerceNumber 2>) ... exceptions.TypeError divmod(<MethodNumber 1>, 2) ... exceptions.TypeError -divmod(<MethodNumber 1>, 2.2) ... exceptions.TypeError +divmod(<MethodNumber 1>, 4.0) ... exceptions.TypeError divmod(<MethodNumber 1>, 2) ... exceptions.TypeError -divmod(<MethodNumber 1>, (2+4j)) ... exceptions.TypeError +divmod(<MethodNumber 1>, (2+0j)) ... exceptions.TypeError divmod(<MethodNumber 1>, [1]) ... exceptions.TypeError divmod(<MethodNumber 1>, (2,)) ... exceptions.TypeError divmod(<MethodNumber 1>, None) ... exceptions.TypeError divmod(<MethodNumber 1>, <MethodNumber 1>) ... exceptions.TypeError -divmod(<MethodNumber 1>, <CoerceNumber 8>) ... exceptions.TypeError -divmod(<CoerceNumber 8>, 2) = (4, 0) -divmod(<CoerceNumber 8>, 2.2) = (3.0, 1.3999999999999995) -divmod(<CoerceNumber 8>, 2) = (4L, 0L) -divmod(<CoerceNumber 8>, (2+4j)) = (0j, (8+0j)) -divmod(<CoerceNumber 8>, [1]) ... exceptions.TypeError -divmod(<CoerceNumber 8>, (2,)) ... exceptions.TypeError -divmod(<CoerceNumber 8>, None) ... exceptions.TypeError -divmod(<CoerceNumber 8>, <MethodNumber 1>) ... exceptions.TypeError -divmod(<CoerceNumber 8>, <CoerceNumber 8>) = (1, 0) +divmod(<MethodNumber 1>, <CoerceNumber 2>) ... exceptions.TypeError +divmod(<CoerceNumber 2>, 2) = (1, 0) +divmod(<CoerceNumber 2>, 4.0) = (0.0, 2.0) +divmod(<CoerceNumber 2>, 2) = (1L, 0L) +divmod(<CoerceNumber 2>, (2+0j)) = ((1+0j), 0j) +divmod(<CoerceNumber 2>, [1]) ... exceptions.TypeError +divmod(<CoerceNumber 2>, (2,)) ... exceptions.TypeError +divmod(<CoerceNumber 2>, None) ... exceptions.TypeError +divmod(<CoerceNumber 2>, <MethodNumber 1>) ... exceptions.TypeError +divmod(<CoerceNumber 2>, <CoerceNumber 2>) = (1, 0) diff --git a/Lib/test/test_coercion.py b/Lib/test/test_coercion.py index 03d6b9b..d39e6fd 100644 --- a/Lib/test/test_coercion.py +++ b/Lib/test/test_coercion.py @@ -65,8 +65,8 @@ class MethodNumber: return cmp(self.arg, other) -candidates = [ 2, 2.2, 2L, 2+4j, [1], (2,), None, - MethodNumber(1), CoerceNumber(8)] +candidates = [ 2, 4.0, 2L, 2+0j, [1], (2,), None, + MethodNumber(1), CoerceNumber(2)] infix_binops = [ '+', '-', '*', '/', '**', '%' ] prefix_binops = [ 'divmod' ] |