summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPauli Virtanen <pav@iki.fi>2009-12-06 12:21:01 +0000
committerPauli Virtanen <pav@iki.fi>2009-12-06 12:21:01 +0000
commit5f8e25452e8aff0f74b3cbf8aca4e87c8c41cc23 (patch)
tree5d539a66a7974d35509326a9c1e562dad2347b86
parent6850a5c0be627ba002bc703a449c39064ce91433 (diff)
downloadnumpy-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.py34
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):