extended test case for unicode characters in switch statement
authorStefan Behnel <scoder@users.berlios.de>
Wed, 21 Apr 2010 12:01:11 +0000 (14:01 +0200)
committerStefan Behnel <scoder@users.berlios.de>
Wed, 21 Apr 2010 12:01:11 +0000 (14:01 +0200)
tests/run/inop.pyx
tests/run/notinop.pyx

index 97cd7009c325f9b07210ecb7d027550723770be5..846ee905dc2af48b0463e28e36650543d3fa7fdb 100644 (file)
@@ -136,6 +136,8 @@ def m_unicode(Py_UNICODE a, unicode unicode_string):
     1
     >>> m_unicode(ord('X'), py_unicode_string)
     0
+    >>> m_unicode(ord(py_klingon_character), py_unicode_string)
+    1
     >>> 'f' in None
     Traceback (most recent call last):
     TypeError: argument of type 'NoneType' is not iterable
@@ -146,6 +148,9 @@ def m_unicode(Py_UNICODE a, unicode unicode_string):
     cdef int result = a in unicode_string
     return result
 
+cdef unicode klingon_character = u'\uF8D2'
+py_klingon_character = klingon_character
+
 @cython.test_assert_path_exists("//SwitchStatNode")
 @cython.test_fail_if_path_exists("//BoolBinopNode", "//PrimaryCmpNode")
 def m_unicode_literal(Py_UNICODE a):
@@ -154,6 +159,8 @@ def m_unicode_literal(Py_UNICODE a):
     1
     >>> m_unicode_literal(ord('X'))
     0
+    >>> m_unicode_literal(ord(py_klingon_character))
+    1
     """
     cdef int result = a in u'abcdefg\u1234\uF8D2'
     return result
index bb3a343e98caf2528aeb29a580f3260b97ac4dc9..2ec632fb216b8f97fe5b1169d2d6c46238f880d1 100644 (file)
@@ -121,15 +121,27 @@ def m_bytes_literal(char a):
     return result
 
 cdef unicode unicode_string = u'abcdefg\u1234\uF8D2'
+py_unicode_string = unicode_string
+
+cdef unicode klingon_character = u'\uF8D2'
+py_klingon_character = klingon_character
 
 @cython.test_assert_path_exists("//PrimaryCmpNode")
 @cython.test_fail_if_path_exists("//SwitchStatNode", "//BoolBinopNode")
-def m_unicode(Py_UNICODE a):
+def m_unicode(Py_UNICODE a, unicode unicode_string):
     """
-    >>> m_unicode(ord('f'))
+    >>> m_unicode(ord('f'), py_unicode_string)
     0
-    >>> m_unicode(ord('X'))
+    >>> m_unicode(ord('X'), py_unicode_string)
     1
+    >>> m_unicode(ord(py_klingon_character), py_unicode_string)
+    0
+    >>> 'f' in None
+    Traceback (most recent call last):
+    TypeError: argument of type 'NoneType' is not iterable
+    >>> m_unicode(ord('f'), None)
+    Traceback (most recent call last):
+    TypeError: argument of type 'NoneType' is not iterable
     """
     cdef int result = a not in unicode_string
     return result
@@ -142,6 +154,8 @@ def m_unicode_literal(Py_UNICODE a):
     0
     >>> m_unicode_literal(ord('X'))
     1
+    >>> m_unicode_literal(ord(py_klingon_character))
+    0
     """
     cdef int result = a not in u'abcdefg\u1234\uF8D2'
     return result