extended test case
authorStefan Behnel <scoder@users.berlios.de>
Wed, 28 Apr 2010 11:34:36 +0000 (13:34 +0200)
committerStefan Behnel <scoder@users.berlios.de>
Wed, 28 Apr 2010 11:34:36 +0000 (13:34 +0200)
tests/run/for_in_string.pyx

index 477b56d06962859c30df02ff3932cb1d1bf247cd..d8bc91a9f98795efb99851ef93bb53e505d6308a 100644 (file)
@@ -70,6 +70,36 @@ def for_char_in_enumerate_bytes(bytes s):
     else:
         return 'X'
 
+@cython.test_assert_path_exists("//ForFromStatNode")
+@cython.test_fail_if_path_exists("//ForInStatNode")
+def for_pyvar_in_char_ptr(char* c_string):
+    """
+    >>> for_pyvar_in_char_ptr( (bytes_abc+bytes_ABC) * 2 )
+    [True, True, True, False, False, False, True, True, True, False]
+    >>> for_pyvar_in_char_ptr( bytes_abc_null * 2 )
+    [True, False, True, False, True, True, False, True, False, True]
+    """
+    in_test = []
+    cdef object c
+    for c in c_string[:10]:
+        in_test.append( c in b'abc' )
+    return in_test
+
+@cython.test_assert_path_exists("//ForFromStatNode")
+@cython.test_fail_if_path_exists("//ForInStatNode")
+def for_char_in_char_ptr(char* c_string):
+    """
+    >>> for_char_in_char_ptr( (bytes_abc+bytes_ABC) * 2 )
+    [True, True, True, False, False, False, True, True, True, False]
+    >>> for_char_in_char_ptr( bytes_abc_null * 2 )
+    [True, False, True, False, True, True, False, True, False, True]
+    """
+    in_test = []
+    cdef char c
+    for c in c_string[:10]:
+        in_test.append( c in b'abc' )
+    return in_test
+
 @cython.test_assert_path_exists("//ForFromStatNode")
 @cython.test_fail_if_path_exists("//ForInStatNode")
 def for_pyunicode_in_unicode(unicode s):