diff options
-rw-r--r-- | numpy/core/tests/test_multiarray.py | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/numpy/core/tests/test_multiarray.py b/numpy/core/tests/test_multiarray.py index eac0b58e2..5d544f383 100644 --- a/numpy/core/tests/test_multiarray.py +++ b/numpy/core/tests/test_multiarray.py @@ -1042,6 +1042,40 @@ class TestRecord(TestCase): dt.names = ['p','q'] assert_equal(dt.names,['p','q']) + if sys.version_info[0] >= 3: + def test_bytes_fields(self): + # Bytes are not allowed in field names and not recognized in titles + # on Py3 + assert_raises(TypeError, np.dtype, [(asbytes('a'), int)]) + assert_raises(TypeError, np.dtype, [(('b', asbytes('a')), int)]) + + dt = np.dtype([((asbytes('a'), 'b'), int)]) + assert_raises(KeyError, dt.__getitem__, asbytes('a')) + + x = np.array([(1,), (2,), (3,)], dtype=dt) + assert_raises(KeyError, x.__getitem__, asbytes('a')) + + y = x[0] + assert_raises(KeyError, y.__getitem__, asbytes('a')) + else: + def test_unicode_field_titles(self): + # Unicode field titles are added to field dict on Py2 + title = unicode('b') + dt = np.dtype([((title, 'a'), int)]) + dt[title] + dt['a'] + x = np.array([(1,), (2,), (3,)], dtype=dt) + x[title] + x['a'] + y = x[0] + y[title] + y['a'] + + def test_unicode_field_names(self): + # Unicode field names are not allowed on Py2 + title = unicode('b') + assert_raises(TypeError, np.dtype, [(title, int)]) + assert_raises(TypeError, np.dtype, [(('a', title), int)]) class TestView(TestCase): def test_basic(self): |