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

Method test_misc_power

Lib/test/test_capi/test_number.py:206–250  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

204 self.assertRaises(MemoryError, inplacemultiply, [1, 2], PY_SSIZE_T_MAX//2 + 1)
205
206 def test_misc_power(self):
207 # PyNumber_Power(), PyNumber_InPlacePower()
208 power = _testcapi.number_power
209 inplacepower = _testcapi.number_inplacepower
210
211 class HasPow(WithDunder):
212 methname = '__pow__'
213
214 # ternary op
215 self.assertEqual(power(4, 11, 5), pow(4, 11, 5))
216 self.assertRaises(TypeError, power, 4, 11, 1.25)
217 self.assertRaises(TypeError, power, 4, 11, HasPow.with_val(NotImplemented))
218 self.assertRaises(TypeError, power, 4, 11, object())
219 self.assertEqual(inplacepower(4, 11, 5), pow(4, 11, 5))
220 self.assertRaises(TypeError, inplacepower, 4, 11, 1.25)
221 self.assertRaises(TypeError, inplacepower, 4, 11, object())
222
223 class X:
224 def __pow__(*args):
225 return args
226
227 x = X()
228 self.assertEqual(power(x, 11), (x, 11))
229 self.assertEqual(inplacepower(x, 11), (x, 11))
230 self.assertEqual(power(x, 11, 5), (x, 11, 5))
231 self.assertEqual(inplacepower(x, 11, 5), (x, 11, 5))
232
233 class X:
234 def __rpow__(*args):
235 return args
236
237 x = X()
238 self.assertEqual(power(4, x), (x, 4))
239 self.assertEqual(inplacepower(4, x), (x, 4))
240 self.assertEqual(power(4, x, 5), (x, 4, 5))
241 self.assertEqual(inplacepower(4, x, 5), (x, 4, 5))
242
243 class X:
244 def __ipow__(*args):
245 return args
246
247 x = X()
248 self.assertEqual(inplacepower(x, 11), (x, 11))
249 # XXX: In-place power doesn't pass the third arg to __ipow__.
250 self.assertEqual(inplacepower(x, 11, 5), (x, 11))
251
252 def test_long(self):
253 # Test PyNumber_Long()

Callers

nothing calls this directly

Calls 5

powFunction · 0.85
with_valMethod · 0.80
XClass · 0.70
assertEqualMethod · 0.45
assertRaisesMethod · 0.45

Tested by

no test coverage detected