MCPcopy Index your code
hub / github.com/python/cpython / testMixedPower

Method testMixedPower

Lib/test/test_fractions.py:948–997  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

946 self.assertRaises(TypeError, operator.mod, Symbolic('X'), F(2, 3))
947
948 def testMixedPower(self):
949 # ** has more interesting conversion rules.
950 self.assertTypedEquals(F(100, 1), F(1, 10) ** -2)
951 self.assertTypedEquals(F(100, 1), F(10, 1) ** 2)
952 self.assertTypedEquals(0.1, F(1, 10) ** 1.0)
953 self.assertTypedEquals(0.1 + 0j, F(1, 10) ** (1.0 + 0j))
954 self.assertTypedEquals(4 , 2 ** F(2, 1))
955 z = pow(-1, F(1, 2))
956 self.assertAlmostEqual(0, z.real)
957 self.assertEqual(1, z.imag)
958 self.assertTypedEquals(F(1, 4) , 2 ** F(-2, 1))
959 self.assertTypedEquals(2.0 , 4 ** F(1, 2))
960 self.assertTypedEquals(0.25, 2.0 ** F(-2, 1))
961 self.assertTypedEquals(1.0 + 0j, (1.0 + 0j) ** F(1, 10))
962 self.assertRaises(ZeroDivisionError, operator.pow,
963 F(0, 1), -2)
964
965 self.assertTypedEquals(F(3, 2) ** Rat(3, 1), F(27, 8))
966 self.assertTypedEquals(F(3, 2) ** Rat(-3, 1), F(8, 27))
967 self.assertTypedEquals(F(-3, 2) ** Rat(-3, 1), F(-8, 27))
968 self.assertTypedEquals(F(9, 4) ** Rat(3, 2), 3.375)
969 self.assertIsInstance(F(4, 9) ** Rat(-3, 2), float)
970 self.assertAlmostEqual(F(4, 9) ** Rat(-3, 2), 3.375)
971 self.assertAlmostEqual(F(-4, 9) ** Rat(-3, 2), 3.375j)
972 self.assertTypedEquals(Rat(9, 4) ** F(3, 2), 3.375)
973 self.assertTypedEquals(Rat(3, 2) ** F(3, 1), Rat(27, 8))
974 self.assertTypedEquals(Rat(3, 2) ** F(-3, 1), F(8, 27))
975 self.assertIsInstance(Rat(4, 9) ** F(-3, 2), float)
976 self.assertAlmostEqual(Rat(4, 9) ** F(-3, 2), 3.375)
977
978 self.assertTypedEquals(Root(4) ** F(2, 3), Root(4, 3.0))
979 self.assertTypedEquals(Root(4) ** F(2, 1), Root(4, F(1)))
980 self.assertTypedEquals(Root(4) ** F(-2, 1), Root(4, -F(1)))
981 self.assertTypedEquals(Root(4) ** F(-2, 3), Root(4, -3.0))
982 self.assertEqual(F(3, 2) ** SymbolicReal('X'), SymbolicReal('3/2 ** X'))
983 self.assertEqual(SymbolicReal('X') ** F(3, 2), SymbolicReal('X ** 1.5'))
984
985 self.assertTypedEquals(F(3, 2) ** Rect(2, 0), Polar(F(9,4), 0.0))
986 self.assertTypedEquals(F(1, 1) ** Rect(2, 3), Polar(F(1), 0.0))
987 self.assertTypedEquals(F(3, 2) ** RectComplex(2, 0), Polar(2.25, 0.0))
988 self.assertTypedEquals(F(1, 1) ** RectComplex(2, 3), Polar(1.0, 0.0))
989 self.assertTypedEquals(Polar(4, 2) ** F(3, 2), Polar(8.0, 3.0))
990 self.assertTypedEquals(Polar(4, 2) ** F(3, 1), Polar(64, 6))
991 self.assertTypedEquals(Polar(4, 2) ** F(-3, 1), Polar(0.015625, -6))
992 self.assertTypedEquals(Polar(4, 2) ** F(-3, 2), Polar(0.125, -3.0))
993 self.assertEqual(F(3, 2) ** SymbolicComplex('X'), SymbolicComplex('3/2 ** X'))
994 self.assertEqual(SymbolicComplex('X') ** F(3, 2), SymbolicComplex('X ** 1.5'))
995
996 self.assertEqual(F(3, 2) ** Symbolic('X'), Symbolic('3/2 ** X'))
997 self.assertEqual(Symbolic('X') ** F(3, 2), Symbolic('X ** 1.5'))
998
999 def testMixingWithDecimal(self):
1000 # Decimal refuses mixed arithmetic (but not mixed comparisons)

Callers

nothing calls this directly

Calls 15

assertTypedEqualsMethod · 0.95
powFunction · 0.85
SymbolicRealClass · 0.85
PolarClass · 0.85
RectComplexClass · 0.85
SymbolicComplexClass · 0.85
SymbolicClass · 0.85
assertIsInstanceMethod · 0.80
FClass · 0.70
RatClass · 0.70
RootClass · 0.70
RectClass · 0.70

Tested by

no test coverage detected