Skip to content

Commit f0fcd5d

Browse files
committed
Add test_abstract_numbers from CPython 3.8
1 parent 112aef8 commit f0fcd5d

File tree

1 file changed

+44
-0
lines changed

1 file changed

+44
-0
lines changed

Lib/test/test_abstract_numbers.py

+44
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
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 TestNumbers(unittest.TestCase):
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()

0 commit comments

Comments
 (0)