diff options
author | Lisandro Dalcin <dalcinl@gmail.com> | 2017-07-20 15:52:31 +0300 |
---|---|---|
committer | Lisandro Dalcin <dalcinl@gmail.com> | 2017-07-20 15:52:31 +0300 |
commit | f5dbcd6eb553c6f3c3e5ae11354429dac3986915 (patch) | |
tree | f7d1051a26b9da7ed88662e8db2a6803276cec8d | |
parent | 40a3c5c14b19be951d29799ed2deb963920d7ad8 (diff) | |
download | cython-dalcinl-embedsignature.tar.gz |
test: Add tests for embedsignature with function annotationsdalcinl-embedsignature
-rw-r--r-- | tests/run/embedsignatures.pyx | 129 |
1 files changed, 129 insertions, 0 deletions
diff --git a/tests/run/embedsignatures.pyx b/tests/run/embedsignatures.pyx index 32581d150..952e4ee36 100644 --- a/tests/run/embedsignatures.pyx +++ b/tests/run/embedsignatures.pyx @@ -394,3 +394,132 @@ cpdef (char*) f_charptr_null(char* s=NULL): # no signatures for lambda functions lambda_foo = lambda x: 10 lambda_bar = lambda x: 20 + + +cdef class Foo: + def m00(self, a: None) -> None: pass + def m01(self, a: ...) -> Ellipsis: pass + def m02(self, a: True, b: False) -> bool: pass + def m03(self, a: 42, b: +42, c: -42) -> int : pass # XXX +42 -> 42 + def m04(self, a: 3.14, b: +3.14, c: -3.14) -> float : pass + def m05(self, a: 1 + 2j, b: +2j, c: -2j) -> complex : pass + def m06(self, a: "abc", b: b"abc", c: u"abc") -> (str, bytes, unicode) : pass + def m07(self, a: [1, 2, 3], b: []) -> list: pass + def m08(self, a: (1, 2, 3), b: ()) -> tuple: pass + def m09(self, a: {1, 2, 3}, b: {i for i in ()}) -> set: pass + def m10(self, a: {1: 1, 2: 2, 3: 3}, b: {}) -> dict: pass + #def m11(self, a: [str(i) for i in range(3)]): pass # Issue 1782 + def m12(self, a: (str(i) for i in range(3))): pass + def m13(self, a: (str(i) for i in range(3) if bool(i))): pass + def m14(self, a: {str(i) for i in range(3)}): pass + def m15(self, a: {str(i) for i in range(3) if bool(i)}): pass + def m16(self, a: {str(i): id(i) for i in range(3)}): pass + def m17(self, a: {str(i): id(i) for i in range(3) if bool(i)}): pass + def m18(self, a: dict.update(x=42, **dict(), **{})): pass + def m19(self, a: sys is None, b: sys is not None): pass + def m20(self, a: sys in [], b: sys not in []): pass + def m21(self, a: (sys or sys) and sys, b: not (sys or sys)): pass + def m22(self, a: 42 if sys else None): pass + def m23(self, a: +int(), b: -int(), c: ~int()): pass + def m24(self, a: (1+int(2))*3+(4*int(5))**(1+0.0/1)): pass + def m25(self, a: list(range(3))[:]): pass + def m26(self, a: list(range(3))[1:]): pass + def m27(self, a: list(range(3))[:1]): pass + def m28(self, a: list(range(3))[::1]): pass + def m29(self, a: list(range(3))[0:1:1]): pass + def m30(self, a: list(range(3))[7, 3:2:1, ...]): pass + +__doc__ += ur""" +>>> print(Foo.m00.__doc__) +Foo.m00(self, a: None) -> None + +>>> print(Foo.m01.__doc__) +Foo.m01(self, a: ...) -> Ellipsis + +>>> print(Foo.m02.__doc__) +Foo.m02(self, a: True, b: False) -> bool + +>>> print(Foo.m03.__doc__) +Foo.m03(self, a: 42, b: 42, c: -42) -> int + +>>> print(Foo.m04.__doc__) +Foo.m04(self, a: 3.14, b: 3.14, c: -3.14) -> float + +>>> print(Foo.m05.__doc__) +Foo.m05(self, a: 1 + 2j, b: +2j, c: -2j) -> complex + +>>> print(Foo.m06.__doc__) +Foo.m06(self, a: 'abc', b: b'abc', c: u'abc') -> (str, bytes, unicode) + +>>> print(Foo.m07.__doc__) +Foo.m07(self, a: [1, 2, 3], b: []) -> list + +>>> print(Foo.m08.__doc__) +Foo.m08(self, a: (1, 2, 3), b: ()) -> tuple + +>>> print(Foo.m09.__doc__) +Foo.m09(self, a: {1, 2, 3}, b: set()) -> set + +>>> print(Foo.m10.__doc__) +Foo.m10(self, a: {1: 1, 2: 2, 3: 3}, b: {}) -> dict + +# >>> print(Foo.m11.__doc__) +# Foo.m11(self, a: [str(i) for i in range(3)]) + +>>> print(Foo.m12.__doc__) +Foo.m12(self, a: (str(i) for i in range(3))) + +>>> print(Foo.m13.__doc__) +Foo.m13(self, a: (str(i) for i in range(3) if bool(i))) + +>>> print(Foo.m14.__doc__) +Foo.m14(self, a: {str(i) for i in range(3)}) + +>>> print(Foo.m15.__doc__) +Foo.m15(self, a: {str(i) for i in range(3) if bool(i)}) + +>>> print(Foo.m16.__doc__) +Foo.m16(self, a: {str(i): id(i) for i in range(3)}) + +>>> print(Foo.m17.__doc__) +Foo.m17(self, a: {str(i): id(i) for i in range(3) if bool(i)}) + +>>> print(Foo.m18.__doc__) +Foo.m18(self, a: dict.update(x=42, **dict())) + +>>> print(Foo.m19.__doc__) +Foo.m19(self, a: sys is None, b: sys is not None) + +>>> print(Foo.m20.__doc__) +Foo.m20(self, a: sys in [], b: sys not in []) + +>>> print(Foo.m21.__doc__) +Foo.m21(self, a: (sys or sys) and sys, b: not (sys or sys)) + +>>> print(Foo.m22.__doc__) +Foo.m22(self, a: 42 if sys else None) + +>>> print(Foo.m23.__doc__) +Foo.m23(self, a: +int(), b: -int(), c: ~int()) + +>>> print(Foo.m24.__doc__) +Foo.m24(self, a: (1 + int(2)) * 3 + (4 * int(5)) ** (1 + 0.0 / 1)) + +>>> print(Foo.m25.__doc__) +Foo.m25(self, a: list(range(3))[:]) + +>>> print(Foo.m26.__doc__) +Foo.m26(self, a: list(range(3))[1:]) + +>>> print(Foo.m27.__doc__) +Foo.m27(self, a: list(range(3))[:1]) + +>>> print(Foo.m28.__doc__) +Foo.m28(self, a: list(range(3))[::1]) + +>>> print(Foo.m29.__doc__) +Foo.m29(self, a: list(range(3))[0:1:1]) + +>>> print(Foo.m30.__doc__) +Foo.m30(self, a: list(range(3))[7, 3:2:1, ...]) +""" |