/Lib/test/test_abstract_numbers.py

http://unladen-swallow.googlecode.com/ · Python · 54 lines · 40 code · 12 blank · 2 comment · 1 complexity · 3ac0139e29b29e0dbbfc2c32d8fb2f6f MD5 · raw file

  1. """Unit tests for numbers.py."""
  2. import math
  3. import operator
  4. import unittest
  5. from numbers import Complex, Real, Rational, Integral
  6. from numbers import Number
  7. from test import test_support
  8. class TestNumbers(unittest.TestCase):
  9. def test_int(self):
  10. self.failUnless(issubclass(int, Integral))
  11. self.failUnless(issubclass(int, Complex))
  12. self.assertEqual(7, int(7).real)
  13. self.assertEqual(0, int(7).imag)
  14. self.assertEqual(7, int(7).conjugate())
  15. self.assertEqual(7, int(7).numerator)
  16. self.assertEqual(1, int(7).denominator)
  17. def test_long(self):
  18. self.failUnless(issubclass(long, Integral))
  19. self.failUnless(issubclass(long, Complex))
  20. self.assertEqual(7, long(7).real)
  21. self.assertEqual(0, long(7).imag)
  22. self.assertEqual(7, long(7).conjugate())
  23. self.assertEqual(7, long(7).numerator)
  24. self.assertEqual(1, long(7).denominator)
  25. def test_float(self):
  26. self.failIf(issubclass(float, Rational))
  27. self.failUnless(issubclass(float, Real))
  28. self.assertEqual(7.3, float(7.3).real)
  29. self.assertEqual(0, float(7.3).imag)
  30. self.assertEqual(7.3, float(7.3).conjugate())
  31. def test_complex(self):
  32. self.failIf(issubclass(complex, Real))
  33. self.failUnless(issubclass(complex, Complex))
  34. c1, c2 = complex(3, 2), complex(4,1)
  35. # XXX: This is not ideal, but see the comment in math_trunc().
  36. self.assertRaises(AttributeError, math.trunc, c1)
  37. self.assertRaises(TypeError, float, c1)
  38. self.assertRaises(TypeError, int, c1)
  39. def test_main():
  40. test_support.run_unittest(TestNumbers)
  41. if __name__ == "__main__":
  42. unittest.main()