(root)/
Python-3.11.7/
Lib/
test/
test_abstract_numbers.py
       1  """Unit tests for numbers.py."""
       2  
       3  import math
       4  import operator
       5  import unittest
       6  from numbers import Complex, Real, Rational, Integral
       7  
       8  class ESC[4;38;5;81mTestNumbers(ESC[4;38;5;149munittestESC[4;38;5;149m.ESC[4;38;5;149mTestCase):
       9      def test_int(self):
      10          self.assertTrue(issubclass(int, Integral))
      11          self.assertTrue(issubclass(int, Complex))
      12  
      13          self.assertEqual(7, int(7).real)
      14          self.assertEqual(0, int(7).imag)
      15          self.assertEqual(7, int(7).conjugate())
      16          self.assertEqual(-7, int(-7).conjugate())
      17          self.assertEqual(7, int(7).numerator)
      18          self.assertEqual(1, int(7).denominator)
      19  
      20      def test_float(self):
      21          self.assertFalse(issubclass(float, Rational))
      22          self.assertTrue(issubclass(float, Real))
      23  
      24          self.assertEqual(7.3, float(7.3).real)
      25          self.assertEqual(0, float(7.3).imag)
      26          self.assertEqual(7.3, float(7.3).conjugate())
      27          self.assertEqual(-7.3, float(-7.3).conjugate())
      28  
      29      def test_complex(self):
      30          self.assertFalse(issubclass(complex, Real))
      31          self.assertTrue(issubclass(complex, Complex))
      32  
      33          c1, c2 = complex(3, 2), complex(4,1)
      34          # XXX: This is not ideal, but see the comment in math_trunc().
      35          self.assertRaises(TypeError, math.trunc, c1)
      36          self.assertRaises(TypeError, operator.mod, c1, c2)
      37          self.assertRaises(TypeError, divmod, c1, c2)
      38          self.assertRaises(TypeError, operator.floordiv, c1, c2)
      39          self.assertRaises(TypeError, float, c1)
      40          self.assertRaises(TypeError, int, c1)
      41  
      42  
      43  if __name__ == "__main__":
      44      unittest.main()