Commit b53ef998 authored by Stefan Behnel's avatar Stefan Behnel

add cdef-keywords tests for exttype methods

parent 38b4649d
......@@ -201,3 +201,158 @@ def varargs():
raise MemoryError()
return buffer[:retval].decode('ascii')
'''
cdef class ExtType:
cdef cmeth(self, a, b, c, d):
return (a,b,c,d)
@cython.test_fail_if_path_exists('//GeneralCallNode')
@cython.test_assert_path_exists('//SimpleCallNode')
def call_cmeth(self, ExtType ext):
"""
>>> x = ExtType()
>>> x.call_cmeth(x)
(1, 2, 3, 4)
(1, 2, 3, 4)
(1, 2, 3, 4)
EXT
(1, 2, 3, 4)
(1, 2, 3, 4)
(1, 2, 3, 4)
"""
print self.cmeth(1,2,3,4)
print self.cmeth(1,2,c=3,d=4)
print self.cmeth(a=1,b=2,c=3,d=4)
print "EXT"
print ext.cmeth(1,2,3,4)
print ext.cmeth(1,2,c=3,d=4)
print ext.cmeth(a=1,b=2,c=3,d=4)
cpdef cpmeth(self, a, b, c, d):
return (a,b,c,d)
@cython.test_fail_if_path_exists('//GeneralCallNode')
@cython.test_assert_path_exists('//SimpleCallNode')
def call_cpmeth(self, ExtType ext):
"""
>>> x = ExtType()
>>> x.call_cpmeth(x)
(1, 2, 3, 4)
(1, 2, 3, 4)
(1, 2, 3, 4)
EXT
(1, 2, 3, 4)
(1, 2, 3, 4)
(1, 2, 3, 4)
"""
print self.cpmeth(1,2,3,4)
print self.cpmeth(1,2,c=3,d=4)
print self.cpmeth(a=1,b=2,c=3,d=4)
print "EXT"
print ext.cpmeth(1,2,3,4)
print ext.cpmeth(1,2,c=3,d=4)
print ext.cpmeth(a=1,b=2,c=3,d=4)
cdef optargs(self, a=1, b=2):
return (a,b)
@cython.test_fail_if_path_exists('//GeneralCallNode')
@cython.test_assert_path_exists('//SimpleCallNode')
def call_optargs(self, ExtType ext):
"""
>>> x = ExtType()
>>> x.call_optargs(x)
(3, 4)
(3, 4)
(3, 4)
(1, 2)
(3, 2)
(3, 2)
EXT
(3, 4)
(3, 4)
(3, 4)
(1, 2)
(3, 2)
(3, 2)
"""
print self.optargs(3,4)
print self.optargs(3,b=4)
print self.optargs(a=3,b=4)
print self.optargs()
print self.optargs(3)
print self.optargs(a=3)
#print self.optargs(b=4)
print "EXT"
print ext.optargs(3,4)
print ext.optargs(3,b=4)
print ext.optargs(a=3,b=4)
print ext.optargs()
print ext.optargs(3)
print ext.optargs(a=3)
#print ext.optargs(b=4)
cpdef cpmeth_optargs(self, a=1, b=2):
return (a,b)
@cython.test_fail_if_path_exists('//GeneralCallNode')
@cython.test_assert_path_exists('//SimpleCallNode')
def call_cpmeth_optargs(self, ExtType ext):
"""
>>> x = ExtType()
>>> x.call_cpmeth_optargs(x)
(3, 4)
(3, 4)
(3, 4)
(1, 2)
(3, 2)
(3, 2)
EXT
(3, 4)
(3, 4)
(3, 4)
(1, 2)
(3, 2)
(3, 2)
"""
print self.cpmeth_optargs(3,4)
print self.cpmeth_optargs(3,b=4)
print self.cpmeth_optargs(a=3,b=4)
print self.cpmeth_optargs()
print self.cpmeth_optargs(3)
print self.cpmeth_optargs(a=3)
#print self.cpmeth_optargs(b=4)
print "EXT"
print ext.cpmeth_optargs(3,4)
print ext.cpmeth_optargs(3,b=4)
print ext.cpmeth_optargs(a=3,b=4)
print ext.cpmeth_optargs()
print ext.cpmeth_optargs(3)
print ext.cpmeth_optargs(a=3)
#print ext.cpmeth_optargs(b=4)
cpdef cpmeth_optargs1(self, a=1):
return a
@cython.test_fail_if_path_exists('//GeneralCallNode')
@cython.test_assert_path_exists('//SimpleCallNode')
def call_cpmeth_optargs1(self, ExtType ext):
"""
>>> x = ExtType()
>>> x.call_cpmeth_optargs1(x)
1
3
3
EXT
1
3
3
"""
print self.cpmeth_optargs1()
print self.cpmeth_optargs1(3)
print self.cpmeth_optargs1(a=3)
print "EXT"
print ext.cpmeth_optargs1()
print ext.cpmeth_optargs1(3)
print ext.cpmeth_optargs1(a=3)
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment