|
Packit Service |
99d393 |
# coding=utf8
|
|
Packit Service |
99d393 |
# mode: run
|
|
Packit Service |
99d393 |
# tag: constant_folding
|
|
Packit Service |
99d393 |
|
|
Packit Service |
99d393 |
cimport cython
|
|
Packit Service |
99d393 |
|
|
Packit Service |
99d393 |
|
|
Packit Service |
99d393 |
bstring = b'abc\xE9def'
|
|
Packit Service |
99d393 |
ustring = u'abc\xE9def'
|
|
Packit Service |
99d393 |
surrogates_ustring = u'abc\U00010000def'
|
|
Packit Service |
99d393 |
|
|
Packit Service |
99d393 |
|
|
Packit Service |
99d393 |
@cython.test_fail_if_path_exists(
|
|
Packit Service |
99d393 |
"//SliceIndexNode",
|
|
Packit Service |
99d393 |
)
|
|
Packit Service |
99d393 |
def bytes_slicing2():
|
|
Packit Service |
99d393 |
"""
|
|
Packit Service |
99d393 |
>>> a,b,c,d = bytes_slicing2()
|
|
Packit Service |
99d393 |
>>> a == bstring[:]
|
|
Packit Service |
99d393 |
True
|
|
Packit Service |
99d393 |
>>> b == bstring[2:]
|
|
Packit Service |
99d393 |
True
|
|
Packit Service |
99d393 |
>>> c == bstring[:4]
|
|
Packit Service |
99d393 |
True
|
|
Packit Service |
99d393 |
>>> d == bstring[2:4]
|
|
Packit Service |
99d393 |
True
|
|
Packit Service |
99d393 |
"""
|
|
Packit Service |
99d393 |
str0 = b'abc\xE9def'[:]
|
|
Packit Service |
99d393 |
str1 = b'abc\xE9def'[2:]
|
|
Packit Service |
99d393 |
str2 = b'abc\xE9def'[:4]
|
|
Packit Service |
99d393 |
str3 = b'abc\xE9def'[2:4]
|
|
Packit Service |
99d393 |
|
|
Packit Service |
99d393 |
return str0, str1, str2, str3
|
|
Packit Service |
99d393 |
|
|
Packit Service |
99d393 |
|
|
Packit Service |
99d393 |
@cython.test_fail_if_path_exists(
|
|
Packit Service |
99d393 |
"//SliceIndexNode",
|
|
Packit Service |
99d393 |
)
|
|
Packit Service |
99d393 |
def unicode_slicing2():
|
|
Packit Service |
99d393 |
"""
|
|
Packit Service |
99d393 |
>>> a,b,c,d = unicode_slicing2()
|
|
Packit Service |
99d393 |
>>> a == ustring[:]
|
|
Packit Service |
99d393 |
True
|
|
Packit Service |
99d393 |
>>> b == ustring[2:]
|
|
Packit Service |
99d393 |
True
|
|
Packit Service |
99d393 |
>>> c == ustring[:4]
|
|
Packit Service |
99d393 |
True
|
|
Packit Service |
99d393 |
>>> d == ustring[2:4]
|
|
Packit Service |
99d393 |
True
|
|
Packit Service |
99d393 |
"""
|
|
Packit Service |
99d393 |
str0 = u'abc\xE9def'[:]
|
|
Packit Service |
99d393 |
str1 = u'abc\xE9def'[2:]
|
|
Packit Service |
99d393 |
str2 = u'abc\xE9def'[:4]
|
|
Packit Service |
99d393 |
str3 = u'abc\xE9def'[2:4]
|
|
Packit Service |
99d393 |
|
|
Packit Service |
99d393 |
return str0, str1, str2, str3
|
|
Packit Service |
99d393 |
|
|
Packit Service |
99d393 |
|
|
Packit Service |
99d393 |
@cython.test_assert_path_exists(
|
|
Packit Service |
99d393 |
"//SliceIndexNode",
|
|
Packit Service |
99d393 |
)
|
|
Packit Service |
99d393 |
def unicode_slicing_unsafe_surrogates2():
|
|
Packit Service |
99d393 |
"""
|
|
Packit Service |
99d393 |
>>> unicode_slicing_unsafe_surrogates2() == surrogates_ustring[2:]
|
|
Packit Service |
99d393 |
True
|
|
Packit Service |
99d393 |
"""
|
|
Packit Service |
99d393 |
ustring = u'abc\U00010000def'[2:]
|
|
Packit Service |
99d393 |
return ustring
|
|
Packit Service |
99d393 |
|
|
Packit Service |
99d393 |
|
|
Packit Service |
99d393 |
@cython.test_fail_if_path_exists(
|
|
Packit Service |
99d393 |
"//SliceIndexNode",
|
|
Packit Service |
99d393 |
)
|
|
Packit Service |
99d393 |
def unicode_slicing_safe_surrogates2():
|
|
Packit Service |
99d393 |
"""
|
|
Packit Service |
99d393 |
>>> unicode_slicing_safe_surrogates2() == surrogates_ustring[:2]
|
|
Packit Service |
99d393 |
True
|
|
Packit Service |
99d393 |
>>> print(unicode_slicing_safe_surrogates2())
|
|
Packit Service |
99d393 |
ab
|
|
Packit Service |
99d393 |
"""
|
|
Packit Service |
99d393 |
ustring = u'abc\U00010000def'[:2]
|
|
Packit Service |
99d393 |
return ustring
|
|
Packit Service |
99d393 |
|
|
Packit Service |
99d393 |
|
|
Packit Service |
99d393 |
@cython.test_fail_if_path_exists(
|
|
Packit Service |
99d393 |
"//ComprehensionNode",
|
|
Packit Service |
99d393 |
"//ForInStatNode",
|
|
Packit Service |
99d393 |
)
|
|
Packit Service |
99d393 |
@cython.test_assert_path_exists(
|
|
Packit Service |
99d393 |
"//SetNode",
|
|
Packit Service |
99d393 |
)
|
|
Packit Service |
99d393 |
def for_in_empty_setcomp():
|
|
Packit Service |
99d393 |
"""
|
|
Packit Service |
99d393 |
>>> s = for_in_empty_setcomp()
|
|
Packit Service |
99d393 |
>>> isinstance(s, set)
|
|
Packit Service |
99d393 |
True
|
|
Packit Service |
99d393 |
>>> len(s)
|
|
Packit Service |
99d393 |
0
|
|
Packit Service |
99d393 |
"""
|
|
Packit Service |
99d393 |
return {i for i in []}
|
|
Packit Service |
99d393 |
|
|
Packit Service |
99d393 |
|
|
Packit Service |
99d393 |
@cython.test_fail_if_path_exists(
|
|
Packit Service |
99d393 |
"//ReturnStatNode//AddNode",
|
|
Packit Service |
99d393 |
)
|
|
Packit Service |
99d393 |
@cython.test_assert_path_exists(
|
|
Packit Service |
99d393 |
"//ListNode//AddNode",
|
|
Packit Service |
99d393 |
)
|
|
Packit Service |
99d393 |
def add_strings():
|
|
Packit Service |
99d393 |
"""
|
|
Packit Service |
99d393 |
>>> u, b, rest = add_strings()
|
|
Packit Service |
99d393 |
>>> u == 'abcdef' or u
|
|
Packit Service |
99d393 |
True
|
|
Packit Service |
99d393 |
>>> b == b'abcdef' or b
|
|
Packit Service |
99d393 |
True
|
|
Packit Service |
99d393 |
>>> rest
|
|
Packit Service |
99d393 |
1
|
|
Packit Service |
99d393 |
"""
|
|
Packit Service |
99d393 |
a = ["abc" + "def"] # not currently optimised
|
|
Packit Service |
99d393 |
# FIXME: test encodings and unicode escapes
|
|
Packit Service |
99d393 |
return u"abc" + u"def", b"abc" + b"def", a[0] and 1
|