diff options
author | Matti Picus <matti.picus@gmail.com> | 2019-09-12 14:32:31 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-09-12 14:32:31 +0300 |
commit | 2f81858f4f9d7185b4418f905e439ca8380fc3e2 (patch) | |
tree | 85718f741e2f2b4845b98d4a273dde70456c1084 /numpy/core/tests | |
parent | 842079e235dfac64cf99059286e295b307d073fc (diff) | |
parent | fa09f5efb9c067bb4a62ae7ac79d8d6afd39652e (diff) | |
download | numpy-2f81858f4f9d7185b4418f905e439ca8380fc3e2.tar.gz |
Merge pull request #10151 from eric-wieser/integer-type-__name__
BUG: Numpy scalar types sometimes have the same name
Diffstat (limited to 'numpy/core/tests')
-rw-r--r-- | numpy/core/tests/test_dtype.py | 7 | ||||
-rw-r--r-- | numpy/core/tests/test_numerictypes.py | 29 |
2 files changed, 29 insertions, 7 deletions
diff --git a/numpy/core/tests/test_dtype.py b/numpy/core/tests/test_dtype.py index f5ca775ef..d2fbbae5b 100644 --- a/numpy/core/tests/test_dtype.py +++ b/numpy/core/tests/test_dtype.py @@ -963,13 +963,6 @@ class TestDtypeAttributes(object): new_dtype = np.dtype(dtype.descr) assert_equal(new_dtype.itemsize, 16) - @pytest.mark.parametrize('t', np.typeDict.values()) - def test_name_builtin(self, t): - name = t.__name__ - if name.endswith('_'): - name = name[:-1] - assert_equal(np.dtype(t).name, name) - def test_name_dtype_subclass(self): # Ticket #4357 class user_def_subcls(np.void): diff --git a/numpy/core/tests/test_numerictypes.py b/numpy/core/tests/test_numerictypes.py index d0ff5578a..387740e35 100644 --- a/numpy/core/tests/test_numerictypes.py +++ b/numpy/core/tests/test_numerictypes.py @@ -498,3 +498,32 @@ class TestDocStrings(object): assert_('int64' in np.int_.__doc__) elif np.int64 is np.longlong: assert_('int64' in np.longlong.__doc__) + + +class TestScalarTypeNames: + # gh-9799 + + numeric_types = [ + np.byte, np.short, np.intc, np.int_, np.longlong, + np.ubyte, np.ushort, np.uintc, np.uint, np.ulonglong, + np.half, np.single, np.double, np.longdouble, + np.csingle, np.cdouble, np.clongdouble, + ] + + def test_names_are_unique(self): + # none of the above may be aliases for each other + assert len(set(self.numeric_types)) == len(self.numeric_types) + + # names must be unique + names = [t.__name__ for t in self.numeric_types] + assert len(set(names)) == len(names) + + @pytest.mark.parametrize('t', numeric_types) + def test_names_reflect_attributes(self, t): + """ Test that names correspond to where the type is under ``np.`` """ + assert getattr(np, t.__name__) is t + + @pytest.mark.parametrize('t', numeric_types) + def test_names_are_undersood_by_dtype(self, t): + """ Test the dtype constructor maps names back to the type """ + assert np.dtype(t.__name__).type is t |