1from numpy.testing import assert_ 2 3import numbers 4 5import numpy as np 6from numpy.core.numerictypes import sctypes 7 8class TestABC: 9 def test_abstract(self): 10 assert_(issubclass(np.number, numbers.Number)) 11 12 assert_(issubclass(np.inexact, numbers.Complex)) 13 assert_(issubclass(np.complexfloating, numbers.Complex)) 14 assert_(issubclass(np.floating, numbers.Real)) 15 16 assert_(issubclass(np.integer, numbers.Integral)) 17 assert_(issubclass(np.signedinteger, numbers.Integral)) 18 assert_(issubclass(np.unsignedinteger, numbers.Integral)) 19 20 def test_floats(self): 21 for t in sctypes['float']: 22 assert_(isinstance(t(), numbers.Real), 23 "{0} is not instance of Real".format(t.__name__)) 24 assert_(issubclass(t, numbers.Real), 25 "{0} is not subclass of Real".format(t.__name__)) 26 assert_(not isinstance(t(), numbers.Rational), 27 "{0} is instance of Rational".format(t.__name__)) 28 assert_(not issubclass(t, numbers.Rational), 29 "{0} is subclass of Rational".format(t.__name__)) 30 31 def test_complex(self): 32 for t in sctypes['complex']: 33 assert_(isinstance(t(), numbers.Complex), 34 "{0} is not instance of Complex".format(t.__name__)) 35 assert_(issubclass(t, numbers.Complex), 36 "{0} is not subclass of Complex".format(t.__name__)) 37 assert_(not isinstance(t(), numbers.Real), 38 "{0} is instance of Real".format(t.__name__)) 39 assert_(not issubclass(t, numbers.Real), 40 "{0} is subclass of Real".format(t.__name__)) 41 42 def test_int(self): 43 for t in sctypes['int']: 44 assert_(isinstance(t(), numbers.Integral), 45 "{0} is not instance of Integral".format(t.__name__)) 46 assert_(issubclass(t, numbers.Integral), 47 "{0} is not subclass of Integral".format(t.__name__)) 48 49 def test_uint(self): 50 for t in sctypes['uint']: 51 assert_(isinstance(t(), numbers.Integral), 52 "{0} is not instance of Integral".format(t.__name__)) 53 assert_(issubclass(t, numbers.Integral), 54 "{0} is not subclass of Integral".format(t.__name__)) 55