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