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

Method test_py_immutability_operations

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

Source from the content-addressed store, hash-verified

4855 self.assertEqual(res, 1 << 117)
4856
4857 def test_py_immutability_operations(self):
4858 # Do operations and check that it didn't change internal objects.
4859 Decimal = P.Decimal
4860 DefaultContext = P.DefaultContext
4861 setcontext = P.setcontext
4862
4863 c = DefaultContext.copy()
4864 c.traps = dict((s, 0) for s in OrderedSignals[P])
4865 setcontext(c)
4866
4867 d1 = Decimal('-25e55')
4868 b1 = Decimal('-25e55')
4869 d2 = Decimal('33e+33')
4870 b2 = Decimal('33e+33')
4871
4872 def checkSameDec(operation, useOther=False):
4873 if useOther:
4874 eval("d1." + operation + "(d2)")
4875 self.assertEqual(d1._sign, b1._sign)
4876 self.assertEqual(d1._int, b1._int)
4877 self.assertEqual(d1._exp, b1._exp)
4878 self.assertEqual(d2._sign, b2._sign)
4879 self.assertEqual(d2._int, b2._int)
4880 self.assertEqual(d2._exp, b2._exp)
4881 else:
4882 eval("d1." + operation + "()")
4883 self.assertEqual(d1._sign, b1._sign)
4884 self.assertEqual(d1._int, b1._int)
4885 self.assertEqual(d1._exp, b1._exp)
4886
4887 Decimal(d1)
4888 self.assertEqual(d1._sign, b1._sign)
4889 self.assertEqual(d1._int, b1._int)
4890 self.assertEqual(d1._exp, b1._exp)
4891
4892 checkSameDec("__abs__")
4893 checkSameDec("__add__", True)
4894 checkSameDec("__divmod__", True)
4895 checkSameDec("__eq__", True)
4896 checkSameDec("__ne__", True)
4897 checkSameDec("__le__", True)
4898 checkSameDec("__lt__", True)
4899 checkSameDec("__ge__", True)
4900 checkSameDec("__gt__", True)
4901 checkSameDec("__float__")
4902 checkSameDec("__floordiv__", True)
4903 checkSameDec("__hash__")
4904 checkSameDec("__int__")
4905 checkSameDec("__trunc__")
4906 checkSameDec("__mod__", True)
4907 checkSameDec("__mul__", True)
4908 checkSameDec("__neg__")
4909 checkSameDec("__bool__")
4910 checkSameDec("__pos__")
4911 checkSameDec("__pow__", True)
4912 checkSameDec("__radd__", True)
4913 checkSameDec("__rdivmod__", True)
4914 checkSameDec("__repr__")

Callers

nothing calls this directly

Calls 4

setcontextFunction · 0.85
DecimalClass · 0.85
copyMethod · 0.45
assertEqualMethod · 0.45

Tested by

no test coverage detected