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

Method test_implicit_context

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

Source from the content-addressed store, hash-verified

4538 self.assertEqual(s, t)
4539
4540 def test_implicit_context(self):
4541 Decimal = self.decimal.Decimal
4542 localcontext = self.decimal.localcontext
4543
4544 with localcontext() as c:
4545 c.prec = 1
4546 c.Emax = 1
4547 c.Emin = -1
4548
4549 # abs
4550 self.assertEqual(abs(Decimal("-10")), 10)
4551 # add
4552 self.assertEqual(Decimal("7") + 1, 8)
4553 # divide
4554 self.assertEqual(Decimal("10") / 5, 2)
4555 # divide_int
4556 self.assertEqual(Decimal("10") // 7, 1)
4557 # fma
4558 self.assertEqual(Decimal("1.2").fma(Decimal("0.01"), 1), 1)
4559 self.assertIs(Decimal("NaN").fma(7, 1).is_nan(), True)
4560 # three arg power
4561 self.assertEqual(pow(Decimal(10), 2, 7), 2)
4562 self.assertEqual(pow(10, Decimal(2), 7), 2)
4563 if self.decimal == C:
4564 self.assertEqual(pow(10, 2, Decimal(7)), 2)
4565 else:
4566 # XXX: There is no special method to dispatch on the
4567 # third arg of three-arg power.
4568 self.assertRaises(TypeError, pow, 10, 2, Decimal(7))
4569 # exp
4570 self.assertEqual(Decimal("1.01").exp(), 3)
4571 # is_normal
4572 self.assertIs(Decimal("0.01").is_normal(), False)
4573 # is_subnormal
4574 self.assertIs(Decimal("0.01").is_subnormal(), True)
4575 # ln
4576 self.assertEqual(Decimal("20").ln(), 3)
4577 # log10
4578 self.assertEqual(Decimal("20").log10(), 1)
4579 # logb
4580 self.assertEqual(Decimal("580").logb(), 2)
4581 # logical_invert
4582 self.assertEqual(Decimal("10").logical_invert(), 1)
4583 # minus
4584 self.assertEqual(-Decimal("-10"), 10)
4585 # multiply
4586 self.assertEqual(Decimal("2") * 4, 8)
4587 # next_minus
4588 self.assertEqual(Decimal("10").next_minus(), 9)
4589 # next_plus
4590 self.assertEqual(Decimal("10").next_plus(), Decimal('2E+1'))
4591 # normalize
4592 self.assertEqual(Decimal("-10").normalize(), Decimal('-1E+1'))
4593 # number_class
4594 self.assertEqual(Decimal("10").number_class(), '+Normal')
4595 # plus
4596 self.assertEqual(+Decimal("-1"), -1)
4597 # remainder

Callers

nothing calls this directly

Calls 15

localcontextFunction · 0.85
absFunction · 0.85
DecimalClass · 0.85
powFunction · 0.85
assertTrueMethod · 0.80
assertEqualMethod · 0.45
fmaMethod · 0.45
assertIsMethod · 0.45
is_nanMethod · 0.45
assertRaisesMethod · 0.45
expMethod · 0.45
is_normalMethod · 0.45

Tested by

no test coverage detected