Blame tests/run/size_t.pyx

Packit 562c7a
__doc__ = u"""
Packit 562c7a
>>> test(0)
Packit 562c7a
0
Packit 562c7a
>>> test(1)
Packit 562c7a
1
Packit 562c7a
>>> test(2)
Packit 562c7a
2
Packit 562c7a
>>> str(test((1<<32)-1))
Packit 562c7a
'4294967295'
Packit 562c7a
Packit 562c7a
>>> try: test(-1)
Packit 562c7a
... except (OverflowError, TypeError): print("ERROR")
Packit 562c7a
ERROR
Packit 562c7a
Packit 562c7a
>>> test(1<<128) #doctest: +ELLIPSIS
Packit 562c7a
Traceback (most recent call last):
Packit 562c7a
    ...
Packit 562c7a
OverflowError: ...
Packit 562c7a
Packit 562c7a
>>> a = A(1,2)
Packit 562c7a
>>> a.a == 1
Packit 562c7a
True
Packit 562c7a
>>> a.b == 2
Packit 562c7a
True
Packit 562c7a
>>> a.foo(5)
Packit 562c7a
5
Packit 562c7a
>>> try: a.foo(-1)
Packit 562c7a
... except (OverflowError, TypeError): print("ERROR")
Packit 562c7a
ERROR
Packit 562c7a
>>> a.foo(1 << 180) #doctest: +ELLIPSIS
Packit 562c7a
Traceback (most recent call last):
Packit 562c7a
    ...
Packit 562c7a
OverflowError: ...
Packit 562c7a
"""
Packit 562c7a
Packit 562c7a
# XXX This should generate a warning !!!
Packit 562c7a
cdef extern from *:
Packit 562c7a
    ctypedef unsigned long size_t
Packit 562c7a
Packit 562c7a
def test(size_t i):
Packit 562c7a
    return i
Packit 562c7a
Packit 562c7a
cdef class A:
Packit 562c7a
    cdef public size_t a
Packit 562c7a
    cdef readonly size_t b
Packit 562c7a
Packit 562c7a
    def __init__(self, size_t a, object b):
Packit 562c7a
        self.a = a
Packit 562c7a
        self.b = b
Packit 562c7a
Packit 562c7a
    cpdef size_t foo(self, size_t x):
Packit 562c7a
        cdef object o = x
Packit 562c7a
        return o