Blame tests/run/inop.pyx

Packit Service 99d393
Packit Service 99d393
cimport cython
Packit Service 99d393
Packit Service 99d393
def f(a,b):
Packit Service 99d393
    """
Packit Service 99d393
    >>> f(1,[1,2,3])
Packit Service 99d393
    True
Packit Service 99d393
    >>> f(5,[1,2,3])
Packit Service 99d393
    False
Packit Service 99d393
    >>> f(2,(1,2,3))
Packit Service 99d393
    True
Packit Service 99d393
    """
Packit Service 99d393
    cdef object result = a in b
Packit Service 99d393
    return result
Packit Service 99d393
Packit Service 99d393
def g(a,b):
Packit Service 99d393
    """
Packit Service 99d393
    >>> g(1,[1,2,3])
Packit Service 99d393
    1
Packit Service 99d393
    >>> g(5,[1,2,3])
Packit Service 99d393
    0
Packit Service 99d393
    >>> g(2,(1,2,3))
Packit Service 99d393
    1
Packit Service 99d393
    """
Packit Service 99d393
    cdef int result = a in b
Packit Service 99d393
    return result
Packit Service 99d393
Packit Service 99d393
def h(b):
Packit Service 99d393
    """
Packit Service 99d393
    >>> h([1,2,3,4])
Packit Service 99d393
    True
Packit Service 99d393
    >>> h([1,3,4])
Packit Service 99d393
    False
Packit Service 99d393
    """
Packit Service 99d393
    cdef object result = 2 in b
Packit Service 99d393
    return result
Packit Service 99d393
Packit Service 99d393
def j(b):
Packit Service 99d393
    """
Packit Service 99d393
    >>> j([1,2,3,4])
Packit Service 99d393
    1
Packit Service 99d393
    >>> j([1,3,4])
Packit Service 99d393
    0
Packit Service 99d393
    """
Packit Service 99d393
    cdef int result = 2 in b
Packit Service 99d393
    return result
Packit Service 99d393
Packit Service 99d393
@cython.test_fail_if_path_exists("//SwitchStatNode")
Packit Service 99d393
def k(a):
Packit Service 99d393
    """
Packit Service 99d393
    >>> k(1)
Packit Service 99d393
    1
Packit Service 99d393
    >>> k(5)
Packit Service 99d393
    0
Packit Service 99d393
    """
Packit Service 99d393
    cdef int result = a in [1,2,3,4]
Packit Service 99d393
    return result
Packit Service 99d393
Packit Service 99d393
@cython.test_assert_path_exists("//SwitchStatNode")
Packit Service 99d393
@cython.test_fail_if_path_exists("//BoolBinopNode", "//PrimaryCmpNode")
Packit Service 99d393
def m_list(int a):
Packit Service 99d393
    """
Packit Service 99d393
    >>> m_list(2)
Packit Service 99d393
    1
Packit Service 99d393
    >>> m_list(5)
Packit Service 99d393
    0
Packit Service 99d393
    """
Packit Service 99d393
    cdef int result = a in [1,2,3,4]
Packit Service 99d393
    return result
Packit Service 99d393
Packit Service 99d393
@cython.test_assert_path_exists("//SwitchStatNode")
Packit Service 99d393
@cython.test_fail_if_path_exists("//BoolBinopNode", "//PrimaryCmpNode")
Packit Service 99d393
def m_tuple(int a):
Packit Service 99d393
    """
Packit Service 99d393
    >>> m_tuple(2)
Packit Service 99d393
    1
Packit Service 99d393
    >>> m_tuple(5)
Packit Service 99d393
    0
Packit Service 99d393
    """
Packit Service 99d393
    cdef int result = a in (1,2,3,4)
Packit Service 99d393
    return result
Packit Service 99d393
Packit Service 99d393
@cython.test_assert_path_exists("//SwitchStatNode")
Packit Service 99d393
@cython.test_fail_if_path_exists("//BoolBinopNode", "//PrimaryCmpNode")
Packit Service 99d393
def m_set(int a):
Packit Service 99d393
    """
Packit Service 99d393
    >>> m_set(2)
Packit Service 99d393
    1
Packit Service 99d393
    >>> m_set(5)
Packit Service 99d393
    0
Packit Service 99d393
    """
Packit Service 99d393
    cdef int result = a in {1,2,3,4}
Packit Service 99d393
    return result
Packit Service 99d393
Packit Service 99d393
cdef bytes bytes_string = b'ab\0cde\0f\0g'
Packit Service 99d393
py_bytes_string = bytes_string
Packit Service 99d393
Packit Service 99d393
@cython.test_assert_path_exists("//PrimaryCmpNode")
Packit Service 99d393
@cython.test_fail_if_path_exists("//SwitchStatNode", "//BoolBinopNode")
Packit Service 99d393
def m_bytes(char a, bytes bytes_string):
Packit Service 99d393
    """
Packit Service 99d393
    >>> m_bytes(ord('f'), py_bytes_string)
Packit Service 99d393
    1
Packit Service 99d393
    >>> m_bytes(ord('X'), py_bytes_string)
Packit Service 99d393
    0
Packit Service 99d393
    >>> 'f'.encode('ASCII') in None    # doctest: +ELLIPSIS
Packit Service 99d393
    Traceback (most recent call last):
Packit Service 99d393
    TypeError: ...iterable...
Packit Service 99d393
    >>> m_bytes(ord('f'), None)
Packit Service 99d393
    Traceback (most recent call last):
Packit Service 99d393
    TypeError: argument of type 'NoneType' is not iterable
Packit Service 99d393
    """
Packit Service 99d393
    cdef int result = a in bytes_string
Packit Service 99d393
    return result
Packit Service 99d393
Packit Service 99d393
@cython.test_assert_path_exists("//PrimaryCmpNode")
Packit Service 99d393
@cython.test_fail_if_path_exists("//SwitchStatNode", "//BoolBinopNode")
Packit Service 99d393
def m_bytes_unsigned(unsigned char a, bytes bytes_string):
Packit Service 99d393
    """
Packit Service 99d393
    >>> m_bytes(ord('f'), py_bytes_string)
Packit Service 99d393
    1
Packit Service 99d393
    >>> m_bytes(ord('X'), py_bytes_string)
Packit Service 99d393
    0
Packit Service 99d393
    >>> 'f'.encode('ASCII') in None    # doctest: +ELLIPSIS
Packit Service 99d393
    Traceback (most recent call last):
Packit Service 99d393
    TypeError: ...iterable...
Packit Service 99d393
    >>> m_bytes(ord('f'), None)
Packit Service 99d393
    Traceback (most recent call last):
Packit Service 99d393
    TypeError: argument of type 'NoneType' is not iterable
Packit Service 99d393
    """
Packit Service 99d393
    cdef int result = a in bytes_string
Packit Service 99d393
    return result
Packit Service 99d393
Packit Service 99d393
@cython.test_assert_path_exists("//SwitchStatNode")
Packit Service 99d393
@cython.test_fail_if_path_exists("//BoolBinopNode", "//PrimaryCmpNode")
Packit Service 99d393
def m_bytes_literal(char a):
Packit Service 99d393
    """
Packit Service 99d393
    >>> m_bytes_literal(ord('f'))
Packit Service 99d393
    1
Packit Service 99d393
    >>> m_bytes_literal(ord('X'))
Packit Service 99d393
    0
Packit Service 99d393
    """
Packit Service 99d393
    cdef int result = a in b'ab\0cde\0f\0g'
Packit Service 99d393
    return result
Packit Service 99d393
Packit Service 99d393
@cython.test_assert_path_exists("//SwitchStatNode")
Packit Service 99d393
@cython.test_fail_if_path_exists("//BoolBinopNode", "//PrimaryCmpNode")
Packit Service 99d393
def m_bytes_literal_unsigned(unsigned char a):
Packit Service 99d393
    """
Packit Service 99d393
    >>> m_bytes_literal(ord('f'))
Packit Service 99d393
    1
Packit Service 99d393
    >>> m_bytes_literal(ord('X'))
Packit Service 99d393
    0
Packit Service 99d393
    """
Packit Service 99d393
    cdef int result = a in b'ab\0cde\0f\0g'
Packit Service 99d393
    return result
Packit Service 99d393
Packit Service 99d393
cdef unicode unicode_string = u'abc\0defg\u1234\uF8D2'
Packit Service 99d393
py_unicode_string = unicode_string
Packit Service 99d393
Packit Service 99d393
@cython.test_assert_path_exists("//PrimaryCmpNode")
Packit Service 99d393
@cython.test_fail_if_path_exists("//SwitchStatNode", "//BoolBinopNode")
Packit Service 99d393
def m_unicode(Py_UNICODE a, unicode unicode_string):
Packit Service 99d393
    """
Packit Service 99d393
    >>> m_unicode(ord('f'), py_unicode_string)
Packit Service 99d393
    1
Packit Service 99d393
    >>> m_unicode(ord('X'), py_unicode_string)
Packit Service 99d393
    0
Packit Service 99d393
    >>> m_unicode(ord(py_klingon_character), py_unicode_string)
Packit Service 99d393
    1
Packit Service 99d393
Packit Service 99d393
    >>> 'f' in None   # doctest: +ELLIPSIS
Packit Service 99d393
    Traceback (most recent call last):
Packit Service 99d393
    TypeError: ...iterable...
Packit Service 99d393
    >>> m_unicode(ord('f'), None)
Packit Service 99d393
    Traceback (most recent call last):
Packit Service 99d393
    TypeError: argument of type 'NoneType' is not iterable
Packit Service 99d393
    """
Packit Service 99d393
    cdef int result = a in unicode_string
Packit Service 99d393
    return result
Packit Service 99d393
Packit Service 99d393
cdef unicode klingon_character = u'\uF8D2'
Packit Service 99d393
py_klingon_character = klingon_character
Packit Service 99d393
Packit Service 99d393
@cython.test_assert_path_exists("//SwitchStatNode")
Packit Service 99d393
@cython.test_fail_if_path_exists("//BoolBinopNode", "//PrimaryCmpNode")
Packit Service 99d393
def m_unicode_literal(Py_UNICODE a):
Packit Service 99d393
    """
Packit Service 99d393
    >>> m_unicode_literal(ord('f'))
Packit Service 99d393
    1
Packit Service 99d393
    >>> m_unicode_literal(ord('X'))
Packit Service 99d393
    0
Packit Service 99d393
    >>> m_unicode_literal(ord(py_klingon_character))
Packit Service 99d393
    1
Packit Service 99d393
    """
Packit Service 99d393
    cdef int result = a in u'abc\0defg\u1234\uF8D2'
Packit Service 99d393
    return result
Packit Service 99d393
Packit Service 99d393
cdef unicode wide_unicode_character = u'\U0010FEDC'
Packit Service 99d393
py_wide_unicode_character = wide_unicode_character
Packit Service 99d393
wide_unicode_character_surrogate1 = 0xDBFF
Packit Service 99d393
wide_unicode_character_surrogate2 = 0xDEDC
Packit Service 99d393
Packit Service 99d393
@cython.test_fail_if_path_exists("//SwitchStatNode")
Packit Service 99d393
@cython.test_assert_path_exists("//PrimaryCmpNode")
Packit Service 99d393
def m_wide_unicode_literal(Py_UCS4 a):
Packit Service 99d393
    """
Packit Service 99d393
    >>> m_unicode_literal(ord('f'))
Packit Service 99d393
    1
Packit Service 99d393
    >>> m_unicode_literal(ord('X'))
Packit Service 99d393
    0
Packit Service 99d393
    >>> import sys
Packit Service 99d393
    >>> if sys.maxunicode == 65535:
Packit Service 99d393
    ...     m_wide_unicode_literal(wide_unicode_character_surrogate1)
Packit Service 99d393
    ...     m_wide_unicode_literal(wide_unicode_character_surrogate2)
Packit Service 99d393
    ... else:
Packit Service 99d393
    ...     m_wide_unicode_literal(ord(py_wide_unicode_character))
Packit Service 99d393
    ...     1
Packit Service 99d393
    1
Packit Service 99d393
    1
Packit Service 99d393
    """
Packit Service 99d393
    cdef int result = a in u'abc\0defg\u1234\uF8D2\U0010FEDC'
Packit Service 99d393
    return result
Packit Service 99d393
Packit Service 99d393
@cython.test_assert_path_exists("//SwitchStatNode")
Packit Service 99d393
@cython.test_fail_if_path_exists("//BoolBinopNode", "//PrimaryCmpNode")
Packit Service 99d393
def conditional_int(int a):
Packit Service 99d393
    """
Packit Service 99d393
    >>> conditional_int(1)
Packit Service 99d393
    1
Packit Service 99d393
    >>> conditional_int(0)
Packit Service 99d393
    2
Packit Service 99d393
    >>> conditional_int(5)
Packit Service 99d393
    2
Packit Service 99d393
    """
Packit Service 99d393
    return 1 if a in (1,2,3,4) else 2
Packit Service 99d393
Packit Service 99d393
@cython.test_assert_path_exists("//SwitchStatNode")
Packit Service 99d393
@cython.test_fail_if_path_exists("//BoolBinopNode", "//PrimaryCmpNode")
Packit Service 99d393
def conditional_object(int a):
Packit Service 99d393
    """
Packit Service 99d393
    >>> conditional_object(1)
Packit Service 99d393
    1
Packit Service 99d393
    >>> conditional_object(0)
Packit Service 99d393
    '2'
Packit Service 99d393
    >>> conditional_object(5)
Packit Service 99d393
    '2'
Packit Service 99d393
    """
Packit Service 99d393
    return 1 if a in (1,2,3,4) else '2'
Packit Service 99d393
Packit Service 99d393
@cython.test_assert_path_exists("//SwitchStatNode")
Packit Service 99d393
@cython.test_fail_if_path_exists("//BoolBinopNode", "//PrimaryCmpNode")
Packit Service 99d393
def conditional_bytes(char a):
Packit Service 99d393
    """
Packit Service 99d393
    >>> conditional_bytes(ord('a'))
Packit Service 99d393
    1
Packit Service 99d393
    >>> conditional_bytes(ord('X'))
Packit Service 99d393
    '2'
Packit Service 99d393
    >>> conditional_bytes(0)
Packit Service 99d393
    '2'
Packit Service 99d393
    """
Packit Service 99d393
    return 1 if a in b'abc' else '2'
Packit Service 99d393
Packit Service 99d393
@cython.test_assert_path_exists("//SwitchStatNode")
Packit Service 99d393
@cython.test_fail_if_path_exists("//BoolBinopNode", "//PrimaryCmpNode")
Packit Service 99d393
def conditional_unicode(Py_UNICODE a):
Packit Service 99d393
    """
Packit Service 99d393
    >>> conditional_unicode(ord('a'))
Packit Service 99d393
    1
Packit Service 99d393
    >>> conditional_unicode(ord('X'))
Packit Service 99d393
    '2'
Packit Service 99d393
    >>> conditional_unicode(0)
Packit Service 99d393
    '2'
Packit Service 99d393
    """
Packit Service 99d393
    return 1 if a in u'abc' else '2'
Packit Service 99d393
Packit Service 99d393
@cython.test_assert_path_exists("//SwitchStatNode")
Packit Service 99d393
@cython.test_fail_if_path_exists("//BoolBinopNode", "//PrimaryCmpNode")
Packit Service 99d393
def conditional_none(int a):
Packit Service 99d393
    """
Packit Service 99d393
    >>> conditional_none(1)
Packit Service 99d393
    >>> conditional_none(0)
Packit Service 99d393
    1
Packit Service 99d393
    >>> conditional_none(5)
Packit Service 99d393
    1
Packit Service 99d393
    """
Packit Service 99d393
    return None if a in {1,2,3,4} else 1
Packit Service 99d393
Packit Service 99d393
@cython.test_assert_path_exists(
Packit Service 99d393
    "//BoolBinopNode",
Packit Service 99d393
    "//BoolBinopNode//PrimaryCmpNode"
Packit Service 99d393
)
Packit Service 99d393
@cython.test_fail_if_path_exists("//ListNode")
Packit Service 99d393
def n(a):
Packit Service 99d393
    """
Packit Service 99d393
    >>> n('d *')
Packit Service 99d393
    1
Packit Service 99d393
    >>> n('xxx')
Packit Service 99d393
    0
Packit Service 99d393
    """
Packit Service 99d393
    cdef int result = a.lower() in [u'a *',u'b *',u'c *',u'd *']
Packit Service 99d393
    return result
Packit Service 99d393
Packit Service 99d393
def p(a):
Packit Service 99d393
    """
Packit Service 99d393
    >>> p(1)
Packit Service 99d393
    0
Packit Service 99d393
    >>> p('a')
Packit Service 99d393
    1
Packit Service 99d393
    """
Packit Service 99d393
    cdef dict d = {u'a': 1, u'b': 2}
Packit Service 99d393
    cdef int result = a in d
Packit Service 99d393
    return result
Packit Service 99d393
Packit Service 99d393
def q(a):
Packit Service 99d393
    """
Packit Service 99d393
    >>> q(1)
Packit Service 99d393
    Traceback (most recent call last):
Packit Service 99d393
    TypeError: 'NoneType' object is not iterable
Packit Service 99d393
        >>> l = [1,2,3,4]
Packit Service 99d393
    >>> l2 = [l[1:],l[:-1],l]
Packit Service 99d393
    >>> 2 in l in l2
Packit Service 99d393
    True
Packit Service 99d393
    """
Packit Service 99d393
    cdef dict d = None
Packit Service 99d393
    cdef int result = a in d # should fail with a TypeError
Packit Service 99d393
    return result
Packit Service 99d393
Packit Service 99d393
def r(a):
Packit Service 99d393
    """
Packit Service 99d393
    >>> r(2)
Packit Service 99d393
    1
Packit Service 99d393
    """
Packit Service 99d393
    cdef object l = [1,2,3,4]
Packit Service 99d393
    cdef object l2 = [l[1:],l[:-1],l]
Packit Service 99d393
    cdef int result = a in l in l2
Packit Service 99d393
    return result
Packit Service 99d393
Packit Service 99d393
def s(a):
Packit Service 99d393
    """
Packit Service 99d393
    >>> s(2)
Packit Service 99d393
    1
Packit Service 99d393
    """
Packit Service 99d393
    cdef int result = a in [1,2,3,4] in [[1,2,3],[2,3,4],[1,2,3,4]]
Packit Service 99d393
    return result
Packit Service 99d393
Packit Service 99d393
#@cython.test_assert_path_exists("//ReturnStatNode//BoolNode")
Packit Service 99d393
#@cython.test_fail_if_path_exists("//SwitchStatNode")
Packit Service 99d393
def constant_empty_sequence(a):
Packit Service 99d393
    """
Packit Service 99d393
    >>> constant_empty_sequence(1)
Packit Service 99d393
    False
Packit Service 99d393
    >>> constant_empty_sequence(5)
Packit Service 99d393
    False
Packit Service 99d393
    """
Packit Service 99d393
    return a in ()
Packit Service 99d393
Packit Service 99d393
@cython.test_fail_if_path_exists("//ReturnStatNode//BoolNode")
Packit Service 99d393
@cython.test_assert_path_exists("//PrimaryCmpNode")
Packit Service 99d393
def constant_empty_sequence_side_effect(a):
Packit Service 99d393
    """
Packit Service 99d393
    >>> l =[]
Packit Service 99d393
    >>> def a():
Packit Service 99d393
    ...     l.append(1)
Packit Service 99d393
    ...     return 1
Packit Service 99d393
Packit Service 99d393
    >>> constant_empty_sequence_side_effect(a)
Packit Service 99d393
    False
Packit Service 99d393
    >>> l
Packit Service 99d393
    [1]
Packit Service 99d393
    """
Packit Service 99d393
    return a() in ()
Packit Service 99d393
Packit Service 99d393
def test_error_non_iterable(x):
Packit Service 99d393
    """
Packit Service 99d393
    >>> test_error_non_iterable(1)   # doctest: +ELLIPSIS
Packit Service 99d393
    Traceback (most recent call last):
Packit Service 99d393
    TypeError: ...iterable...
Packit Service 99d393
    """
Packit Service 99d393
    return x in 42
Packit Service 99d393
Packit Service 99d393
def test_error_non_iterable_cascaded(x):
Packit Service 99d393
    """
Packit Service 99d393
    >>> test_error_non_iterable_cascaded(1)   # doctest: +ELLIPSIS
Packit Service 99d393
    Traceback (most recent call last):
Packit Service 99d393
    TypeError: ...iterable...
Packit Service 99d393
    """
Packit Service 99d393
    return 1 == x in 42
Packit Service 99d393
Packit Service 99d393
def test_inop_cascaded(x):
Packit Service 99d393
    """
Packit Service 99d393
    >>> test_inop_cascaded(1)
Packit Service 99d393
    False
Packit Service 99d393
    >>> test_inop_cascaded(2)
Packit Service 99d393
    True
Packit Service 99d393
    >>> test_inop_cascaded(3)
Packit Service 99d393
    False
Packit Service 99d393
    """
Packit Service 99d393
    return 1 != x in [2]
Packit Service 99d393
Packit Service 99d393
### The following tests are copied from CPython's test_grammar.py.
Packit Service 99d393
### They look stupid, but the nice thing about them is that Cython
Packit Service 99d393
### treats '1' as a C integer constant that triggers Python object
Packit Service 99d393
### coercion for the 'in' operator here, whereas the left side of
Packit Service 99d393
### the cascade can be evaluated entirely in C space.
Packit Service 99d393
Packit Service 99d393
def test_inop_cascaded_one():
Packit Service 99d393
    """
Packit Service 99d393
    >>> test_inop_cascaded_one()
Packit Service 99d393
    False
Packit Service 99d393
    """
Packit Service 99d393
    return 1 < 1 > 1 == 1 >= 1 <= 1 != 1 in 1 not in 1 is 1 is not 1
Packit Service 99d393
Packit Service 99d393
def test_inop_cascaded_int_orig(int x):
Packit Service 99d393
    """
Packit Service 99d393
    >>> test_inop_cascaded_int_orig(1)
Packit Service 99d393
    False
Packit Service 99d393
    """
Packit Service 99d393
    return 1 < 1 > 1 == 1 >= 1 <= 1 != x in 1 not in 1 is 1 is not 1
Packit Service 99d393
Packit Service 99d393
def test_inop_cascaded_one_err():
Packit Service 99d393
    """
Packit Service 99d393
    >>> test_inop_cascaded_one_err()   # doctest: +ELLIPSIS
Packit Service 99d393
    Traceback (most recent call last):
Packit Service 99d393
    TypeError:... itera...
Packit Service 99d393
    """
Packit Service 99d393
    return 1 == 1 >= 1 <= 1 in 1 not in 1 is 1 is not 1
Packit Service 99d393
Packit Service 99d393
def test_inop_cascaded_int_orig_err(int x):
Packit Service 99d393
    """
Packit Service 99d393
    >>> test_inop_cascaded_int_orig_err(1)   # doctest: +ELLIPSIS
Packit Service 99d393
    Traceback (most recent call last):
Packit Service 99d393
    TypeError:... itera...
Packit Service 99d393
    """
Packit Service 99d393
    return 1 == 1 >= 1 <= 1 == x in 1 not in 1 is 1 is not 1
Packit Service 99d393
Packit Service 99d393
###
Packit Service 99d393
Packit Service 99d393
def test_inop_cascaded_int(int x):
Packit Service 99d393
    """
Packit Service 99d393
    >>> test_inop_cascaded_int(1)
Packit Service 99d393
    False
Packit Service 99d393
    >>> test_inop_cascaded_int(2)
Packit Service 99d393
    True
Packit Service 99d393
    >>> test_inop_cascaded_int(3)
Packit Service 99d393
    False
Packit Service 99d393
    """
Packit Service 99d393
    return 1 != x in [1,2]