loads of doctests
authorStefan Behnel <scoder@users.berlios.de>
Tue, 1 Jan 2008 19:16:28 +0000 (20:16 +0100)
committerStefan Behnel <scoder@users.berlios.de>
Tue, 1 Jan 2008 19:16:28 +0000 (20:16 +0100)
35 files changed:
tests/compile/getattr3ref.pyx
tests/compile/nogil.pyx
tests/run/addressof.pyx
tests/run/ass2global.pyx
tests/run/assert.pyx
tests/run/attr.pyx
tests/run/baas3.pyx
tests/run/behnel1.pyx
tests/run/bishop2.pyx
tests/run/cfuncdef.pyx
tests/run/cintop.pyx
tests/run/cstruct.pyx
tests/run/cunion.pyx
tests/run/dict.pyx
tests/run/dietachmayer1.pyx
tests/run/extinherit.pyx
tests/run/extlen.pyx
tests/run/extstarargs.pyx
tests/run/ishimoto2.pyx
tests/run/kwonlyargs.pyx
tests/run/modbody.pyx
tests/run/modop.pyx
tests/run/naanou_1.pyx [deleted file]
tests/run/new_style_exceptions.pyx
tests/run/pinard5.pyx
tests/run/pinard7.pyx
tests/run/pyextattrref.pyx
tests/run/r_mang1.pyx
tests/run/ref2local.pyx
tests/run/return.pyx
tests/run/slice3.pyx
tests/run/starargs.pyx
tests/run/subop.pyx
tests/run/varargcall.pyx
tests/run/wundram1.pyx

index 5fb4fdb9834d294e61bfe310f7bb0facc690a005..492fb28eb575c8baa0d6fee3d2e744ddf9764f2a 100644 (file)
@@ -1,2 +1,7 @@
-cdef int f() except -1:
+__doc__ = """
+    >>> print f()
+"""
+
+def f():
     g = getattr3
+    return g.__name__
index cc9d4c872b5b34c00e37a8864d08e8df816207f0..149f04486619bf9f983e102418053e0d7677a8c0 100644 (file)
@@ -1,4 +1,4 @@
-cdef extern object g(object x) nogil
+cdef extern object g(int x) nogil
 
 cdef void f(int x) nogil:
     cdef int y
index a7dd1656fa05bc21b629731ee5d0c268303fc5f2..809adb612e4e9c6fc89423a3973c9fe72836156a 100644 (file)
@@ -1,4 +1,12 @@
-def f():
-    cdef int i
+__doc__ = """
+    >>> f(5)
+    5
+"""
+
+def f(int a):
+    cdef int i,j
     cdef int *p
+    i = a
     p = &i
+    j = p[0]
+    return j
index cc4fa3a4fc7e290ec30f541ffaac79f970e22368..7ae2353662526ba523d3a78c518e400060e821c6 100644 (file)
@@ -1,4 +1,16 @@
+__doc__ = """
+    >>> getg()
+    5
+    >>> f(42)
+    >>> getg()
+    42
+"""
+
+g = 5
+
 def f(a):
-    global f
-    f = a
-    f = 42
+    global g
+    g = a
+
+def getg():
+    return g
index b9e435c4096e2d724001175401c4a4190b6e4f29..aafcfd9c6e64043057d78b8fbc8c4a5277fe8848 100644 (file)
@@ -1,5 +1,22 @@
-def f(a, b):
-    cdef int i
+__doc__ = """
+    >>> f(1, 2, 1)
+    >>> f(0, 2, 1)
+    Traceback (most recent call last):
+    AssertionError
+    >>> f(1, -1, 1)
+    Traceback (most recent call last):
+    AssertionError
+    >>> f(1, 2, 0)
+    Traceback (most recent call last):
+    AssertionError
+
+    >>> g(1, "works")
+    >>> g(0, "fails")
+    Traceback (most recent call last):
+    AssertionError: fails
+"""
+
+def f(a, b, int i):
     assert a
     assert a+b
     assert i
index 2927acb67eba940575d5c4abf435efffacd7f569..70bf7e69a795160537b6969c73f3c13438df5ca6 100644 (file)
@@ -1,6 +1,67 @@
-def f(a, b):
+__doc__ = """
+    >>> class Test:
+    ...     def __init__(self, i):
+    ...         self.i = i
+    >>> b = Test(1)
+    >>> b.spam = Test(2)
+    >>> b.spam.eggs = Test(3)
+    >>> b.spam.eggs.spam = Test(4)
+    >>> b.spam.eggs.spam.eggs = Test(5)
+
+    >>> a = f(b)
+    >>> print a.i
+    2
+    >>> print b.i
+    1
+    >>> print a.spam.i
+    1
+    >>> print b.spam.i
+    2
+    >>> print a.spam.eggs.i
+    Traceback (most recent call last):
+    AttributeError: Test instance has no attribute 'eggs'
+    >>> print b.spam.eggs.i
+    3
+    >>> print a.spam.spam.i
+    2
+    >>> print b.spam.spam.i
+    1
+    >>> print a.spam.eggs.spam.i
+    Traceback (most recent call last):
+    AttributeError: Test instance has no attribute 'eggs'
+    >>> print b.spam.eggs.spam.i
+    4
+
+    >>> a = g(b)
+    >>> print a.i
+    3
+    >>> print b.i
+    1
+    >>> print a.spam.i
+    4
+    >>> print b.spam.i
+    2
+    >>> print a.spam.eggs.i
+    1
+    >>> print b.spam.eggs.i
+    3
+    >>> print a.spam.spam.i
+    Traceback (most recent call last):
+    AttributeError: Test instance has no attribute 'spam'
+    >>> print b.spam.spam.i
+    1
+    >>> print a.spam.eggs.spam.i
+    2
+    >>> print b.spam.eggs.spam.i
+    4
+"""
+
+def f(b):
     a = b.spam
     a.spam = b
+    return a
+
+def g(b):
     a = b.spam.eggs
     a.spam.eggs = b
-    
\ No newline at end of file
+    return a
index a292ef73be92266f7f0c6fd83100af0c02b91df5..66098fc28527013eb427655cd5a6ca9e5448d7d9 100644 (file)
@@ -1,3 +1,9 @@
+__doc__ = """
+    >>> m = MyClass()
+    >>> m is foo(m)
+    True
+"""
+
 cdef class MyClass:
     pass
 
index 438235050fa756dfc86288099306916130bcd1ba..10e264b69e42b9a50bf1ec77e70d5e4e2368b89e 100644 (file)
@@ -1,9 +1,14 @@
+__doc__ = """
+    >>> viking(5)
+    5
+"""
+
 cdef class Spam:
-    cdef eggs(self):
-        pass
+    cdef eggs(self, a):
+        return a
 
 cdef Spam spam():
-    pass
+    return Spam()
 
-def viking():
-    return spam().eggs()
+def viking(a):
+    return spam().eggs(a)
index 0853117e148417e81ea24442fa89e1b8e6d1eb96..24d9c06ef0053f6692e541efc26829030ca96319 100644 (file)
@@ -1,3 +1,11 @@
+__doc__ = """
+    >>> f = foo()
+    >>> 'a' in f
+    True
+    >>> 1 in f
+    True
+"""
+
 cdef class foo:
 
   def __contains__(self, key):
index f277974389396d180190434f1bf9cbbbba565246..3351885a9256e9b8ab36b171529fd928e72b10b9 100644 (file)
@@ -1,3 +1,7 @@
+__doc__ = """
+    >>> test()
+"""
+
 cdef void ftang():
     cdef int x
     x = 0
@@ -10,3 +14,8 @@ cdef int foo(int i, char c):
 cdef spam(int i, obj, object object):
     cdef char c
     c = 0
+
+def test():
+    ftang()
+    foo(0, c'f')
+    spam(25, None, None)
index 6a600578f6c96d90a1cd2a5485a9f0ae6f611112..49d36ee67dcd92c27d71e64a61903e84ad557e88 100644 (file)
@@ -1,7 +1,16 @@
+__doc__ = """
+    >>> f()
+    (5376, 67)
+"""
+
 def f():
     cdef int int1, int2, int3
     cdef char char1
     cdef long long1, long2
+    int2 = 42
+    int3 = 7
+    char1 = c'C'
+
     int1 = int2 | int3
     int1 = int2 ^ int3
     int1 = int2 & int3
@@ -9,5 +18,4 @@ def f():
     int1 = int2 >> int3
     int1 = int2 << int3 | int2 >> int3
     long1 = char1 | long2
-    
-    
\ No newline at end of file
+    return int1, long1
index 1529e1cfad47b019923cc1b67e87df9400eaf40e..07a243d6b586aa283b3d5369d703516072bfe4e5 100644 (file)
@@ -1,3 +1,10 @@
+__doc__ = """
+    >>> test_i()
+    >>> test_c()
+    >>> test_p()
+    >>> test_g()
+"""
+
 cdef struct Grail
 
 cdef struct Spam:
@@ -11,9 +18,42 @@ cdef struct Grail:
 
 cdef Spam spam, ham
 
-cdef void eggs(Spam s):
+cdef void eggs_i(Spam s):
     cdef int j
     j = s.i
     s.i = j
 
+cdef void eggs_c(Spam s):
+    cdef char c
+    c = s.c
+    s.c = c
+
+cdef void eggs_p(Spam s):
+    cdef float *p
+    p = s.p[0]
+    s.p[0] = p
+
+cdef void eggs_g(Spam s):
+    cdef float *p
+    p = s.p[0]
+    s.p[0] = p
+
 spam = ham
+
+def test_i():
+    spam.i = 1
+    eggs_i(spam)
+
+def test_c():
+    spam.c = c'a'
+    eggs_c(spam)
+
+def test_p():
+    cdef float f
+    spam.p[0] = &f
+    eggs_p(spam)
+
+def test_g():
+    cdef Grail l
+    spam.g = &l
+    eggs_g(spam)
index 72ad76685e709a8db7a1cf63245127c127e17bad..352464a3e4964bf250ff9085a9d6cb7df8fc8cc3 100644 (file)
@@ -1,3 +1,9 @@
+__doc__ = """
+    >>> test_i()
+    >>> test_c()
+    >>> test_p()
+"""
+
 cdef union Spam:
     int i
     char c
@@ -5,9 +11,32 @@ cdef union Spam:
 
 cdef Spam spam, ham
 
-cdef void eggs(Spam s):
+cdef void eggs_i(Spam s):
     cdef int j
     j = s.i
     s.i = j
 
+cdef void eggs_c(Spam s):
+    cdef char c
+    c = s.c
+    s.c = c
+
+cdef void eggs_p(Spam s):
+    cdef float *p
+    p = s.p[0]
+    s.p[0] = p
+
 spam = ham
+
+def test_i():
+    spam.i = 1
+    eggs_i(spam)
+
+def test_c():
+    spam.c = c'a'
+    eggs_c(spam)
+
+def test_p():
+    cdef float f
+    spam.p[0] = &f
+    eggs_p(spam)
index 2ae22a3cbed87ebcbf75dba1851b0db1c2100e1e..3c51fb07ab6f036608631d4e578c60235926fead 100644 (file)
@@ -1,7 +1,39 @@
-def f(adict, key1, value1, key2, value2):
-    adict = {}
-    adict = {key1:value1}
-    adict = {key1:value1, key2:value2}
-    adict = {key1:value1, key2:value2,}
-    adict = {"parrot":"resting", "answer":42}
-    
\ No newline at end of file
+__doc__ = """
+    >>> empty()
+    {}
+    >>> keyvalue(1, 2)
+    {1: 2}
+
+    >>> keyvalues(1, 2, 3, 4)
+    {1: 2, 3: 4}
+    >>> keyvalues2(1, 2, 3, 4)
+    {1: 2, 3: 4}
+
+    >>> len(constant())
+    2
+    >>> constant()['parrot']
+    'resting'
+    >>> constant()['answer']
+    42
+"""
+
+def empty():
+    d = {}
+    return d
+
+def keyvalue(key, value):
+    d = {key:value}
+    return d
+
+def keyvalues(key1, value1, key2, value2):
+    d = {key1:value1, key2:value2}
+    return d
+
+def keyvalues2(key1, value1, key2, value2):
+    d = {key1:value1, key2:value2,}
+    return d
+
+def constant():
+    d = {"parrot":"resting", "answer":42}
+    return d
+    
index d86f8738ba581c293c076fceadff9bda85c07124..09e5558e42c1b2c72c9a1bbc539e051392b98bce 100644 (file)
@@ -1,4 +1,9 @@
+__doc__ = """
+    >>> test()
+    1.0
+"""
+
 def test():
     cdef float v[10][10]
     v[1][2] = 1.0
-    print v[1][2]
+    return v[1][2]
index ffd12451e6dde3e6e6e82f517562dbaa974e7351..633d8c3a415df1ea22d6c9b19de61e859dab6125 100644 (file)
@@ -1,3 +1,9 @@
+__doc__ = """
+    >>> p = create()
+    >>> rest(p)
+    0
+"""
+
 cdef class Parrot:
     cdef object name
     cdef int alive
@@ -5,11 +11,24 @@ cdef class Parrot:
 cdef class Norwegian(Parrot):
     cdef object plumage_colour
 
-cdef void rest(Norwegian polly):
+def create():
+    cdef Parrot p
+    p = Norwegian()
+    p.alive = 1
+    return p
+
+def rest(Norwegian polly):
     cdef Parrot fred
     cdef object spam
+    spam = None
+
     fred = polly
     polly = fred
     polly = spam
+    assert polly is None
+    assert fred.alive
+
     spam = polly
-    polly.alive = 0
+    fred.alive = 0
+
+    return fred.alive
index e03a56d0971ad59ed43fa78772db87c81533640f..2577a02d16f111980c10518ae5fab8d0ab03dbe7 100644 (file)
@@ -1,3 +1,8 @@
+__doc__ = """
+    >>> len(Spam())
+    0
+"""
+
 cdef class Spam:
 
     def __len__(self):
index 5757b23f93a7815fe0581d71acfa23f17d9cb408..dc00d2e958ebc690db980e254cb2972104d8c118 100644 (file)
@@ -1,3 +1,45 @@
+__doc__ = """
+    >>> s = Silly(1,2,3, 'test')
+
+    >>> s.spam(1,2,3)
+    >>> s.spam(1,2)
+    Traceback (most recent call last):
+    TypeError: function takes exactly 3 arguments (2 given)
+    >>> s.spam(1,2,3,4)
+    Traceback (most recent call last):
+    TypeError: function takes exactly 3 arguments (4 given)
+    >>> s.spam(1,2,3, a=1)
+    Traceback (most recent call last):
+    TypeError: 'a' is an invalid keyword argument for this function
+
+    >>> s.grail(1,2,3)
+    >>> s.grail(1,2,3,4)
+    >>> s.grail(1,2,3,4,5,6,7,8,9)
+    >>> s.grail(1,2)
+    Traceback (most recent call last):
+    TypeError: function takes exactly 3 arguments (2 given)
+    >>> s.grail(1,2,3, a=1)
+    Traceback (most recent call last):
+    TypeError: 'a' is an invalid keyword argument for this function
+
+    >>> s.swallow(1,2,3)
+    >>> s.swallow(1,2,3,4)
+    Traceback (most recent call last):
+    TypeError: function takes at most 3 positional arguments (4 given)
+    >>> s.swallow(1,2,3, a=1, b=2)
+    >>> s.swallow(1,2,3, x=1)
+    Traceback (most recent call last):
+    TypeError: keyword parameter 'x' was given by position and by name
+
+    >>> s.creosote(1,2,3)
+    >>> s.creosote(1,2,3,4)
+    >>> s.creosote(1,2,3, a=1)
+    >>> s.creosote(1,2,3,4, a=1, b=2)
+    >>> s.creosote(1,2,3,4, x=1)
+    Traceback (most recent call last):
+    TypeError: keyword parameter 'x' was given by position and by name
+"""
+
 cdef class Silly:
 
     def __init__(self, *a):
index 3ab940282af56bcf563aac6952affcc2983d81ae..24541f0c439cfa99febdc2d5f46770af03dca268 100644 (file)
@@ -1,3 +1,14 @@
+__doc__ = """
+    >>> C().xxx(5)
+    5
+    >>> C().xxx()
+    'a b'
+    >>> C().xxx(42)
+    42
+    >>> C().xxx()
+    'a b'
+"""
+
 class C:
     def xxx(self, p="a b"):
-        pass
+        return p
index a1be9cd72702068b756e4d390a5bd43e40cdb21f..78c523fd83235e714862a49d3e6d20fda5e63010 100644 (file)
@@ -1,3 +1,68 @@
+__doc__ = """
+    >>> c(1,2,3)
+    >>> c(1,2,3,4)
+    Traceback (most recent call last):
+    TypeError: function takes exactly 3 arguments (4 given)
+
+    >>> d(1,2)
+    >>> d(1,2, c=1)
+
+    >>> d(1,2,3)
+    Traceback (most recent call last):
+    TypeError: function takes at most 2 positional arguments (3 given)
+    >>> d(1,2, d=1)
+    Traceback (most recent call last):
+    TypeError: 'd' is an invalid keyword argument for this function
+
+    >>> e(1,2)
+    >>> e(1,2, c=1)
+    >>> e(1,2, d=1)
+    >>> e(1,2, c=1, d=2, e=3)
+    >>> e(1,2,3)
+    >>> e(1,2,3,4)
+    Traceback (most recent call last):
+    TypeError: function takes at most 3 positional arguments (4 given)
+
+    >>> f(1,2, c=1)
+    >>> f(1,2, c=1, d=2)
+
+    >>> f(1,2,3)
+    Traceback (most recent call last):
+    TypeError: function takes at most 2 positional arguments (3 given)
+    >>> f(1,2)
+    Traceback (most recent call last):
+    TypeError: required keyword argument 'c' is missing
+    >>> f(1,2, c=1, e=2)
+    Traceback (most recent call last):
+    TypeError: 'e' is an invalid keyword argument for this function
+
+    >>> g(1,2, c=1, f=2)
+    >>> g(1,2, c=1, e=0, f=2, d=11)
+    >>> g(1,2, c=1, f=2, e=0, x=25)
+
+    >>> g(1,2,3)
+    Traceback (most recent call last):
+    TypeError: function takes at most 2 positional arguments (3 given)
+    >>> g(1,2)
+    Traceback (most recent call last):
+    TypeError: required keyword argument 'c' is missing
+    >>> g(1,2, c=1)
+    Traceback (most recent call last):
+    TypeError: required keyword argument 'f' is missing
+
+    >>> h(1,2, c=1, f=2)
+    >>> h(1,2, c=1, f=2, e=3)
+    >>> h(1,2,3,4,5,6, c=1, f=2)
+    >>> h(1,2,3,4,5,6, c=1, f=2, e=3, x=25, y=11)
+
+    >>> h(1,2,3)
+    Traceback (most recent call last):
+    TypeError: required keyword argument 'c' is missing
+    >>> h(1,2, d=1)
+    Traceback (most recent call last):
+    TypeError: required keyword argument 'c' is missing
+"""
+
 def c(a, b, c):
     z = 33
 
index 0cf3e14c7dec2f5907e9a7960c9d3953a02c99c5..8315b1fc0cd5a5070d041e39eb76f84af0c6e21f 100644 (file)
@@ -1,3 +1,15 @@
+__doc__ = """
+    >>> f()
+    >>> g
+    42
+    >>> x
+    'spam'
+    >>> y
+    'eggs'
+    >>> z
+    'spameggs'
+"""
+
 def f():
     pass
     
index 9298d31ea98c4b07dd2fc159e1099f53dac8e800..539ccacc37dc76fedf840dd2e3461a4a6111992b 100644 (file)
@@ -1,10 +1,27 @@
-def f():
-    cdef int int1, int2, int3
-    cdef char *str2, *str3
-    obj1 = 1
-    obj2 = 2
-    obj3 = 3
+__doc__ = """
+    >>> modobj(9,2)
+    1
+    >>> modobj('%d', 5)
+    '5'
+
+    >>> modint(9,2)
+    1
+"""
+
+def modobj(obj2, obj3):
+    obj1 = obj2 % obj3
+    return obj1
+
+def modint(int int2, int int3):
+    cdef int int1
     int1 = int2 % int3
+    return int1
+
+cdef modptr():
+    # FIXME!!!
+    cdef char *str2, *str3
+    str2 = "spam"
+    str3 = "eggs"
+
     obj1 = str2 % str3
-    obj1 = obj2 % obj3
-    
\ No newline at end of file
+    return obj1
diff --git a/tests/run/naanou_1.pyx b/tests/run/naanou_1.pyx
deleted file mode 100644 (file)
index d79ad65..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-def f(a, *p, **n):
-    pass
index 8ae72409e683f3e1e6d7be0d5b0d21001b062f46..34c8bd6621dfa81e7f06b0414d4105b5ab4329e8 100644 (file)
@@ -1,3 +1,9 @@
+__doc__ = """
+    >>> test(Exception('hi'))
+    Raising: Exception('hi',)
+    Caught: <type 'exceptions.Exception'> Exception('hi',)
+"""
+
 import sys
 
 def test(obj):
index 32c6527d616ca059769ab1890592920775db70f5..8a2e35100e8838f074bdeff39d890f53410da6b8 100644 (file)
@@ -1,10 +1,22 @@
+__doc__ = """
+    >>> test()
+    1
+"""
+
 cdef class Tri:
-    pass
+    def test(self):
+        return 1
     
 cdef class Curseur:
     cdef Tri tri
     def detail(self):
-        produire_fiches(self.tri)
+        return produire_fiches(self.tri)
 
 cdef produire_fiches(Tri tri):
-    pass
+    return tri.test()
+
+def test():
+    cdef Curseur c
+    c = Curseur()
+    c.tri = Tri()
+    return c.detail()
index 4a611967361dbb53eb9d4183ce38ef63c6586e26..a464f2cd35c82e309f70c501e6eca4886f4bd303 100644 (file)
@@ -1,3 +1,10 @@
+__doc__ = """
+    >>> c = build()
+    >>> c.method()
+    Traceback (most recent call last):
+    AssertionError: 1
+"""
+
 cdef enum Mode:
     a = 1
     b = 2
@@ -7,3 +14,9 @@ cdef class Curseur:
 
     def method(self):
         assert False, self.mode
+
+def build():
+    cdef Curseur c
+    c = Curseur()
+    c.mode = a
+    return c
index cee111893f490a2d87fef8dc437d714c7b264778..3f9261a90ec8ef3fd948c06828bc050e6db1f932 100644 (file)
@@ -1,3 +1,7 @@
+__doc__ = """
+    >>> 
+"""
+
 cdef class Eggs:
     cdef object ham
 
index fcf140af8f3c8aec93c98026bd475746768a970f..64ef561314278a73d18a9c9e4f3a0ae391a21b1c 100644 (file)
@@ -1,2 +1,12 @@
+__doc__ = """
+    >>> import re
+    >>> t
+    ('2',)
+    >>> t == re.search('(\\d+)', '-2.80 98\\n').groups()
+    True
+"""
+
+# this is a string constant test, not a test for 're'
+
 import re
 t = re.search('(\d+)', '-2.80 98\n').groups()
index cfcc66be0916d455c145795383f519124fc2d28a..bfe1b8ef5a72dac6e79ca7686259d608cc80e2ee 100644 (file)
@@ -1,3 +1,9 @@
+__doc__ = """
+    >>> f()
+    42
+"""
+
 def f():
     a = 42
     b = a
+    return b
index b07ad14c89759f5649bbec864d64773d0496a3fd..81a2ddb93894f83a7e58cf0a2c6582e1cdf1af35 100644 (file)
@@ -1,3 +1,10 @@
+__doc__ = """
+    >>> f('test')
+    >>> test_g()
+    >>> test_h(5)
+    5
+"""
+
 def f(a):
     return
     return a
@@ -8,5 +15,11 @@ cdef void g():
 
 cdef int h(a):
     cdef int i
+    i = a
     return i
-    
\ No newline at end of file
+
+def test_g():
+    g()
+
+def test_h(i):
+    return h(i)
index 07321b85f3e03eb3dc0ed8dc653973c49dca6798..36f618c73aaac8fcac8fe47b84be7d826e1ac2d9 100644 (file)
@@ -1,7 +1,46 @@
-def f(obj1, obj2, obj3, obj4, obj5):
+__doc__ = """
+    >>> class Test(object):
+    ...     def __setitem__(self, key, value):
+    ...         print key, value
+    ...     def __getitem__(self, key):
+    ...         print key
+    ...         return self
+
+    >>> ellipsis(Test())
+    Ellipsis
+
+    >>> full(Test())
+    slice(None, None, None)
+
+    >>> select(0, Test(), 10, 20, 30)
+    slice(10, None, None)
+    slice(None, 20, None)
+    slice(None, None, 30)
+    slice(10, 20, None)
+    slice(10, None, 30)
+    slice(None, 20, 30)
+    slice(10, 20, 30)
+    slice(1, 2, 3)
+
+    >>> set(Test(), -11)
+    slice(1, 2, 3) -11
+"""
+
+def ellipsis(o):
+    obj1 = o[...]
+
+def full(o):
+    obj1 = o[::]
+
+def set(o, v):
     cdef int int3, int4, int5
-    obj1 = obj2[...]
-    obj1 = obj2[::]
+    int3, int4, int5 = 1,2,3
+    o[int3:int4:int5] = v
+
+def select(obj1, obj2, obj3, obj4, obj5):
+    cdef int int3, int4, int5
+    int3, int4, int5 = 1,2,3
+
     obj1 = obj2[obj3::]
     obj1 = obj2[:obj4:]
     obj1 = obj2[::obj5]
@@ -10,5 +49,4 @@ def f(obj1, obj2, obj3, obj4, obj5):
     obj1 = obj2[:obj4:obj5]
     obj1 = obj2[obj3:obj4:obj5]
     obj1 = obj2[int3:int4:int5]
-    obj1[int3:int4:int5] = obj2
-    
\ No newline at end of file
+    
index 67cd01c978935ddc3dc6cb5bf843878a3a9ebc2c..5ca223b3cbf1f8321e6856b792ad70f0f6c9ad85 100644 (file)
@@ -1,3 +1,43 @@
+__doc__ = """
+    >>> spam(1,2,3)
+    >>> spam(1,2)
+    Traceback (most recent call last):
+    TypeError: function takes exactly 3 arguments (2 given)
+    >>> spam(1,2,3,4)
+    Traceback (most recent call last):
+    TypeError: function takes exactly 3 arguments (4 given)
+    >>> spam(1,2,3, a=1)
+    Traceback (most recent call last):
+    TypeError: 'a' is an invalid keyword argument for this function
+
+    >>> grail(1,2,3)
+    >>> grail(1,2,3,4)
+    >>> grail(1,2,3,4,5,6,7,8,9)
+    >>> grail(1,2)
+    Traceback (most recent call last):
+    TypeError: function takes exactly 3 arguments (2 given)
+    >>> grail(1,2,3, a=1)
+    Traceback (most recent call last):
+    TypeError: 'a' is an invalid keyword argument for this function
+
+    >>> swallow(1,2,3)
+    >>> swallow(1,2,3,4)
+    Traceback (most recent call last):
+    TypeError: function takes at most 3 positional arguments (4 given)
+    >>> swallow(1,2,3, a=1, b=2)
+    >>> swallow(1,2,3, x=1)
+    Traceback (most recent call last):
+    TypeError: keyword parameter 'x' was given by position and by name
+
+    >>> creosote(1,2,3)
+    >>> creosote(1,2,3,4)
+    >>> creosote(1,2,3, a=1)
+    >>> creosote(1,2,3,4, a=1, b=2)
+    >>> creosote(1,2,3,4, x=1)
+    Traceback (most recent call last):
+    TypeError: keyword parameter 'x' was given by position and by name
+"""
+
 def spam(x, y, z):
     pass
 
@@ -9,4 +49,3 @@ def swallow(x, y, z, **k):
 
 def creosote(x, y, z, *a, **k):
     pass
-
index 717edbbcba214126d23d433fb3ce21399b43fb99..d71b29ed58050772271338ca39e68651b91eebd9 100644 (file)
@@ -1,11 +1,30 @@
+__doc__ = """
+    >>> f()
+    (-1, -1)
+    >>> p()
+    0
+"""
+
 def f():
     cdef int int1, int2, int3
-    cdef char *ptr1, *ptr2, *ptr3
     obj1 = 1
     obj2 = 2
     obj3 = 3
+    int2 = 2
+    int3 = 3
+
     int1 = int2 - int3
+    obj1 = obj2 - int3
+    return int1, obj1
+    
+def p():
+    cdef int int1, int2, int3
+    cdef char *ptr1, *ptr2, *ptr3
+    int2 = 2
+    int3 = 3
+    ptr2 = "test"
+    ptr3 = ptr2
+
     ptr1 = ptr2 - int3
     int1 = ptr2 - ptr3
-    obj1 = obj2 - int3
-    
\ No newline at end of file
+    return int1
index 13d7201f261efd33d49edba7daf39476a43c1d76..026269529536a97a8c428c239fa0550f12f6641b 100644 (file)
@@ -1,6 +1,10 @@
+__doc__ = """
+    >>> swallow()
+"""
+
 cdef grail(char *blarg, ...):
     pass
 
-cdef swallow():
+def swallow():
     grail("spam")
     grail("spam", 42)
index 7360cb692946bd013808a20af2328977cf61a9b1..c8933daeb680ad97816d3cb8fa6f21d0daacc2ee 100644 (file)
@@ -1,2 +1,8 @@
+__doc__ = """
+    >>> x
+    5L
+"""
+
 cdef unsigned int ui
+ui = 5
 x = ui