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

Method test_c_funcs

Lib/test/test_decimal.py:5337–5394  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

5335 self.assertRaises(Inexact, Decimal("999.9").to_integral_exact, ROUND_UP)
5336
5337 def test_c_funcs(self):
5338 # Invalid arguments
5339 Decimal = C.Decimal
5340 InvalidOperation = C.InvalidOperation
5341 DivisionByZero = C.DivisionByZero
5342 getcontext = C.getcontext
5343 localcontext = C.localcontext
5344
5345 self.assertEqual(Decimal('9.99e10').to_eng_string(), '99.9E+9')
5346
5347 self.assertRaises(TypeError, pow, Decimal(1), 2, "3")
5348 self.assertRaises(TypeError, Decimal(9).number_class, "x", "y")
5349 self.assertRaises(TypeError, Decimal(9).same_quantum, 3, "x", "y")
5350
5351 self.assertRaises(
5352 TypeError,
5353 Decimal("1.23456789").quantize, Decimal('1e-100000'), []
5354 )
5355 self.assertRaises(
5356 TypeError,
5357 Decimal("1.23456789").quantize, Decimal('1e-100000'), getcontext()
5358 )
5359 self.assertRaises(
5360 TypeError,
5361 Decimal("1.23456789").quantize, Decimal('1e-100000'), 10
5362 )
5363 self.assertRaises(
5364 TypeError,
5365 Decimal("1.23456789").quantize, Decimal('1e-100000'), ROUND_UP, 1000
5366 )
5367
5368 with localcontext() as c:
5369 c.clear_traps()
5370
5371 # Invalid arguments
5372 self.assertRaises(TypeError, c.copy_sign, Decimal(1), "x", "y")
5373 self.assertRaises(TypeError, c.canonical, 200)
5374 self.assertRaises(TypeError, c.is_canonical, 200)
5375 self.assertRaises(TypeError, c.divmod, 9, 8, "x", "y")
5376 self.assertRaises(TypeError, c.same_quantum, 9, 3, "x", "y")
5377
5378 self.assertEqual(str(c.canonical(Decimal(200))), '200')
5379 self.assertEqual(c.radix(), 10)
5380
5381 c.traps[DivisionByZero] = True
5382 self.assertRaises(DivisionByZero, Decimal(9).__divmod__, 0)
5383 self.assertRaises(DivisionByZero, c.divmod, 9, 0)
5384 self.assertTrue(c.flags[InvalidOperation])
5385
5386 c.clear_flags()
5387 c.traps[InvalidOperation] = True
5388 self.assertRaises(InvalidOperation, Decimal(9).__divmod__, 0)
5389 self.assertRaises(InvalidOperation, c.divmod, 9, 0)
5390 self.assertTrue(c.flags[DivisionByZero])
5391
5392 c.traps[InvalidOperation] = True
5393 c.prec = 2
5394 self.assertRaises(InvalidOperation, pow, Decimal(1000), 1, 501)

Callers

nothing calls this directly

Calls 12

DecimalClass · 0.85
getcontextFunction · 0.85
localcontextFunction · 0.85
strFunction · 0.85
assertTrueMethod · 0.80
clear_flagsMethod · 0.80
assertEqualMethod · 0.45
to_eng_stringMethod · 0.45
assertRaisesMethod · 0.45
clear_trapsMethod · 0.45
canonicalMethod · 0.45
radixMethod · 0.45

Tested by

no test coverage detected