|
Packit |
562c7a |
|
|
Packit |
562c7a |
cimport cython
|
|
Packit |
562c7a |
from cython cimport typeof
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
from libc.string cimport const_char, const_uchar
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
@cython.test_assert_path_exists(
|
|
Packit |
562c7a |
"//NameNode[@name = 'st' and @type.is_string = True]",
|
|
Packit |
562c7a |
"//NameNode[@name = 'ust' and @type.is_string = True]",
|
|
Packit |
562c7a |
"//NameNode[@name = 'my_st' and @type.is_string = True]",
|
|
Packit |
562c7a |
"//NameNode[@name = 'my_ust' and @type.is_string = True]",
|
|
Packit |
562c7a |
)
|
|
Packit |
562c7a |
def const_charptrs():
|
|
Packit |
562c7a |
"""
|
|
Packit |
562c7a |
>>> const_charptrs()
|
|
Packit |
562c7a |
"""
|
|
Packit |
562c7a |
cdef object obj
|
|
Packit |
562c7a |
cdef const_char* st = b'XYZ'
|
|
Packit |
562c7a |
cdef const_uchar* ust = <unsigned char*>b'XYZ' # needs cast to unsigned
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
assert typeof(st) == "const_char *", typeof(st)
|
|
Packit |
562c7a |
my_st = st
|
|
Packit |
562c7a |
assert typeof(my_st) == "const_char *", typeof(my_st)
|
|
Packit |
562c7a |
obj = my_st
|
|
Packit |
562c7a |
assert obj == b'XYZ', obj
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
assert typeof(ust) == "const_uchar *", typeof(ust)
|
|
Packit |
562c7a |
my_ust = ust
|
|
Packit |
562c7a |
assert typeof(my_ust) == "const_uchar *", typeof(my_ust)
|
|
Packit |
562c7a |
obj = my_ust
|
|
Packit |
562c7a |
assert obj == b'XYZ', obj
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
ctypedef char mychar
|
|
Packit |
562c7a |
ctypedef unsigned char myuchar
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
def const_char_arrays():
|
|
Packit |
562c7a |
"""
|
|
Packit |
562c7a |
>>> const_char_arrays()
|
|
Packit |
562c7a |
"""
|
|
Packit |
562c7a |
cdef int i
|
|
Packit |
562c7a |
cdef object obj
|
|
Packit |
562c7a |
cdef mychar[4] st
|
|
Packit |
562c7a |
cdef myuchar[4] ust
|
|
Packit |
562c7a |
cdef char ch
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
i = 0
|
|
Packit |
562c7a |
for ch in b'XYZ\0':
|
|
Packit |
562c7a |
st[i] = ch
|
|
Packit |
562c7a |
ust[i] = <unsigned char>ch
|
|
Packit |
562c7a |
i += 1
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
assert typeof(st) == "mychar [4]", typeof(st)
|
|
Packit |
562c7a |
obj = st
|
|
Packit |
562c7a |
assert obj == b'XYZ', obj
|
|
Packit |
562c7a |
|
|
Packit |
562c7a |
assert typeof(ust) == "myuchar [4]", typeof(ust)
|
|
Packit |
562c7a |
obj = ust
|
|
Packit |
562c7a |
assert obj == b'XYZ', obj
|