diff options
author | Pauli Virtanen <pav@iki.fi> | 2009-12-06 12:21:01 +0000 |
---|---|---|
committer | Pauli Virtanen <pav@iki.fi> | 2009-12-06 12:21:01 +0000 |
commit | 5f8e25452e8aff0f74b3cbf8aca4e87c8c41cc23 (patch) | |
tree | 5d539a66a7974d35509326a9c1e562dad2347b86 | |
parent | 6850a5c0be627ba002bc703a449c39064ce91433 (diff) | |
download | numpy-5f8e25452e8aff0f74b3cbf8aca4e87c8c41cc23.tar.gz |
ENH: core: add tests for Unicode (or Bytes on Py3) in field names and titles
-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): |